⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 01_cpanplus-configure.t

📁 source of perl for linux application,
💻 T
字号:
### make sure we can find our conf.pl fileBEGIN {     use FindBin;     require "$FindBin::Bin/inc/conf.pl";}use Test::More 'no_plan';use Data::Dumper;use strict;use CPANPLUS::Internals::Constants;my $Config_pm   = 'CPANPLUS/Config.pm';### DO NOT FLUSH TILL THE END!!! we depend on all warnings being logged..for my $mod (qw[CPANPLUS::Configure]) {    use_ok($mod) or diag qq[Can't load $mod];}    my $c = CPANPLUS::Configure->new();isa_ok($c, 'CPANPLUS::Configure');my $r = $c->conf;isa_ok( $r, 'CPANPLUS::Config' );### EU::AI compatibility test ###{   my $base = $c->_get_build('base');    ok( defined($base),                 "Base retrieved by old compat API");    is( $base, $c->get_conf('base'),    "   Value as expected" );}for my $cat ( $r->ls_accessors ) {    ### what field can they take? ###    my @options = $c->options( type => $cat );    ### copy for use on the config object itself    my $accessor    = $cat;    my $prepend     = ($cat =~ s/^_//) ? '_' : '';        my $getmeth     = $prepend . 'get_'. $cat;    my $setmeth     = $prepend . 'set_'. $cat;    my $addmeth     = $prepend . 'add_'. $cat;        ok( scalar(@options),               "Possible options obtained" );        ### test adding keys too ###    {   my $add_key = 'test_key';        my $add_val = [1..3];            my $found = grep { $add_key eq $_ } @options;        ok( !$found,                    "Key '$add_key' not yet defined" );        ok( $c->$addmeth( $add_key => $add_val ),                                        "   $addmeth('$add_key' => VAL)" );         ### this one now also exists ###        push @options, $add_key    }    ### poke in the object, get the actual hashref out ###     my %hash = map {        $_ => $r->$accessor->$_         } $r->$accessor->ls_accessors;        while( my ($key,$val) = each %hash ) {        my $is = $c->$getmeth($key);         is_deeply( $val, $is,           "deep check for '$key'" );        ok( $c->$setmeth($key => 1 ),   "   $setmeth('$key' => 1)" );        is( $c->$getmeth($key), 1,      "   $getmeth('$key')" );        ok( $c->$setmeth($key => $val), "   $setmeth('$key' => ORGVAL)" );    }    ### now check if we found all the keys with options or not ###    delete $hash{$_} for @options;    ok( !(scalar keys %hash),          "All possible keys found" );    }    ### see if we can save the config ###{   my $dir     = File::Spec->rel2abs('dummy-cpanplus');    my $pm      = 'CPANPLUS::Config::Test' . $$;    my $file    = $c->save( $pm, $dir );        ok( $file,                  "Config $pm saved" );    ok( -e $file,               "   File exists" );    ok( -s $file,               "   File has size" );    ### include our dummy dir when re-scanning    {   local @INC = ( $dir, @INC );        ok( $c->init( rescan => 1 ),                                "Reran ->init()" );    }        ### make sure this file is now loaded    ### XXX can't trust bloody dir seperators on Win32 in %INC,    ### so rather than an exact match, do a grep...    my ($found) = grep /\bTest$$/, values %INC;     ok( $found,                 "   Found $file in \%INC" );    ok( -e $file,               "   File exists" );    1 while unlink $file;    ok(!-e $file,               "       File removed" );    }{   my $env             = ENV_CPANPLUS_CONFIG;    local $ENV{$env}    = $$;    my $ok              = $c->init;    my $stack           = CPANPLUS::Error->stack_as_string;            ok( $ok,                    "Reran init again" );    like( $stack, qr/Specifying a config file in your environment/,                                "   Warning logged" );}{   CPANPLUS::Error->flush;        {   ### try a bogus method call         my $x   = $c->flubber('foo');        my $err = CPANPLUS::Error->stack_as_string;        is  ($x, undef,         "Bogus method call returns undef");        like($err, "/flubber/", "   Bogus method call recognized");    }        CPANPLUS::Error->flush;}    # Local variables:# c-indentation-style: bsd# c-basic-offset: 4# indent-tabs-mode: nil# End:# vim: expandtab shiftwidth=4:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -