Skip to content

Commit 8a9af06

Browse files
committed
ext/dba/inifile: Add tests handling group keys
Turns out, nothing works
1 parent e1c8329 commit 8a9af06

File tree

1 file changed

+146
-0
lines changed

1 file changed

+146
-0
lines changed
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
--TEST--
2+
DBA check behaviour of array keys (inifile version)
3+
--EXTENSIONS--
4+
dba
5+
--SKIPIF--
6+
<?php
7+
require_once __DIR__ . '/setup/setup_dba_tests.inc';
8+
check_skip('inifile');
9+
?>
10+
--FILE--
11+
<?php
12+
require_once __DIR__ . '/setup/setup_dba_tests.inc';
13+
$name = __DIR__ . '/inifile_group_keys_tests.db';
14+
15+
$db = dba_open($name, 'c', 'inifile');
16+
17+
echo "Checks on an empty database:\n";
18+
var_dump(dba_delete(['group', 'name'], $db));
19+
var_dump(dba_replace(['group', 'name'], 'Normal group', $db));
20+
var_dump(dba_exists(['group', 'name'], $db));
21+
var_dump(dba_fetch(['group', 'name'], $db));
22+
var_dump(dba_delete(['group', 'name'], $db));
23+
24+
echo "Insert various group values:\n";
25+
var_dump(dba_insert(['group1', 'name1'], 'Group1Value1', $db));
26+
var_dump(dba_insert(['group1', 'name2'], 'Group1Value2', $db));
27+
var_dump(dba_insert(['group1', 'name3'], 'Group1Value3', $db));
28+
var_dump(dba_insert(['group2', 'name1'], 'Group1Value1', $db));
29+
var_dump(dba_insert(['group2', 'name2'], 'Group1Value2', $db));
30+
31+
$INI_FILE_CONTENT_AT_STAGE = <<<'INIFILE'
32+
[group]
33+
[group1]
34+
name1=Group1Value1
35+
name2=Group1Value2
36+
name3=Group1Value3
37+
[group2]
38+
name1=Group1Value1
39+
name2=Group1Value2
40+
41+
INIFILE;
42+
43+
echo "Check INI file content:\n";
44+
var_dump(file_get_contents($name) == $INI_FILE_CONTENT_AT_STAGE);
45+
46+
echo "Insert an existing value in group1, this should fail\n";
47+
// TODO This is bugged
48+
var_dump(dba_insert(['group1', 'name2'], 'Group1Value2reinserted', $db));
49+
var_dump(dba_fetch(['group1', 'name2'], $db));
50+
51+
$INI_FILE_CONTENT_AT_STAGE = <<<'INIFILE'
52+
[group]
53+
[group1]
54+
name1=Group1Value1
55+
name2=Group1Value2
56+
name3=Group1Value3
57+
name2=Group1Value2reinserted
58+
[group2]
59+
name1=Group1Value1
60+
name2=Group1Value2
61+
62+
INIFILE;
63+
echo "Check INI file content:\n";
64+
var_dump(file_get_contents($name) == $INI_FILE_CONTENT_AT_STAGE);
65+
66+
echo "Insert a new value in group1\n";
67+
var_dump(dba_insert(['group1', 'name4'], 'Group1Value4', $db));
68+
var_dump(dba_fetch(['group1', 'name4'], $db));
69+
70+
$INI_FILE_CONTENT_AT_STAGE = <<<'INIFILE'
71+
[group]
72+
[group1]
73+
name1=Group1Value1
74+
name2=Group1Value2
75+
name3=Group1Value3
76+
name2=Group1Value2reinserted
77+
name4=Group1Value4
78+
[group2]
79+
name1=Group1Value1
80+
name2=Group1Value2
81+
82+
INIFILE;
83+
echo "Check INI file content:\n";
84+
var_dump(file_get_contents($name) == $INI_FILE_CONTENT_AT_STAGE);
85+
86+
// TODO This is also bugged
87+
echo "Replace value of ['group1', 'name3'] with 'Group1Value3replaced'\n";
88+
var_dump(dba_insert(['group1', 'name3'], 'Group1Value3replaced', $db));
89+
var_dump(dba_fetch(['group1', 'name3'], $db));
90+
91+
$INI_FILE_CONTENT_AT_STAGE = <<<'INIFILE'
92+
[group]
93+
[group1]
94+
name1=Group1Value1
95+
name2=Group1Value2
96+
name3=Group1Value3
97+
name2=Group1Value2reinserted
98+
name4=Group1Value4
99+
name3=Group1Value3replaced
100+
[group2]
101+
name1=Group1Value1
102+
name2=Group1Value2
103+
104+
INIFILE;
105+
echo "Check INI file content:\n";
106+
var_dump(file_get_contents($name) == $INI_FILE_CONTENT_AT_STAGE);
107+
108+
dba_close($db);
109+
110+
?>
111+
--CLEAN--
112+
<?php
113+
require_once __DIR__ . '/setup/setup_dba_tests.inc';
114+
$name = __DIR__ . '/inifile_group_keys_tests.db';
115+
cleanup_standard_db($name);
116+
?>
117+
--EXPECT--
118+
Checks on an empty database:
119+
bool(false)
120+
bool(true)
121+
bool(true)
122+
string(12) "Normal group"
123+
bool(true)
124+
Insert various group values:
125+
bool(true)
126+
bool(true)
127+
bool(true)
128+
bool(true)
129+
bool(true)
130+
Check INI file content:
131+
bool(true)
132+
Insert an existing value in group1, this should fail
133+
bool(true)
134+
string(12) "Group1Value2"
135+
Check INI file content:
136+
bool(true)
137+
Insert a new value in group1
138+
bool(true)
139+
string(12) "Group1Value4"
140+
Check INI file content:
141+
bool(true)
142+
Replace value of ['group1', 'name3'] with 'Group1Value3replaced'
143+
bool(true)
144+
string(12) "Group1Value3"
145+
Check INI file content:
146+
bool(true)

0 commit comments

Comments
 (0)