blob: b1516801643ded51910822316bfc641ca238d3a9 [file] [log] [blame]
use strict;
use warnings;
use Test::More 0.88;
use CPAN::Meta;
delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults
my %distmeta = (
name => 'Module-Billed',
abstract => 'inscrutable',
version => '1',
author => 'Joe',
release_status => 'stable',
license => 'perl_5',
'meta-spec' => {
version => '2',
url => 'http://search.cpan.org/perldoc?CPAN::Meta::Spec',
},
dynamic_config => 1,
generated_by => 'Module::Build version 0.36',
);
{
my $meta = CPAN::Meta->new({ %distmeta });
ok(
$meta->should_index_package('Foo::Bar::Baz'),
'we index any old package, without a no_index rule'
);
ok(
$meta->should_index_file('lib/Foo/Bar/Baz.pm'),
'we index any old file, without a no_index rule'
);
}
{
my $meta = CPAN::Meta->new({
%distmeta,
no_index => {
package => [ 'Foo::Bar' ],
namespace => [ 'Foo::Bar::Baz' ],
}
});
ok(
! $meta->should_index_package('Foo::Bar'),
'exclude a specific package'
);
ok(
$meta->should_index_package('Foo::Bar::Baz'),
'namespace X does not exclude package X'
);
ok(
! $meta->should_index_package('Foo::Bar::Baz::Quux'),
'exclude something under a namespace'
);
}
{
my $meta = CPAN::Meta->new({
%distmeta,
no_index => {
file => [ 'lib/Foo/Bar.pm' ],
directory => [ 'lib/Foo/Bar/Baz' ],
}
});
ok(
! $meta->should_index_file('lib/Foo/Bar.pm'),
'exclude a specific file'
);
ok(
$meta->should_index_file('lib/Foo/Bar/Baz.pm'),
'do not exclude a file with a name like an excluded dir',
);
ok(
! $meta->should_index_file('lib/Foo/Bar/Baz/Quux.pm'),
'exclude something under a directory'
);
}
done_testing;