|
Packit |
7f3e4a |
#!/usr/bin/perl
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
use strict;
|
|
Packit |
7f3e4a |
use warnings;
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
use Test::More tests => 14;
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
use List::Util qw(first);
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
use Config::IniFiles;
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
use lib "./t/lib";
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
use Config::IniFiles::TestPaths;
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
my $ini;
|
|
Packit |
7f3e4a |
my @members;
|
|
Packit |
7f3e4a |
my $string;
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# CASE SENSITIVE CHECKS
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# Test 1
|
|
Packit |
7f3e4a |
# newval and val - Check that correct case brings back the correct value
|
|
Packit |
7f3e4a |
$ini = Config::IniFiles->new;
|
|
Packit |
7f3e4a |
$ini->newval("Section", "PaRaMeTeR", "Mixed Case");
|
|
Packit |
7f3e4a |
$ini->newval("Section", "Parameter", "Title Case");
|
|
Packit |
7f3e4a |
my $mixed_case = $ini->val("Section", "PaRaMeTeR");
|
|
Packit |
7f3e4a |
my $title_case = $ini->val("Section", "Parameter");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
is ($mixed_case, "Mixed Case", "correct case - Mixed Case");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
is ($title_case, "Title Case", "correct case - Title Case");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# Test 2
|
|
Packit |
7f3e4a |
# Sections
|
|
Packit |
7f3e4a |
# Set up a controlled environment
|
|
Packit |
7f3e4a |
$ini = Config::IniFiles->new;
|
|
Packit |
7f3e4a |
$ini->newval("Section", "Parameter", "Value");
|
|
Packit |
7f3e4a |
$ini->newval("section", "parameter", "value");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
is (scalar($ini->Sections()), 2, "2 sections");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# Test 3
|
|
Packit |
7f3e4a |
# Deleting values
|
|
Packit |
7f3e4a |
# Set up a controlled environment
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
$ini = Config::IniFiles->new;
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
$ini->newval("Section", "Parameter", "Title Case");
|
|
Packit |
7f3e4a |
$ini->newval("Section", "parameter", "lower case");
|
|
Packit |
7f3e4a |
$ini->newval("Section", "PARAMETER", "UPPER CASE");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
my $delete_case_check_pass = 1;
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
@members = $ini->Parameters("Section");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
is (scalar(@members), 3, "Delete check pass - 3 members");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
$ini->delval("Section", "PARAMETER");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
@members = $ini->Parameters("Section");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
is (scalar(@members), 2 , "Delete check pass after delete - 2 members");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
ok (first { index($_, "Parameter") >= 0 } @members, "Parameter exists");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
ok (first { index($_, "parameter") >= 0 } @members, "parameter exists");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
{
|
|
Packit |
7f3e4a |
# Test 4
|
|
Packit |
7f3e4a |
# Parameters
|
|
Packit |
7f3e4a |
$ini = Config::IniFiles->new;
|
|
Packit |
7f3e4a |
$ini->newval("Section", "PaRaMeTeR", "Mixed Case");
|
|
Packit |
7f3e4a |
$ini->newval("Section", "Parameter", "Title Case");
|
|
Packit |
7f3e4a |
$ini->newval("SECTION", "Parameter", "N/A");
|
|
Packit |
7f3e4a |
my @parameter_list = $ini->Parameters("SECTION");
|
|
Packit |
7f3e4a |
my $parameters_case_check_pass = 1;
|
|
Packit |
7f3e4a |
$parameters_case_check_pass = 0 unless scalar(@parameter_list) == 1;
|
|
Packit |
7f3e4a |
$parameters_case_check_pass = 0 unless $parameter_list[0] eq "Parameter";
|
|
Packit |
7f3e4a |
@parameter_list = $ini->Parameters("Section");
|
|
Packit |
7f3e4a |
$parameters_case_check_pass = 0 unless scalar(@parameter_list) == 2;
|
|
Packit |
7f3e4a |
my $parameters = join " ", @parameter_list;
|
|
Packit |
7f3e4a |
$parameters_case_check_pass = 0 unless ($parameters =~ /PaRaMeTeR/);
|
|
Packit |
7f3e4a |
$parameters_case_check_pass = 0 unless ($parameters =~ /Parameter/);
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
ok ($parameters_case_check_pass, "Parameters case check pass");
|
|
Packit |
7f3e4a |
}
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
{
|
|
Packit |
7f3e4a |
# Test 5
|
|
Packit |
7f3e4a |
# Case sensitive handling of groups
|
|
Packit |
7f3e4a |
# Set up a controlled environment
|
|
Packit |
7f3e4a |
$ini = Config::IniFiles->new;
|
|
Packit |
7f3e4a |
$ini->newval("interface foo", "parameter", "foo");
|
|
Packit |
7f3e4a |
$ini->newval("interface bar", "parameter", "bar");
|
|
Packit |
7f3e4a |
$ini->newval("INTERFACE blurgle", "parameter", "flurgle");
|
|
Packit |
7f3e4a |
my $group_case_check_pass = 1;
|
|
Packit |
7f3e4a |
# We should have two groups - "interface" and "Interface"
|
|
Packit |
7f3e4a |
my $group_case_count = $ini->Groups();
|
|
Packit |
7f3e4a |
$group_case_check_pass = 0 unless ($group_case_count == 2);
|
|
Packit |
7f3e4a |
# We don't want to get the "interface" entries when we use the wrong case
|
|
Packit |
7f3e4a |
@members = $ini->GroupMembers("Interface");
|
|
Packit |
7f3e4a |
$group_case_check_pass = 0 unless (scalar(@members) == 0);
|
|
Packit |
7f3e4a |
# We *do* want to get the "interface" entries when we use the right case
|
|
Packit |
7f3e4a |
@members = $ini->GroupMembers("interface");
|
|
Packit |
7f3e4a |
$group_case_check_pass = 0 unless (scalar(@members) == 2);
|
|
Packit |
7f3e4a |
$group_case_check_pass = 0 unless (grep {/interface foo/} @members);
|
|
Packit |
7f3e4a |
$group_case_check_pass = 0 unless (grep {/interface bar/} @members);
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
ok ($group_case_check_pass, "Group cae check pass");
|
|
Packit |
7f3e4a |
}
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# CASE INSENSITIVE CHECKS
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
{
|
|
Packit |
7f3e4a |
# Test 6
|
|
Packit |
7f3e4a |
# newval - Check that case-insensitive version returns one value
|
|
Packit |
7f3e4a |
$ini = Config::IniFiles->new( -nocase => "1" );
|
|
Packit |
7f3e4a |
$ini->newval("Section", "PaRaMeTeR", "Mixed Case");
|
|
Packit |
7f3e4a |
$ini->newval("Section", "Parameter", "Title Case");
|
|
Packit |
7f3e4a |
my @values = $ini->val("Section", "parameter");
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
is_deeply (\@values, ["Title Case"],
|
|
Packit |
7f3e4a |
"case-insensitive version returns one value"
|
|
Packit |
7f3e4a |
);
|
|
Packit |
7f3e4a |
}
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# Test 7
|
|
Packit |
7f3e4a |
# Case insensitive handling of groups
|
|
Packit |
7f3e4a |
$ini = Config::IniFiles->new( -file =>t_file('test.ini'), -nocase => 1 );
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
is_deeply(
|
|
Packit |
7f3e4a |
[$ini->GroupMembers("GrOuP")],
|
|
Packit |
7f3e4a |
["group member one", "group member two", "group member three"]
|
|
Packit |
7f3e4a |
);
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
$ini = Config::IniFiles->new( -file => t_file("test.ini"), -default => 'test1', -nocase => 1 );
|
|
Packit |
7f3e4a |
$ini->SetFileName(t_file("test09.ini"));
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# test 8
|
|
Packit |
7f3e4a |
# Case insensitivity in parameters
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
is( scalar($ini->val('test2', 'FOUR')),
|
|
Packit |
7f3e4a |
'value4',
|
|
Packit |
7f3e4a |
"Case insensitivity in parameters",
|
|
Packit |
7f3e4a |
);
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# test 9
|
|
Packit |
7f3e4a |
# Case insensitivity in sections
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
is ( scalar($ini->val('TEST2', 'four')),
|
|
Packit |
7f3e4a |
'value4',
|
|
Packit |
7f3e4a |
"Case insensitivity in sections",
|
|
Packit |
7f3e4a |
);
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
|
|
Packit |
7f3e4a |
# TEST
|
|
Packit |
7f3e4a |
is (
|
|
Packit |
7f3e4a |
scalar($ini->val('mixedcasesect', 'mixedcaseparam')),
|
|
Packit |
7f3e4a |
'MixedCaseVal',
|
|
Packit |
7f3e4a |
"Mixed case val.",
|
|
Packit |
7f3e4a |
);
|
|
Packit |
7f3e4a |
|