From 64bb53fe25f8468cf6a18b102290edb3ce084ac7 Mon Sep 17 00:00:00 2001 From: Ulf Wendel Date: Mon, 1 Feb 2010 12:18:50 +0000 Subject: [PATCH] Tests related to #50727 --- ...ysqli_class_mysqli_properties_no_conn.phpt | 282 ++++++++++++++++++ 1 file changed, 282 insertions(+) create mode 100644 ext/mysqli/tests/mysqli_class_mysqli_properties_no_conn.phpt diff --git a/ext/mysqli/tests/mysqli_class_mysqli_properties_no_conn.phpt b/ext/mysqli/tests/mysqli_class_mysqli_properties_no_conn.phpt new file mode 100644 index 0000000000..d0940a7561 --- /dev/null +++ b/ext/mysqli/tests/mysqli_class_mysqli_properties_no_conn.phpt @@ -0,0 +1,282 @@ +--TEST-- +Interface of the class mysqli +--SKIPIF-- + +--FILE-- + $var) { + printf("%s = '%s'\n", $var, var_export(@$mysqli->$var, true)); + } + + printf("\nObject variables:\n"); + $variables = array_keys(get_object_vars($mysqli)); + foreach ($variables as $k => $var) { + printf("%s = '%s'\n", $var, var_export(@$mysqli->$var, true)); + } + + printf("\nMagic, magic properties:\n"); + + assert(@mysqli_affected_rows($mysqli) === @$mysqli->affected_rows); + printf("mysqli->affected_rows = '%s'/%s ('%s'/%s)\n", + @$mysqli->affected_rows, gettype(@$mysqli->affected_rows), + @mysqli_affected_rows($mysqli), gettype(@mysqli_affected_rows($mysqli))); + + assert(@mysqli_get_client_info() === @$mysqli->client_info); + printf("mysqli->client_info = '%s'/%s ('%s'/%s)\n", + @$mysqli->client_info, gettype(@$mysqli->client_info), + @mysqli_get_client_info(), gettype(@mysqli_get_client_info())); + + assert(@mysqli_get_client_version() === @$mysqli->client_version); + printf("mysqli->client_version = '%s'/%s ('%s'/%s)\n", + @$mysqli->client_version, gettype(@$mysqli->client_version), + @mysqli_get_client_version(), gettype(@mysqli_get_client_version())); + + assert(@mysqli_errno($mysqli) === @$mysqli->errno); + printf("mysqli->errno = '%s'/%s ('%s'/%s)\n", + @$mysqli->errno, gettype(@$mysqli->errno), + + @mysqli_errno($mysqli), gettype(@mysqli_errno($mysqli))); + + assert(@mysqli_error($mysqli) === @$mysqli->error); + printf("mysqli->error = '%s'/%s ('%s'/%s)\n", + @$mysqli->error, gettype(@$mysqli->error), + @mysqli_error($mysqli), gettype(@mysqli_error($mysqli))); + + assert(@mysqli_field_count($mysqli) === @$mysqli->field_count); + printf("mysqli->field_count = '%s'/%s ('%s'/%s)\n", + @$mysqli->field_count, gettype(@$mysqli->field_count), + @mysqli_field_count($mysqli), gettype(@mysqli_field_count($mysqli))); + + assert(@mysqli_insert_id($mysqli) === @$mysqli->insert_id); + printf("mysqli->insert_id = '%s'/%s ('%s'/%s)\n", + @$mysqli->insert_id, gettype(@$mysqli->insert_id), + @mysqli_insert_id($mysqli), gettype(@mysqli_insert_id($mysqli))); + + assert(@mysqli_sqlstate($mysqli) === @$mysqli->sqlstate); + printf("mysqli->sqlstate = '%s'/%s ('%s'/%s)\n", + @$mysqli->sqlstate, gettype(@$mysqli->sqlstate), + @mysqli_sqlstate($mysqli), gettype(@mysqli_sqlstate($mysqli))); + + assert(@mysqli_get_host_info($mysqli) === @$mysqli->host_info); + printf("mysqli->host_info = '%s'/%s ('%s'/%s)\n", + @$mysqli->host_info, gettype(@$mysqli->host_info), + @mysqli_get_host_info($mysqli), gettype(@mysqli_get_host_info($mysqli))); + + /* note that the data types are different */ + assert(@mysqli_info($mysqli) == @$mysqli->info); + printf("mysqli->info = '%s'/%s ('%s'/%s)\n", + @$mysqli->info, gettype(@$mysqli->info), + @mysqli_info($mysqli), gettype(@mysqli_info($mysqli))); + + assert(@mysqli_thread_id($mysqli) > @$mysqli->thread_id); + assert(gettype(@$mysqli->thread_id) == gettype(@mysqli_thread_id($mysqli))); + printf("mysqli->thread_id = '%s'/%s ('%s'/%s)\n", + @$mysqli->thread_id, gettype(@$mysqli->thread_id), + @mysqli_thread_id($mysqli), gettype(@mysqli_thread_id($mysqli))); + + assert(@mysqli_get_proto_info($mysqli) === @$mysqli->protocol_version); + printf("mysqli->protocol_version = '%s'/%s ('%s'/%s)\n", + @$mysqli->protocol_version, gettype(@$mysqli->protocol_version), + @mysqli_get_proto_info($mysqli), gettype(@mysqli_get_proto_info($mysqli))); + + assert(@mysqli_get_server_info($mysqli) === @$mysqli->server_info); + printf("mysqli->server_info = '%s'/%s ('%s'/%s)\n", + @$mysqli->server_info, gettype(@$mysqli->server_info), + @mysqli_get_server_info($mysqli), gettype(@mysqli_get_server_info($mysqli))); + + assert(@mysqli_get_server_version($mysqli) === @$mysqli->server_version); + printf("mysqli->server_version = '%s'/%s ('%s'/%s)\n", + @$mysqli->server_version, gettype(@$mysqli->server_version), + @mysqli_get_server_version($mysqli), gettype(@mysqli_get_server_version($mysqli))); + + assert(@mysqli_warning_count($mysqli) === @$mysqli->warning_count); + printf("mysqli->warning_count = '%s'/%s ('%s'/%s)\n", + @$mysqli->warning_count, gettype(@$mysqli->warning_count), + @mysqli_warning_count($mysqli), gettype(@mysqli_warning_count($mysqli))); + + printf("\nAccess to undefined properties:\n"); + printf("mysqli->unknown = '%s'\n", @$mysqli->unknown); + + @$mysqli->unknown = 13; + printf("setting mysqli->unknown, @mysqli_unknown = '%s'\n", @$mysqli->unknown); + + $unknown = 'friday'; + @$mysqli->unknown = $unknown; + printf("setting mysqli->unknown, @mysqli_unknown = '%s'\n", @$mysqli->unknown); + + printf("\nAccess hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation):\n"); + assert(@mysqli_connect_error() === @$mysqli->connect_error); + printf("mysqli->connect_error = '%s'/%s ('%s'/%s)\n", + @$mysqli->connect_error, gettype(@$mysqli->connect_error), + @mysqli_connect_error(), gettype(@mysqli_connect_error())); + + assert(@mysqli_connect_errno() === @$mysqli->connect_errno); + printf("mysqli->connect_errno = '%s'/%s ('%s'/%s)\n", + @$mysqli->connect_errno, gettype(@$mysqli->connect_errno), + @mysqli_connect_errno(), gettype(@mysqli_connect_errno())); + } + + printf("Without RS\n"); + $mysqli = @new mysqli($host, $user, $passwd . "invalid", $db, $port, $socket); + dump_properties($mysqli); + + printf("With RS\n"); + $mysqli = @new mysqli($host, $user, $passwd . "invalid", $db, $port, $socket); + $res = @$mysqli->query("SELECT * FROM test"); + dump_properties($mysqli); + + print "done!"; +?> +--CLEAN-- + +--EXPECTF-- +Without RS + +Class variables: +affected_rows = 'NULL' +client_info = 'NULL' +client_version = '%s' +connect_errno = '%s' +connect_error = ''%s' +errno = 'NULL' +error = 'NULL' +field_count = 'NULL' +host_info = 'NULL' +info = 'NULL' +insert_id = 'NULL' +protocol_version = 'NULL' +server_info = 'NULL' +server_version = 'NULL' +sqlstate = 'NULL' +thread_id = 'NULL' +warning_count = 'NULL' + +Object variables: +affected_rows = 'NULL' +client_info = 'NULL' +client_version = '%s' +connect_errno = '%s' +connect_error = '%s' +errno = 'NULL' +error = 'NULL' +field_count = 'NULL' +host_info = 'NULL' +info = 'NULL' +insert_id = 'NULL' +server_info = 'NULL' +server_version = 'NULL' +sqlstate = 'NULL' +protocol_version = 'NULL' +thread_id = 'NULL' +warning_count = 'NULL' + +Magic, magic properties: +mysqli->affected_rows = ''/NULL (''/NULL) + +Warning: assert(): Assertion failed in %s on line %d +mysqli->client_info = ''/NULL ('%s'/%s) +mysqli->client_version = '%s'/integer ('%s'/integer) +mysqli->errno = ''/NULL (''/NULL) +mysqli->error = ''/NULL (''/NULL) +mysqli->field_count = ''/NULL (''/NULL) +mysqli->insert_id = ''/NULL (''/NULL) +mysqli->sqlstate = ''/NULL (''/NULL) +mysqli->host_info = ''/NULL (''/NULL) +mysqli->info = ''/NULL (''/NULL) + +Warning: assert(): Assertion failed in %s on line %d +mysqli->thread_id = ''/NULL (''/NULL) +mysqli->protocol_version = ''/NULL (''/NULL) +mysqli->server_info = ''/NULL (''/NULL) +mysqli->server_version = ''/NULL (''/NULL) +mysqli->warning_count = ''/NULL (''/NULL) + +Access to undefined properties: +mysqli->unknown = '' +setting mysqli->unknown, @mysqli_unknown = '13' +setting mysqli->unknown, @mysqli_unknown = 'friday' + +Access hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation): +mysqli->connect_error = '%s'/%s) +mysqli->connect_errno = '%s'/integer ('%s'/integer) +With RS + +Class variables: +affected_rows = 'NULL' +client_info = 'NULL' +client_version = '%s' +connect_errno = '%s' +connect_error = '%s' +errno = 'NULL' +error = 'NULL' +field_count = 'NULL' +host_info = 'NULL' +info = 'NULL' +insert_id = 'NULL' +protocol_version = 'NULL' +server_info = 'NULL' +server_version = 'NULL' +sqlstate = 'NULL' +thread_id = 'NULL' +warning_count = 'NULL' + +Object variables: +affected_rows = 'NULL' +client_info = 'NULL' +client_version = '%s' +connect_errno = '%s' +connect_error = '%s' +errno = 'NULL' +error = 'NULL' +field_count = 'NULL' +host_info = 'NULL' +info = 'NULL' +insert_id = 'NULL' +server_info = 'NULL' +server_version = 'NULL' +sqlstate = 'NULL' +protocol_version = 'NULL' +thread_id = 'NULL' +warning_count = 'NULL' + +Magic, magic properties: +mysqli->affected_rows = ''/NULL (''/NULL) + +Warning: assert(): Assertion failed in %s on line %d +mysqli->client_info = ''/NULL ('%s'/%s) +mysqli->client_version = '%s'/integer ('%s'/integer) +mysqli->errno = ''/NULL (''/NULL) +mysqli->error = ''/NULL (''/NULL) +mysqli->field_count = ''/NULL (''/NULL) +mysqli->insert_id = ''/NULL (''/NULL) +mysqli->sqlstate = ''/NULL (''/NULL) +mysqli->host_info = ''/NULL (''/NULL) +mysqli->info = ''/NULL (''/NULL) + +Warning: assert(): Assertion failed in %s on line %d +mysqli->thread_id = ''/NULL (''/NULL) +mysqli->protocol_version = ''/NULL (''/NULL) +mysqli->server_info = ''/NULL (''/NULL) +mysqli->server_version = ''/NULL (''/NULL) +mysqli->warning_count = ''/NULL (''/NULL) + +Access to undefined properties: +mysqli->unknown = '' +setting mysqli->unknown, @mysqli_unknown = '13' +setting mysqli->unknown, @mysqli_unknown = 'friday' + +Access hidden properties for MYSLQI_STATUS_INITIALIZED (TODO documentation): +mysqli->connect_error = '%s'/%s) +mysqli->connect_errno = '%s'/integer ('%s'/integer) +done! \ No newline at end of file -- 2.40.0