Annotation of embedaddon/php/ext/mysqli/tests/mysqli_class_mysqli_driver_interface.phpt, revision 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>