Annotation of embedaddon/php/ext/mysqli/tests/mysqli_driver.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mysqli_driver class
! 3: --SKIPIF--
! 4: <?php
! 5: require_once('skipif.inc');
! 6: require_once('skipifemb.inc');
! 7: require_once('skipifconnectfailure.inc');
! 8: ?>
! 9: --FILE--
! 10: <?php
! 11: require("table.inc");
! 12:
! 13: if (!is_object($driver = new mysqli_driver()))
! 14: printf("[001] Failed to create mysqli_driver object\n");
! 15:
! 16: $client_info = mysqli_get_client_info();
! 17: if (($tmp = $driver->client_info) !== $client_info)
! 18: printf("[002] Expecting %s/%s, got %s/%s\n",
! 19: gettype($client_info), $client_info,
! 20: gettype($tmp), $tmp);
! 21:
! 22: $client_version = mysqli_get_client_version();
! 23: if (($tmp = $driver->client_version) !== $client_version)
! 24: printf("[003] Expecting %s/%s, got %s/%s\n",
! 25: gettype($client_version), $client_version,
! 26: gettype($tmp), $tmp);
! 27:
! 28: if (!is_int($tmp = $driver->driver_version) || (0 == $tmp))
! 29: printf("[004] Expecting int/any, got %s/%s\n",
! 30: gettype($tmp), $tmp);
! 31:
! 32:
! 33: $all_modes = array(MYSQLI_REPORT_INDEX, MYSQLI_REPORT_ERROR, MYSQLI_REPORT_STRICT,
! 34: MYSQLI_REPORT_ALL, MYSQLI_REPORT_OFF);
! 35: $report_mode = $driver->report_mode;
! 36: if (!is_int($report_mode))
! 37: printf("[005] Expecting int/any, got %s/%s\n",
! 38: gettype($report_mode), $report_mode);
! 39:
! 40: if (!in_array($report_mode, $all_modes))
! 41: printf("[006] Illegal report mode returned? Got %s, expected %s\n",
! 42: $report_mode, implode(', ', $all_modes));
! 43:
! 44: $driver->report_mode = MYSQLI_REPORT_STRICT;
! 45: $ok = false;
! 46: try {
! 47:
! 48: if ($link = my_mysqli_connect($host, $user . 'unknown_really', $passwd . 'non_empty', $db, $port, $socket))
! 49: printf("[007] Can connect to the server using host=%s, user=%s, passwd=***non_empty, dbname=%s, port=%s, socket=%s\n",
! 50: $host, $user . 'unknown_really', $db, $port, $socket);
! 51: mysqli_close($link);
! 52:
! 53: } catch (mysqli_sql_exception $e) {
! 54: $ok = true;
! 55: if ('' == $e->getMessage())
! 56: printf("[008] getMessage() has returned an emptry string.\n");
! 57: if ('' == $e->getCode())
! 58: printf("[009] getCode() has returned an empty string.\n");
! 59: if ('' == $e->getFile())
! 60: printf("[010] getFile() has returned an empty string.\n");
! 61: if ('' == $e->getLine())
! 62: printf("[011] getLine() has returned an empty string.\n");
! 63: $tmp = $e->getTrace();
! 64: if (empty($tmp))
! 65: printf("[012] getTrace() has returned an empty array.\n");
! 66: if ('' == $e->getTraceAsString())
! 67: printf("[013] getTraceAsString() has returned an empty string.\n");
! 68: if ('' == $e->__toString())
! 69: printf("[014] __toString() has returned an empty string.\n");
! 70:
! 71: }
! 72: if (!$ok)
! 73: printf("[015] Error reporting mode has not been switched to exceptions and or no exception thrown\n");
! 74:
! 75:
! 76: $driver->report_mode = MYSQLI_REPORT_OFF;
! 77: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
! 78: printf("[016] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
! 79: mysqli_query($link, "NO_SQL");
! 80: mysqli_close($link);
! 81:
! 82: $driver->report_mode = MYSQLI_REPORT_ERROR;
! 83:
! 84: if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
! 85: printf("[017] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
! 86: mysqli_query($link, "NO_SQL");
! 87: mysqli_close($link);
! 88:
! 89: if (MYSQLI_REPORT_ERROR !== $driver->report_mode)
! 90: printf("[018] Error mode should be different\n");
! 91:
! 92: /* TODO - more report testing should go in here, but it's not really documented what behaviour is expected */
! 93:
! 94: $driver->report_mode = $report_mode;
! 95:
! 96: $reconnect = $driver->reconnect;
! 97: if (!is_bool($reconnect))
! 98: printf("[019] Expecting boolean/any, got %s/%s\n",
! 99: gettype($reconnect), $reconnect);
! 100:
! 101: /* pointless, but I need more documentation */
! 102: $driver->reconnect = true;
! 103: $driver->reconnect = false;
! 104: $driver->reconnect = $reconnect;
! 105:
! 106: if (!is_bool($embedded = $driver->embedded))
! 107: printf("[020] Expecting boolean/any, got %s/%s\n",
! 108: gettype($embedded), $embedded);
! 109:
! 110: print "done!";
! 111: ?>
! 112: --EXPECTF--
! 113: Warning: mysqli_query(): (%d/%d): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NO_SQL' at line 1 in %s on line %d
! 114: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>