diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2014-08-10 13:35:37 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2014-08-10 13:35:37 +0200 |
commit | 489aba31c70c2b7ccafdd6941a4d2077afef0967 (patch) | |
tree | af96b4e8f806f345308b0c5b7124e71a16a9b06d /tests/dbal/select_test.php | |
parent | 9572cc0cccf64f30140f47c2a620764778d0d018 (diff) | |
parent | b3ca955fb598cb3afa4becd6eae84c620649e08d (diff) | |
download | forums-489aba31c70c2b7ccafdd6941a4d2077afef0967.tar forums-489aba31c70c2b7ccafdd6941a4d2077afef0967.tar.gz forums-489aba31c70c2b7ccafdd6941a4d2077afef0967.tar.bz2 forums-489aba31c70c2b7ccafdd6941a4d2077afef0967.tar.xz forums-489aba31c70c2b7ccafdd6941a4d2077afef0967.zip |
Merge branch 'develop-ascraeus' into develop
* develop-ascraeus:
[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/select_test.php')
-rw-r--r-- | tests/dbal/select_test.php | 60 |
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( |