Fixes vim mode line.
[platal.git] / ut / xdbtest.php
CommitLineData
2779e65f
FB
1<?php
2/***************************************************************************
e92ecb8c 3 * Copyright (C) 2003-2011 Polytechnique.org *
2779e65f
FB
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 22require_once dirname(__FILE__) . '/../include/test.inc.php';
2779e65f 23
090bd6c3
FB
24class 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
39class 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
fa7ffd66 78// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
2779e65f 79?>