summaryrefslogtreecommitdiff
path: root/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt')
-rw-r--r--ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt128
1 files changed, 128 insertions, 0 deletions
diff --git a/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt
new file mode 100644
index 0000000..681590e
--- /dev/null
+++ b/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt
@@ -0,0 +1,128 @@
+--TEST--
+Interface of the class mysqli_driver
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifemb.inc');
+require_once('skipifconnectfailure.inc');
+?>
+--FILE--
+<?php
+ require('connect.inc');
+ require('table.inc');
+
+ $driver = new mysqli_driver();
+
+ printf("Parent class:\n");
+ var_dump(get_parent_class($driver));
+
+ printf("\nMethods:\n");
+ $methods = get_class_methods($driver);
+ $expected_methods = array();
+
+ if (!$IS_MYSQLND && (isset($methods['embedded_server_start']))) {
+ /* libmysql only - needs extra compile flag, no way to check properly in the
+ PHP user land if its compiled in or not */
+ $expected_methods = array_merge($expected_methods, array(
+ 'embedded_server_start' => true,
+ 'embedded_server_end' => true,
+ ));
+ }
+
+ foreach ($methods as $k => $method) {
+ if (isset($expected_methods[$method])) {
+ unset($expected_methods[$method]);
+ unset($methods[$k]);
+ }
+ }
+ if (!empty($expected_methods)) {
+ printf("Dumping list of missing methods.\n");
+ var_dump($expected_methods);
+ }
+ if (!empty($methods)) {
+ printf("Dumping list of unexpected methods.\n");
+ var_dump($methods);
+ }
+ if (empty($expected_methods) && empty($methods))
+ printf("ok\n");
+
+ printf("\nClass variables:\n");
+ $variables = array_keys(get_class_vars(get_class($driver)));
+ sort($variables);
+ foreach ($variables as $k => $var)
+ printf("%s\n", $var);
+
+ printf("\nObject variables:\n");
+ $variables = array_keys(get_object_vars($driver));
+ foreach ($variables as $k => $var)
+ printf("%s\n", $var);
+
+ printf("\nMagic, magic properties:\n");
+
+ assert(mysqli_get_client_info() === $driver->client_info);
+ printf("driver->client_info = '%s'\n", $driver->client_info);
+
+ assert(mysqli_get_client_version() === $driver->client_version);
+ printf("driver->client_version = '%s'\n", $driver->client_version);
+
+ assert($driver->driver_version > 0);
+ printf("driver->driver_version = '%s'\n", $driver->driver_version);
+
+ assert(in_array($driver->report_mode,
+ array(
+ MYSQLI_REPORT_ALL,
+ MYSQLI_REPORT_STRICT,
+ MYSQLI_REPORT_ERROR,
+ MYSQLI_REPORT_INDEX,
+ MYSQLI_REPORT_OFF
+ )
+ ));
+
+ printf("driver->report_mode = '%s'\n", $driver->report_mode);
+ $driver->report_mode = MYSQLI_REPORT_STRICT;
+ assert($driver->report_mode === MYSQLI_REPORT_STRICT);
+
+ assert(is_bool($driver->embedded));
+ printf("driver->embedded = '%s'\n", $driver->embedded);
+
+ printf("driver->reconnect = '%s'\n", $driver->reconnect);
+
+ printf("\nAccess to undefined properties:\n");
+ printf("driver->unknown = '%s'\n", @$driver->unknown);
+
+ print "done!";
+?>
+--EXPECTF--
+Parent class:
+bool(false)
+
+Methods:
+ok
+
+Class variables:
+client_info
+client_version
+driver_version
+embedded
+reconnect
+report_mode
+
+Object variables:
+client_info
+client_version
+driver_version
+embedded
+reconnect
+report_mode
+
+Magic, magic properties:
+driver->client_info = '%s'
+driver->client_version = '%d'
+driver->driver_version = '%d'
+driver->report_mode = '%d'
+driver->embedded = ''
+driver->reconnect = ''
+
+Access to undefined properties:
+driver->unknown = ''
+done!