Emacs-Run
view release on metacpan or search on metacpan
t/02-parse_emacs_version_strings.t view on Meta::CPAN
# Test file created outside of h2xs framework.
# Run this like so: `perl Emacs-Run.t'
# doom@kzsu.stanford.edu 2008/03/08 06:36:39
use warnings;
use strict;
$|=1;
my $DEBUG = 0; # TODO set to 0 before ship
use Data::Dumper;
use File::Copy qw( copy );
use Test::More;
use Test::Differences;
use FindBin qw( $Bin ); #
use lib "$Bin/../lib";
use Emacs::Run; # can't use "use_ok", no plan yet
## Globals
# A basic Emacs::Run object
my $ER = Emacs::Run->new(
# { emacs_path => 'uncomment_this_to_skip_all_tests',}
);
if( not( $ER ) ) { # then 'emacs' was not found
plan skip_all => 'emacs was not found in PATH';
} else {
plan tests => 17;
}
ok(1, "Traditional: If we made it this far, we're ok.");
{
my $test_name = "Testing emacs_version method";
my $er = Emacs::Run->new();
my $version = $er->emacs_version();
like( $version, qr{ \d+ }msx ,
"Testing that emacs major version looks numeric");
like( $version, qr{ ^ 2[123] \. }msx ,
"Testing that emacs major version is 21 or 22 or 23");
}
{
my $test_name = "Testing emacs_version version string parsing";
my $er = Emacs::Run->new();
# TODO investigate what kind of versions are in use, at least with GNU/Emacs
# add cases here, and continue improving the parsing routine.
my @expected_versions = qw(
21.0.0
23.2.1
21.4
22.1.1
22.1.92.1
23.0.0.1
21.4.1
);
my %version_string;
foreach my $ver (@expected_versions) {
$version_string{ $ver } = qq{GNU Emacs $ver\n Blah blah};
}
my %version_string_xemacs;
foreach my $ver (@expected_versions) {
$version_string_xemacs{ $ver } = qq{Blah blah \nXEmacs $ver (patch 18) "Social Property" [Lucid] (amd64-debian-linux, Mule) of Wed Dec 21 2005 on yellow};
}
foreach my $ver (@expected_versions) {
my $version = $er->parse_emacs_version_string( $version_string{ $ver } );
is( $version, $ver, "$test_name: $ver");
( run in 0.936 second using v1.01-cache-2.11-cpan-6aa56a78535 )