Annotation of embedaddon/php/ext/mysqli/tests/mysqli_driver.phpt, revision 1.1.1.2

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())
1.1.1.2 ! misho      56:                        printf("[008] getMessage() has returned an empty string.\n");
1.1       misho      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>