~ubuntu-branches/ubuntu/natty/libconfig-inifiles-perl/natty

« back to all changes in this revision

Viewing changes to t/09case.t

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard, gregor herrmann
  • Date: 2009-01-24 22:25:26 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090124222526-uutu8jg5r4vrfljq
Tags: 2.47-1
[ Jonas Smedegaard ]
* New upstream release. Closes: bug#430426, #380280.
* Depend on ${misc:Depends}.
* Fix Vcs-* fields to point to refer to correct package.
* Update CDBS snippets:
  + Update copyright-check output to more closely match proposed new
    copyright file format
  + Simplify internal variables
  + Ignore no files by default in copyright-check.mk
  + Correct and update copyright hints of the snippets themselves
  + Move dependency cleanup to new local snippet package-relations.mk.
* Update debian/copyright and copyright hints:
  + Rewrite debian/copyright using new file format, version 428
  + Add info on CDBS snippets (new owners, no new licenses)
* Add DEB_MAINTAINER_MODE in debian/rules (thanks to Romain Beauxis).

[ gregor herrmann ]
* debian/watch: use dist-based URL.
* debian/control: Changed: Switched Vcs-Browser field to ViewSVN
  (source stanza).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
use strict;
 
2
use Test;
 
3
use Config::IniFiles;
 
4
# $Id: 09case.t,v 1.3 2002-08-15 21:34:00 wadg Exp $
 
5
 
 
6
BEGIN { plan tests => 10 }
 
7
 
 
8
my $ini;
 
9
my @members;
 
10
my $string;
 
11
 
 
12
# Get files from the 't' directory, portably
 
13
chdir('t') if ( -d 't' );
 
14
 
 
15
# CASE SENSITIVE CHECKS
 
16
 
 
17
# Test 1
 
18
# newval and val - Check that correct case brings back the correct value
 
19
$ini = new Config::IniFiles;
 
20
$ini->newval("Section", "PaRaMeTeR", "Mixed Case");
 
21
$ini->newval("Section", "Parameter", "Title Case");
 
22
my $mixed_case = $ini->val("Section", "PaRaMeTeR");
 
23
my $title_case = $ini->val("Section", "Parameter");
 
24
ok(($mixed_case eq "Mixed Case") and ($title_case eq "Title Case"));
 
25
 
 
26
# Test 2
 
27
# Sections
 
28
# Set up a controlled environment
 
29
$ini = new Config::IniFiles;
 
30
$ini->newval("Section", "Parameter", "Value");
 
31
$ini->newval("section", "parameter", "value");
 
32
my $section_case_check_pass = 1;
 
33
$section_case_check_pass = 0 unless (scalar($ini->Sections()) == 2);
 
34
ok($section_case_check_pass);
 
35
 
 
36
# Test 3
 
37
# Deleting values
 
38
# Set up a controlled environment
 
39
$ini = new Config::IniFiles;
 
40
$ini->newval("Section", "Parameter", "Title Case");
 
41
$ini->newval("Section", "parameter", "lower case");
 
42
$ini->newval("Section", "PARAMETER", "UPPER CASE");
 
43
my $delete_case_check_pass = 1;
 
44
@members = $ini->Parameters("Section");
 
45
$delete_case_check_pass = 0 unless (scalar(@members) == 3);
 
46
$ini->delval("Section", "PARAMETER");
 
47
@members = $ini->Parameters("Section");
 
48
$delete_case_check_pass = 0 unless (scalar(@members) == 2);
 
49
$delete_case_check_pass = 0 unless (grep {/Parameter/} @members);
 
50
$delete_case_check_pass = 0 unless (grep {/parameter/} @members);
 
51
ok($delete_case_check_pass);
 
52
 
 
53
# Test 4
 
54
# Parameters
 
55
$ini = new Config::IniFiles;
 
56
$ini->newval("Section", "PaRaMeTeR", "Mixed Case");
 
57
$ini->newval("Section", "Parameter", "Title Case");
 
58
$ini->newval("SECTION", "Parameter", "N/A");
 
59
my @parameter_list = $ini->Parameters("SECTION");
 
60
my $parameters_case_check_pass = 1;
 
61
$parameters_case_check_pass = 0 unless scalar(@parameter_list) == 1;
 
62
$parameters_case_check_pass = 0 unless $parameter_list[0] eq "Parameter";
 
63
@parameter_list = $ini->Parameters("Section");
 
64
$parameters_case_check_pass = 0 unless scalar(@parameter_list) == 2;
 
65
my $parameters = join " ", @parameter_list;
 
66
$parameters_case_check_pass = 0 unless ($parameters =~ /PaRaMeTeR/);
 
67
$parameters_case_check_pass = 0 unless ($parameters =~ /Parameter/);
 
68
ok($parameters_case_check_pass);
 
69
 
 
70
# Test 5
 
71
# Case sensitive handling of groups
 
72
# Set up a controlled environment
 
73
$ini = new Config::IniFiles;
 
74
$ini->newval("interface foo", "parameter", "foo");
 
75
$ini->newval("interface bar", "parameter", "bar");
 
76
$ini->newval("INTERFACE blurgle", "parameter", "flurgle");
 
77
my $group_case_check_pass = 1;
 
78
# We should have two groups - "interface" and "Interface"
 
79
my $group_case_count = $ini->Groups();
 
80
$group_case_check_pass = 0 unless ($group_case_count == 2);
 
81
# We don't want to get the "interface" entries when we use the wrong case
 
82
@members = $ini->GroupMembers("Interface");
 
83
$group_case_check_pass = 0 unless (scalar(@members) == 0);
 
84
# We *do* want to get the "interface" entries when we use the right case
 
85
@members = $ini->GroupMembers("interface");
 
86
$group_case_check_pass = 0 unless (scalar(@members) == 2);
 
87
$group_case_check_pass = 0 unless (grep {/interface foo/} @members);
 
88
$group_case_check_pass = 0 unless (grep {/interface bar/} @members);
 
89
ok($group_case_check_pass);
 
90
 
 
91
 
 
92
 
 
93
# CASE INSENSITIVE CHECKS
 
94
 
 
95
# Test 6
 
96
# newval - Check that case-insensitive version returns one value
 
97
$ini = new Config::IniFiles( -nocase => "1" );
 
98
$ini->newval("Section", "PaRaMeTeR", "Mixed Case");
 
99
$ini->newval("Section", "Parameter", "Title Case");
 
100
my @values = $ini->val("Section", "parameter");
 
101
ok((scalar(@values) == 1) and ($values[0] eq "Title Case"));
 
102
 
 
103
# Test 7
 
104
# Case insensitive handling of groups
 
105
$ini = new Config::IniFiles( -file =>'test.ini', -nocase => 1 );
 
106
$string = join " ", $ini->GroupMembers("GrOuP");
 
107
ok($string eq "group member one group member two group member three");
 
108
 
 
109
$ini = new Config::IniFiles( -file => "test.ini", -default => 'test1', -nocase => 1 );
 
110
$ini->SetFileName("test09.ini");
 
111
 
 
112
# test 8
 
113
# Case insensitivity in parameters
 
114
ok( (defined $ini) && ($ini->val('test2', 'FOUR') eq 'value4') );
 
115
 
 
116
# test 9
 
117
# Case insensitivity in sections
 
118
ok( (defined $ini) && ($ini->val('TEST2', 'four') eq 'value4') );
 
119
my $v;
 
120
 
 
121
# test 10
 
122
ok( (defined $ini) && ($v = $ini->val('mixedcasesect', 'mixedcaseparam')) && ($v eq 'MixedCaseVal'));
 
123
 
 
124
 
 
125