Annotation of embedaddon/php/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Interface of the class mysqli_driver
                      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('connect.inc');
                     12:        require('table.inc');
                     13: 
                     14:        $driver = new mysqli_driver();
                     15: 
                     16:        printf("Parent class:\n");
                     17:        var_dump(get_parent_class($driver));
                     18: 
                     19:        printf("\nMethods:\n");
                     20:        $methods = get_class_methods($driver);
                     21:        $expected_methods = array();
                     22: 
                     23:        if (!$IS_MYSQLND && (isset($methods['embedded_server_start']))) {
                     24:                /* libmysql only - needs extra compile flag, no way to check properly in the
                     25:                PHP user land if its compiled in or not */
                     26:                $expected_methods = array_merge($expected_methods, array(
                     27:                                'embedded_server_start'         => true,
                     28:                                'embedded_server_end'           => true,
                     29:                ));
                     30:        }
                     31: 
                     32:        foreach ($methods as $k => $method) {
                     33:                if (isset($expected_methods[$method])) {
                     34:                        unset($expected_methods[$method]);
                     35:                        unset($methods[$k]);
                     36:                }
                     37:        }
                     38:        if (!empty($expected_methods)) {
                     39:                printf("Dumping list of missing methods.\n");
                     40:                var_dump($expected_methods);
                     41:        }
                     42:        if (!empty($methods)) {
                     43:                printf("Dumping list of unexpected methods.\n");
                     44:                var_dump($methods);
                     45:        }
                     46:        if (empty($expected_methods) && empty($methods))
                     47:                printf("ok\n");
                     48: 
                     49:        printf("\nClass variables:\n");
                     50:        $variables = array_keys(get_class_vars(get_class($driver)));
                     51:        sort($variables);
                     52:        foreach ($variables as $k => $var)
                     53:                printf("%s\n", $var);
                     54: 
                     55:        printf("\nObject variables:\n");
                     56:        $variables = array_keys(get_object_vars($driver));
                     57:        foreach ($variables as $k => $var)
                     58:                printf("%s\n", $var);
                     59: 
                     60:        printf("\nMagic, magic properties:\n");
                     61: 
                     62:        assert(mysqli_get_client_info() === $driver->client_info);
                     63:        printf("driver->client_info = '%s'\n", $driver->client_info);
                     64: 
                     65:        assert(mysqli_get_client_version() === $driver->client_version);
                     66:        printf("driver->client_version = '%s'\n", $driver->client_version);
                     67: 
                     68:        assert($driver->driver_version > 0);
                     69:        printf("driver->driver_version = '%s'\n", $driver->driver_version);
                     70: 
                     71:        assert(in_array($driver->report_mode,
                     72:                                array(
                     73:                                        MYSQLI_REPORT_ALL,
                     74:                                        MYSQLI_REPORT_STRICT,
                     75:                                        MYSQLI_REPORT_ERROR,
                     76:                                        MYSQLI_REPORT_INDEX,
                     77:                                        MYSQLI_REPORT_OFF
                     78:                                )
                     79:        ));
                     80: 
                     81:        printf("driver->report_mode = '%s'\n", $driver->report_mode);
                     82:        $driver->report_mode = MYSQLI_REPORT_STRICT;
                     83:        assert($driver->report_mode === MYSQLI_REPORT_STRICT);
                     84: 
                     85:        assert(is_bool($driver->embedded));
                     86:        printf("driver->embedded = '%s'\n", $driver->embedded);
                     87: 
                     88:        printf("driver->reconnect = '%s'\n", $driver->reconnect);
                     89: 
                     90:        printf("\nAccess to undefined properties:\n");
                     91:        printf("driver->unknown = '%s'\n", @$driver->unknown);
                     92: 
                     93:        print "done!";
                     94: ?>
                     95: --EXPECTF--
                     96: Parent class:
                     97: bool(false)
                     98: 
                     99: Methods:
                    100: ok
                    101: 
                    102: Class variables:
                    103: client_info
                    104: client_version
                    105: driver_version
                    106: embedded
                    107: reconnect
                    108: report_mode
                    109: 
                    110: Object variables:
                    111: client_info
                    112: client_version
                    113: driver_version
                    114: embedded
                    115: reconnect
                    116: report_mode
                    117: 
                    118: Magic, magic properties:
                    119: driver->client_info = '%s'
                    120: driver->client_version = '%d'
                    121: driver->driver_version = '%d'
                    122: driver->report_mode = '%d'
                    123: driver->embedded = ''
                    124: driver->reconnect = ''
                    125: 
                    126: Access to undefined properties:
                    127: driver->unknown = ''
                    128: done!

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>