mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-08-11 20:30:23 +00:00
Add more test coverage for wpdb.
See #26999. git-svn-id: https://develop.svn.wordpress.org/trunk@28635 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -226,4 +226,115 @@ class Tests_DB extends WP_UnitTestCase {
|
||||
$prepared = $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE id = $id", $id );
|
||||
$this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 0", $prepared );
|
||||
}
|
||||
|
||||
function test_db_version() {
|
||||
global $wpdb;
|
||||
|
||||
$this->assertTrue( version_compare( $wpdb->db_version(), '5.0', '>=' ) );
|
||||
}
|
||||
|
||||
function test_get_caller() {
|
||||
global $wpdb;
|
||||
$str = $wpdb->get_caller();
|
||||
$calls = explode( ', ', $str );
|
||||
$called = join( '->', array( __CLASS__, __FUNCTION__ ) );
|
||||
$this->assertEquals( $called, end( $calls ) );
|
||||
}
|
||||
|
||||
function test_has_cap() {
|
||||
global $wpdb;
|
||||
$this->assertTrue( $wpdb->has_cap( 'collation' ) );
|
||||
$this->assertTrue( $wpdb->has_cap( 'group_concat' ) );
|
||||
$this->assertTrue( $wpdb->has_cap( 'subqueries' ) );
|
||||
$this->assertTrue( $wpdb->has_cap( 'COLLATION' ) );
|
||||
$this->assertTrue( $wpdb->has_cap( 'GROUP_CONCAT' ) );
|
||||
$this->assertTrue( $wpdb->has_cap( 'SUBQUERIES' ) );
|
||||
$this->assertEquals(
|
||||
version_compare( $wpdb->db_version(), '5.0.7', '>=' ),
|
||||
$wpdb->has_cap( 'set_charset' )
|
||||
);
|
||||
$this->assertEquals(
|
||||
version_compare( $wpdb->db_version(), '5.0.7', '>=' ),
|
||||
$wpdb->has_cap( 'SET_CHARSET' )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedDeprecated supports_collation
|
||||
*/
|
||||
function test_supports_collation() {
|
||||
global $wpdb;
|
||||
$this->assertTrue( $wpdb->supports_collation() );
|
||||
}
|
||||
|
||||
function test_check_database_version() {
|
||||
global $wpdb;
|
||||
$this->assertEmpty( $wpdb->check_database_version() );
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException WPDieException
|
||||
*/
|
||||
function test_bail() {
|
||||
global $wpdb;
|
||||
$wpdb->bail( 'Database is dead.' );
|
||||
}
|
||||
|
||||
function test_timers() {
|
||||
global $wpdb;
|
||||
|
||||
$wpdb->timer_start();
|
||||
usleep( 5 );
|
||||
$stop = $wpdb->timer_stop();
|
||||
|
||||
$this->assertNotEquals( $wpdb->time_start, $stop );
|
||||
$this->assertGreaterThan( $stop, $wpdb->time_start );
|
||||
}
|
||||
|
||||
function test_get_col_info() {
|
||||
global $wpdb;
|
||||
|
||||
$wpdb->get_results( "SELECT ID FROM $wpdb->users" );
|
||||
|
||||
$this->assertEquals( array( 'ID' ), $wpdb->get_col_info() );
|
||||
$this->assertEquals( array( $wpdb->users ), $wpdb->get_col_info( 'table' ) );
|
||||
$this->assertEquals( $wpdb->users, $wpdb->get_col_info( 'table', 0 ) );
|
||||
}
|
||||
|
||||
function test_query_and_delete() {
|
||||
global $wpdb;
|
||||
$rows = $wpdb->query( "INSERT INTO $wpdb->users (display_name) VALUES ('Walter Sobchak')" );
|
||||
$this->assertEquals( 1, $rows );
|
||||
$this->assertNotEmpty( $wpdb->insert_id );
|
||||
$d_rows = $wpdb->delete( $wpdb->users, array( 'ID' => $wpdb->insert_id ) );
|
||||
$this->assertEquals( 1, $d_rows );
|
||||
}
|
||||
|
||||
function test_get_row() {
|
||||
global $wpdb;
|
||||
$rows = $wpdb->query( "INSERT INTO $wpdb->users (display_name) VALUES ('Walter Sobchak')" );
|
||||
$this->assertEquals( 1, $rows );
|
||||
$this->assertNotEmpty( $wpdb->insert_id );
|
||||
|
||||
$row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE ID = %d", $wpdb->insert_id ) );
|
||||
$this->assertInternalType( 'object', $row );
|
||||
$this->assertEquals( 'Walter Sobchak', $row->display_name );
|
||||
}
|
||||
|
||||
function test_replace() {
|
||||
global $wpdb;
|
||||
$rows1 = $wpdb->insert( $wpdb->users, array( 'display_name' => 'Walter Sobchak' ) );
|
||||
$this->assertEquals( 1, $rows1 );
|
||||
$this->assertNotEmpty( $wpdb->insert_id );
|
||||
$last = $wpdb->insert_id;
|
||||
|
||||
$rows2 = $wpdb->replace( $wpdb->users, array( 'ID' => $last, 'display_name' => 'Walter Replace Sobchak' ) );
|
||||
$this->assertEquals( 2, $rows2 );
|
||||
$this->assertNotEmpty( $wpdb->insert_id );
|
||||
|
||||
$this->assertEquals( $last, $wpdb->insert_id );
|
||||
|
||||
$row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE ID = %d", $last ) );
|
||||
$this->assertEquals( 'Walter Replace Sobchak', $row->display_name );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user