Pod-Site

 view release on metacpan or  search on metacpan

t/config.t  view on Meta::CPAN

    main_module     => undef,
    versioned_title => undef,
    replace_css     => undef,
    replace_js      => undef,
    label           => undef,
    man             => undef,
    help            => undef,
);

DEFAULTS: {
    local @ARGV = ('--doc-root', $doc_root, '--base-uri', $base_uri, $mod_root );
    is_deeply $CLASS->_config, \%config, 'Should have default config';
}

ERRS: {
    my $mock = Test::MockModule->new($CLASS);
    my @args;
    $mock->mock(_pod2usage => sub { @args = @_} );
    local @ARGV = ($mod_root);
    ok $CLASS->_config, 'configure with no options';
    is_deeply \@args, [
        $CLASS,
        '-message', 'Missing required --doc-root and --base-uri options',
    ], 'Should have been helped';

    @ARGV = ('--doc-root', $doc_root, $mod_root);
    ok $CLASS->_config, 'configure with no --base_uri';
    is_deeply \@args, [
        $CLASS,

t/config.t  view on Meta::CPAN


    @ARGV = ('--doc-root', $doc_root, '--base-uri', $base_uri);
    ok $CLASS->_config, 'configure with no module root';
    is_deeply \@args, [
        $CLASS,
        '-message', 'Missing path to module root',
    ], 'Should have been helped again';
}

MULTIPLES: {
    local @ARGV = (
        '--doc-root' => $doc_root,
        '--base-uri' => $base_uri,
        '--base-uri' => '/whatever',
        $mod_root, '/another/root'
    );
    local $config{base_uri} = [ $base_uri, '/whatever/' ];
    local $config{module_roots} = [ $mod_root, '/another/root' ];
    is_deeply $CLASS->_config, \%config, 'Allow multiple --base-uri';
}

HELP: {
    my $mock = Test::MockModule->new($CLASS);
    my @args;
    $mock->mock(_pod2usage => sub { @args = @_} );
    local @ARGV = ('--doc-root', $doc_root, '--base-uri', $base_uri, $mod_root, '--help' );
    ok $CLASS->_config, 'Ask for help';
    is_deeply \@args, [ $CLASS, '-exitval', 0 ], 'Should have been helped';
    @ARGV = ('--doc-root', $doc_root, '--base-uri', $base_uri, $mod_root, '-h' );
    ok $CLASS->_config, 'Ask for help short';
    is_deeply \@args, [ $CLASS, '-exitval', 0 ], 'Should have been helped again';

    @ARGV = ('--doc-root', $doc_root, '--base-uri', $base_uri, $mod_root, '--man' );
    ok $CLASS->_config, 'Ask for man';
    is_deeply \@args, [ $CLASS, '-sections', '.+', '-exitval', 0 ],
        'Should have been manned';
    @ARGV = ('--doc-root', $doc_root, '--base-uri', $base_uri, $mod_root, '-M' );
    ok $CLASS->_config, 'Ask for man short';
    is_deeply \@args, [ $CLASS, '-sections', '.+', '-exitval', 0 ],
        'Should have been manned again';
}

LOTS: {
    local @ARGV = (
        '--doc-root'      => $doc_root,
        '--base-uri'      => $base_uri,
        '--favicon-uri'   => 'my.icon',
        '--sample-module' => 'lib/Hello.pm',
        '--main-module'   => 'lib/Bye.pm',
        '--index-file'    => 'default.htm',
        '--css-path'      => '/some/file.css',
        '--js-path'       => '/some/file.js',
        '--name'          => 'Eat me',
        '--label'         => 'API Browser',

t/config.t  view on Meta::CPAN

        label           => 'API Browser',
        versioned_title => 1,
        replace_css     => 1,
        replace_js      => 1,
        man             => undef,
        help            => undef,
    }, 'Lots of opts should work';
}

SHORT: {
    local @ARGV = (
        '-d' => $doc_root,
        '-u' => $base_uri,
        '-s' => 'lib/Hello.pm',
        '-m' => 'lib/Bye.pm',
        '-i' => 'default.htm',
        '-c' => '/some/file.css',
        '-j' => '/some/file.js',
        '-n' => 'Eat me',
        '-l' => 'API Browser',
        '-t',

t/config.t  view on Meta::CPAN

        versioned_title => 1,
        replace_css     => undef,
        replace_js      => undef,
        man             => undef,
        help            => undef,
    }, 'Lots of short opts should work';

}

NEGATED: {
    local @ARGV = (
        '--doc-root'      => $doc_root,
        '--base-uri'      => $base_uri,
        '--no-versioned-title',
        $mod_root,
    );
    is_deeply $CLASS->_config, {
        %config,
        versioned_title => 0,
    }, 'Negated opts should work';
}



( run in 0.299 second using v1.01-cache-2.11-cpan-55f5a4728d2 )