Commit | Line | Data |
---|---|---|
2779e65f FB |
1 | <?php |
2 | /*************************************************************************** | |
3 | * Copyright (C) 2003-2010 Polytechnique.org * | |
4 | * http://opensource.polytechnique.org/ * | |
5 | * * | |
6 | * This program is free software; you can redistribute it and/or modify * | |
7 | * it under the terms of the GNU General Public License as published by * | |
8 | * the Free Software Foundation; either version 2 of the License, or * | |
9 | * (at your option) any later version. * | |
10 | * * | |
11 | * This program is distributed in the hope that it will be useful, * | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
14 | * GNU General Public License for more details. * | |
15 | * * | |
16 | * You should have received a copy of the GNU General Public License * | |
17 | * along with this program; if not, write to the Free Software * | |
18 | * Foundation, Inc., * | |
19 | * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * | |
20 | ***************************************************************************/ | |
21 | ||
536fc7f7 | 22 | require_once dirname(__FILE__) . '/../include/test.inc.php'; |
2779e65f | 23 | |
090bd6c3 FB |
24 | class FormatBlah implements XDBFormat |
25 | { | |
26 | private $text; | |
27 | ||
28 | public function __construct($text) | |
29 | { | |
30 | $this->text = $text; | |
31 | } | |
32 | ||
33 | public function format() | |
34 | { | |
35 | return 'blah' . $this->text . 'blah'; | |
36 | } | |
37 | } | |
38 | ||
2779e65f FB |
39 | class XDBTest extends PlTestCase |
40 | { | |
41 | public function testEscapeString() | |
42 | { | |
748543a7 FB |
43 | $this->assertSame("'blah'", XDB::format('{?}', 'blah')); |
44 | $this->assertSame("'blah\\''", XDB::format('{?}', "blah'")); | |
45 | $this->assertSame("'bl\\'ah'", XDB::format('{?}', "bl'ah")); | |
46 | $this->assertSame("'\\'blah\\''", XDB::format('{?}', "'blah'")); | |
2779e65f FB |
47 | } |
48 | ||
49 | public function testEscapeInt() | |
50 | { | |
748543a7 | 51 | $this->assertSame("1", XDB::format('{?}', 1)); |
2779e65f FB |
52 | } |
53 | ||
54 | public function testEscapeFlagSet() | |
55 | { | |
56 | $flagset = new PlFlagSet(); | |
57 | $flagset->addFlag('toto'); | |
748543a7 | 58 | $this->assertSame("'toto'", XDB::format('{?}', $flagset)); |
2779e65f | 59 | $flagset->addFlag('titi'); |
748543a7 | 60 | $this->assertSame("'toto,titi'", XDB::format('{?}', $flagset)); |
2779e65f | 61 | $flagset->addFlag('titi'); |
748543a7 | 62 | $this->assertSame("'toto,titi'", XDB::format('{?}', $flagset)); |
2779e65f FB |
63 | } |
64 | ||
65 | public function testEscapeArray() | |
66 | { | |
748543a7 | 67 | $this->assertSame("(1, 'toto')", XDB::format('{?}', array(1, 'toto'))); |
2779e65f | 68 | } |
090bd6c3 FB |
69 | |
70 | public function testEscapeFormat() | |
71 | { | |
72 | $this->assertSame('blahblah', XDB::format('{?}', new FormatBlah(''))); | |
73 | $this->assertSame('blahblahblah', XDB::format('{?}', new FormatBlah('blah'))); | |
74 | $this->assertSame('blahBloumblah', XDB::format('{?}', new FormatBlah('Bloum'))); | |
75 | } | |
2779e65f FB |
76 | } |
77 | ||
78 | // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: | |
79 | ?> |