aboutsummaryrefslogtreecommitdiffstats
path: root/tests/dbal
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2014-08-10 13:35:27 +0200
committerJoas Schilling <nickvergessen@gmx.de>2014-08-10 13:35:27 +0200
commitb3ca955fb598cb3afa4becd6eae84c620649e08d (patch)
tree30ea814ef3092e7fca914aa52fb8c774848e0240 /tests/dbal
parent707568c49639930632b64099b0182ebc8deb1194 (diff)
parentdb0815f680d4ed9da845facb6e8e3975ac14621e (diff)
downloadforums-b3ca955fb598cb3afa4becd6eae84c620649e08d.tar
forums-b3ca955fb598cb3afa4becd6eae84c620649e08d.tar.gz
forums-b3ca955fb598cb3afa4becd6eae84c620649e08d.tar.bz2
forums-b3ca955fb598cb3afa4becd6eae84c620649e08d.tar.xz
forums-b3ca955fb598cb3afa4becd6eae84c620649e08d.zip
Merge pull request #2837 from Geolim4/ticket/12671
Ticket/12671 Possibility to use NOT LIKE expression * Geolim4/ticket/12671: [ticket/12671] Possibility to use NOT LIKE expression [ticket/12671] Possibility to use NOT LIKE expression [ticket/12671] Possibility to use NOT LIKE expression [ticket/12671] Possibility to use NOT LIKE expression [ticket/12671] Possibility to use NOT LIKE expression
Diffstat (limited to 'tests/dbal')
-rw-r--r--tests/dbal/select_test.php60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/dbal/select_test.php b/tests/dbal/select_test.php
index e480716a49..b7074552ba 100644
--- a/tests/dbal/select_test.php
+++ b/tests/dbal/select_test.php
@@ -233,6 +233,66 @@ class phpbb_dbal_select_test extends phpbb_database_test_case
$db->sql_freeresult($result);
}
+ public function not_like_expression_data()
+ {
+ // * = any_char; # = one_char
+ return array(
+ array('barfoo', array(
+ array('username_clean' => 'foobar'),
+ array('username_clean' => 'bertie')
+ )),
+ array('bar', array(
+ array('username_clean' => 'barfoo'),
+ array('username_clean' => 'foobar'),
+ array('username_clean' => 'bertie'),
+ )),
+ array('bar*', array(
+ array('username_clean' => 'foobar'),
+ array('username_clean' => 'bertie'))
+ ),
+ array('*bar*', array(array('username_clean' => 'bertie'))),
+ array('b*r', array(
+ array('username_clean' => 'barfoo'),
+ array('username_clean' => 'foobar'),
+ array('username_clean' => 'bertie')
+ )),
+ array('b*e', array(
+ array('username_clean' => 'barfoo'),
+ array('username_clean' => 'foobar')
+ )),
+ array('#b*e', array(
+ array('username_clean' => 'barfoo'),
+ array('username_clean' => 'foobar'),
+ array('username_clean' => 'bertie')
+ )),
+ array('b####e', array(
+ array('username_clean' => 'barfoo'),
+ array('username_clean' => 'foobar')
+ )),
+ );
+ }
+
+ /**
+ * @dataProvider not_like_expression_data
+ */
+ public function test_not_like_expression($like_expression, $expected)
+ {
+ $db = $this->new_dbal();
+
+ $like_expression = str_replace('*', $db->get_any_char(), $like_expression);
+ $like_expression = str_replace('#', $db->get_one_char(), $like_expression);
+ $where = ($like_expression) ? 'username_clean ' . $db->sql_not_like_expression($like_expression) : '';
+
+ $result = $db->sql_query('SELECT username_clean
+ FROM phpbb_users
+ ' . (($where) ? ' WHERE ' . $where : '') . '
+ ORDER BY user_id ASC');
+
+ $this->assertEquals($expected, $db->sql_fetchrowset($result));
+
+ $db->sql_freeresult($result);
+ }
+
public function in_set_data()
{
return array(