#!perl
{
my
%policy_params
= (
keywords
=>
'Revision'
);
my
%profile_hash
= (
'-NamingConventions::ProhibitMixedCaseVars'
=> {},
'Miscellanea::RequireRcsKeywords'
=> \
%policy_params
);
my
$up
= Perl::Critic::UserProfile->new(
-profile
=> \
%profile_hash
);
is(
$up
->policy_is_enabled(
'Miscellanea::RequireRcsKeywords'
), 1 );
is(
$up
->policy_is_disabled(
'NamingConventions::ProhibitMixedCaseVars'
), 1 );
is_deeply(
$up
->raw_policy_params(
'Miscellanea::RequireRcsKeywords'
), \
%policy_params
);
is(
$up
->policy_is_enabled(
'Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'
), 1 );
is(
$up
->policy_is_disabled(
'Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars'
), 1 );
is_deeply(
$up
->raw_policy_params(
'Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'
), \
%policy_params
);
is(
$up
->policy_is_enabled(
'Perl::Critic::Policy::Bogus'
),
q{}
);
is(
$up
->policy_is_disabled(
'Perl::Critic::Policy::Bogus'
),
q{}
);
is_deeply(
$up
->raw_policy_params(
'Perl::Critic::Policy::Bogus'
), {} );
}
{
my
%policy_params
= (
keywords
=>
'Revision'
);
my
@profile_array
= (
q{ [-NamingConventions::ProhibitMixedCaseVars] }
,
q{ [Miscellanea::RequireRcsKeywords] }
,
q{ keywords = Revision }
,
);
my
$up
= Perl::Critic::UserProfile->new(
-profile
=> \
@profile_array
);
is(
$up
->policy_is_enabled(
'Miscellanea::RequireRcsKeywords'
), 1 );
is(
$up
->policy_is_disabled(
'NamingConventions::ProhibitMixedCaseVars'
), 1 );
is_deeply(
$up
->raw_policy_params(
'Miscellanea::RequireRcsKeywords'
), \
%policy_params
);
is(
$up
->policy_is_enabled(
'Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'
), 1 );
is(
$up
->policy_is_disabled(
'Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars'
), 1 );
is_deeply(
$up
->raw_policy_params(
'Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'
), \
%policy_params
);
is(
$up
->policy_is_enabled(
'Perl::Critic::Policy::Bogus'
),
q{}
);
is(
$up
->policy_is_disabled(
'Perl::Critic::Policy::Bogus'
),
q{}
);
is_deeply(
$up
->raw_policy_params(
'Perl::Critic::Policy::Bogus'
), {} );
}
{
my
%policy_params
= (
keywords
=>
'Revision'
);
my
$profile_string
=
<<'END_PROFILE';
[-NamingConventions::ProhibitMixedCaseVars]
[Miscellanea::RequireRcsKeywords]
keywords = Revision
END_PROFILE
my
$up
= Perl::Critic::UserProfile->new(
-profile
=> \
$profile_string
);
is(
$up
->policy_is_enabled(
'Miscellanea::RequireRcsKeywords'
), 1 );
is(
$up
->policy_is_disabled(
'NamingConventions::ProhibitMixedCaseVars'
), 1 );
is_deeply(
$up
->raw_policy_params(
'Miscellanea::RequireRcsKeywords'
), \
%policy_params
);
is(
$up
->policy_is_enabled(
'Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'
), 1 );
is(
$up
->policy_is_disabled(
'Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars'
), 1 );
is_deeply(
$up
->raw_policy_params(
'Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'
), \
%policy_params
);
is(
$up
->policy_is_enabled(
'Perl::Critic::Policy::Bogus'
),
q{}
);
is(
$up
->policy_is_disabled(
'Perl::Critic::Policy::Bogus'
),
q{}
);
is_deeply(
$up
->raw_policy_params(
'Perl::Critic::Policy::Bogus'
), {} );
}
{
my
%policy_params
= (
keywords
=>
'Revision'
);
my
$long_profile_string
=
<<'END_PROFILE';
[-Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars]
[Perl::Critic::Policy::Miscellanea::RequireRcsKeywords]
keywords = Revision
END_PROFILE
my
$up
= Perl::Critic::UserProfile->new(
-profile
=> \
$long_profile_string
);
is(
$up
->policy_is_enabled(
'Miscellanea::RequireRcsKeywords'
), 1 );
is(
$up
->policy_is_disabled(
'NamingConventions::ProhibitMixedCaseVars'
), 1 );
is_deeply(
$up
->raw_policy_params(
'Miscellanea::RequireRcsKeywords'
), \
%policy_params
);
is(
$up
->policy_is_enabled(
'Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'
), 1 );
is(
$up
->policy_is_disabled(
'Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars'
), 1 );
is_deeply(
$up
->raw_policy_params(
'Perl::Critic::Policy::Miscellanea::RequireRcsKeywords'
), \
%policy_params
);
is(
$up
->policy_is_enabled(
'Perl::Critic::Policy::Bogus'
),
q{}
);
is(
$up
->policy_is_disabled(
'Perl::Critic::Policy::Bogus'
),
q{}
);
is_deeply(
$up
->raw_policy_params(
'Perl::Critic::Policy::Bogus'
), {} );
}
{
my
$code_ref
=
sub
{
return
};
eval
{ Perl::Critic::UserProfile->new(
-profile
=>
$code_ref
) };
like(
$EVAL_ERROR
,
qr/Can't load UserProfile/
, 'Invalid profile type');
eval
{ Perl::Critic::UserProfile->new(
-profile
=>
'bogus'
) };
like(
$EVAL_ERROR
,
qr/File 'bogus' does not exist/
,
'Invalid profile path'
);
my
$invalid_syntax
=
'[Foo::Bar'
;
eval
{ Perl::Critic::UserProfile->new(
-profile
=> \
$invalid_syntax
) };
like(
$EVAL_ERROR
,
qr/Syntax error at line/
,
'Invalid profile syntax'
);
$invalid_syntax
=
'severity 2'
;
eval
{ Perl::Critic::UserProfile->new(
-profile
=> \
$invalid_syntax
) };
like(
$EVAL_ERROR
,
qr/Syntax error at line/
,
'Invalid profile syntax'
);
}
{
my
$expected
=
$ENV
{PERLCRITIC} =
'foo'
;
my
$got
= Perl::Critic::UserProfile::_find_profile_path();
is(
$got
,
$expected
,
'PERLCRITIC environment variable'
);
}
1;