diff options
author | Davey Shafik <me@daveyshafik.com> | 2015-12-07 01:04:46 -0500 |
---|---|---|
committer | Davey Shafik <me@daveyshafik.com> | 2015-12-07 01:04:46 -0500 |
commit | 0a6610cdb671a4579f90388d6489db72c7b57d9c (patch) | |
tree | 4b7ab00dedefaf33647ad9e4adff193fb5533379 /tests | |
parent | 5f20827302d32a08cfcafe3b0cc9be0dc0a1c14c (diff) | |
download | php7-mysql-shim-0a6610cdb671a4579f90388d6489db72c7b57d9c.zip php7-mysql-shim-0a6610cdb671a4579f90388d6489db72c7b57d9c.tar.gz php7-mysql-shim-0a6610cdb671a4579f90388d6489db72c7b57d9c.tar.bz2 |
More tests, more fixes
- Reimplement original `mysql_escape_string()` based on C-code as close as possible
- For some reason `mysql_fetch_object()` has a different error than all the other `mysql_fetch_*()` functions when passed an invalid result. ಠ_ಠ
Diffstat (limited to 'tests')
-rw-r--r-- | tests/MySqlShimTest.php | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/tests/MySqlShimTest.php b/tests/MySqlShimTest.php index 19fa72e..8a2e063 100644 --- a/tests/MySqlShimTest.php +++ b/tests/MySqlShimTest.php @@ -450,6 +450,21 @@ class MySqlShimTest extends \PHPUnit_Framework_TestCase } /** + * @dataProvider mysql_function_invalid_result_DataProvider + */ + public function test_mysql_function_invalid_result($function, $error, $args) + { + try { + if ($args !== []) { + $function(null, ...$args); + } + $function(null); + } catch (\PHPUnit_Framework_Error_Warning $e) { + $this->assertEquals($error, $e->getMessage()); + } + } + + /** * @dataProvider mysql_fetch_DataProvider */ public function test_mysql_fetch($function, $results) @@ -602,6 +617,21 @@ class MySqlShimTest extends \PHPUnit_Framework_TestCase $this->assertEquals(1064, mysql_errno()); } + public function test_mysql_escape_string() + { + $this->assertEquals('\\\'\0\Z\r\n\"\\\\', @mysql_escape_string("'\0\032\r\n\"\\")); + } + + /** + * @requires PHP 7.0.0 + * @expectedException \PHPUnit_Framework_Error_Notice + * @expectedExceptionMessage mysql_escape_string() is insecure; use mysql_real_escape_string() instead! + */ + public function test_mysql_escape_string_notice() + { + mysql_escape_string("'\0\032\r\n\"\\"); + } + public function tearDown() { @mysql_close(); @@ -744,6 +774,107 @@ class MySqlShimTest extends \PHPUnit_Framework_TestCase ]; } + public function mysql_function_invalid_result_DataProvider() + { + return [ + [ + "function" => "mysql_result", + "message" => "mysql_result() expects parameter 1 to be resource, null given", + "args" => [0] + ], + [ + "function" => "mysql_num_rows", + "message" => "mysql_num_rows() expects parameter 1 to be resource, null given", + "args" => [], + ], + [ + "function" => "mysql_num_fields", + "message" => "mysql_num_fields() expects parameter 1 to be resource, null given", + "args" => [], + ], + [ + "function" => "mysql_fetch_row", + "message" => "mysql_fetch_row() expects parameter 1 to be resource, null given", + "args" => [], + ], + [ + "function" => "mysql_fetch_array", + "message" => "mysql_fetch_array() expects parameter 1 to be resource, null given", + "args" => [], + ], + [ + "function" => "mysql_fetch_assoc", + "message" => "mysql_fetch_assoc() expects parameter 1 to be resource, null given", + "args" => [], + ], + [ + "function" => "mysql_fetch_object", + "message" => "mysql_fetch_object(): supplied argument is not a valid MySQL result resource", + "args" => ["StdClass"] + ], + [ + "function" => "mysql_data_seek", + "message" => "mysql_data_seek() expects parameter 1 to be resource, null given", + "args" => [0] + ], + [ + "function" => "mysql_fetch_lengths", + "message" => "mysql_fetch_lengths() expects parameter 1 to be resource, null given", + "args" => [] + ], + [ + "function" => "mysql_fetch_field", + "message" => "mysql_fetch_field() expects parameter 1 to be resource, null given", + "args" => [] + ], + [ + "function" => "mysql_field_seek", + "message" => "mysql_field_seek() expects parameter 1 to be resource, null given", + "args" => [0] + ], + [ + "function" => "mysql_free_result", + "message" => "mysql_free_result() expects parameter 1 to be resource, null given", + "args" => [] + ], + [ + "function" => "mysql_field_name", + "message" => "mysql_field_name() expects parameter 1 to be resource, null given", + "args" => [0] + ], + [ + "function" => "mysql_field_table", + "message" => "mysql_field_table() expects parameter 1 to be resource, null given", + "args" => [0] + ], + [ + "function" => "mysql_field_len", + "message" => "mysql_field_len() expects parameter 1 to be resource, null given", + "args" => [0] + ], + [ + "function" => "mysql_field_type", + "message" => "mysql_field_type() expects parameter 1 to be resource, null given", + "args" => [0] + ], + [ + "function" => "mysql_field_flags", + "message" => "mysql_field_flags() expects parameter 1 to be resource, null given", + "args" => [0] + ], + [ + "function" => "mysql_db_name", + "message" => "mysql_db_name() expects parameter 1 to be resource, null given", + "args" => [0] + ], + [ + "function" => "mysql_table_name", + "message" => "mysql_table_name() expects parameter 1 to be resource, null given", + "args" => [0] + ], + ]; + } + /** * @param $result */ |