TYPO3 CMS  TYPO3_6-2
SqlParserTest.php
Go to the documentation of this file.
1 <?php
3 
22 
26  protected $fixture;
27 
28  public function setUp() {
29  $this->fixture = $this->getAccessibleMock('\\TYPO3\\CMS\\Core\\Database\\SqlParser', array('dummy'));
30  }
31 
38  $clauses = array(
39  0 => array(
40  'modifier' => '',
41  'table' => 'pages',
42  'field' => 'fe_group',
43  'calc' => '',
44  'comparator' => '=',
45  'value' => array(
46  0 => '',
47  1 => '\''
48  )
49  ),
50  1 => array(
51  'operator' => 'OR',
52  'modifier' => '',
53  'func' => array(
54  'type' => 'IFNULL',
55  'default' => array(
56  0 => '1',
57  1 => '\''
58  ),
59  'table' => 'pages',
60  'field' => 'fe_group'
61  )
62  ),
63  2 => array(
64  'operator' => 'OR',
65  'modifier' => '',
66  'table' => 'pages',
67  'field' => 'fe_group',
68  'calc' => '',
69  'comparator' => '=',
70  'value' => array(
71  0 => '0',
72  1 => '\''
73  )
74  ),
75  3 => array(
76  'operator' => 'OR',
77  'modifier' => '',
78  'func' => array(
79  'type' => 'FIND_IN_SET',
80  'str' => array(
81  0 => '0',
82  1 => '\''
83  ),
84  'table' => 'pages',
85  'field' => 'fe_group'
86  ),
87  'comparator' => ''
88  ),
89  4 => array(
90  'operator' => 'OR',
91  'modifier' => '',
92  'func' => array(
93  'type' => 'FIND_IN_SET',
94  'str' => array(
95  0 => '-1',
96  1 => '\''
97  ),
98  'table' => 'pages',
99  'field' => 'fe_group'
100  ),
101  'comparator' => ''
102  ),
103  5 => array(
104  'operator' => 'OR',
105  'modifier' => '',
106  'func' => array(
107  'type' => 'CAST',
108  'table' => 'pages',
109  'field' => 'fe_group',
110  'datatype' => 'CHAR'
111  ),
112  'comparator' => '=',
113  'value' => array(
114  0 => '',
115  1 => '\''
116  )
117  )
118  );
119  $output = $this->fixture->compileWhereClause($clauses);
120  $parts = explode(' OR ', $output);
121  $this->assertSame(count($clauses), count($parts));
122  $this->assertContains('IFNULL', $output);
123  }
124 
131  return array(
132  'Nothing to trim' => array('SELECT * FROM test WHERE 1=1;', 'SELECT * FROM test WHERE 1=1 '),
133  'Space after ;' => array('SELECT * FROM test WHERE 1=1; ', 'SELECT * FROM test WHERE 1=1 '),
134  'Space before ;' => array('SELECT * FROM test WHERE 1=1 ;', 'SELECT * FROM test WHERE 1=1 '),
135  'Space before and after ;' => array('SELECT * FROM test WHERE 1=1 ; ', 'SELECT * FROM test WHERE 1=1 '),
136  'Linefeed after ;' => array('SELECT * FROM test WHERE 1=1' . LF . ';', 'SELECT * FROM test WHERE 1=1 '),
137  'Linefeed before ;' => array('SELECT * FROM test WHERE 1=1;' . LF, 'SELECT * FROM test WHERE 1=1 '),
138  'Linefeed before and after ;' => array('SELECT * FROM test WHERE 1=1' . LF . ';' . LF, 'SELECT * FROM test WHERE 1=1 '),
139  'Tab after ;' => array('SELECT * FROM test WHERE 1=1' . TAB . ';', 'SELECT * FROM test WHERE 1=1 '),
140  'Tab before ;' => array('SELECT * FROM test WHERE 1=1;' . TAB, 'SELECT * FROM test WHERE 1=1 '),
141  'Tab before and after ;' => array('SELECT * FROM test WHERE 1=1' . TAB . ';' . TAB, 'SELECT * FROM test WHERE 1=1 '),
142  );
143  }
144 
151  public function trimSqlReallyTrimsAllWhitespace($sql, $expected) {
152  $result = $this->fixture->_call('trimSQL', $sql);
153  $this->assertSame($expected, $result);
154  }
155 
156 }
$sql
Definition: server.php:82
getAccessibleMock( $originalClassName, array $methods=array(), array $arguments=array(), $mockClassName='', $callOriginalConstructor=TRUE, $callOriginalClone=TRUE, $callAutoload=TRUE)
if($list_of_literals) if(!empty($literals)) if(!empty($literals)) $result
Analyse literals to prepend the N char to them if their contents aren&#39;t numeric.