Make WordPress Core

Changeset 28635


Ignore:
Timestamp:
05/30/2014 07:17:15 PM (12 years ago)
Author:
wonderboymusic
Message:

Add more test coverage for wpdb.

See #26999.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/db.php

    r27250 r28635  
    227227                $this->assertEquals( "SELECT * FROM $wpdb->users WHERE id = 0", $prepared );
    228228        }
     229
     230        function test_db_version() {
     231                global $wpdb;
     232
     233                $this->assertTrue( version_compare( $wpdb->db_version(), '5.0', '>=' ) );
     234        }
     235
     236        function test_get_caller() {
     237                global $wpdb;
     238                $str = $wpdb->get_caller();
     239                $calls = explode( ', ', $str );
     240                $called = join( '->', array( __CLASS__, __FUNCTION__ ) );
     241                $this->assertEquals( $called, end( $calls ) );
     242        }
     243
     244        function test_has_cap() {
     245                global $wpdb;
     246                $this->assertTrue( $wpdb->has_cap( 'collation' ) );
     247                $this->assertTrue( $wpdb->has_cap( 'group_concat' ) );
     248                $this->assertTrue( $wpdb->has_cap( 'subqueries' ) );
     249                $this->assertTrue( $wpdb->has_cap( 'COLLATION' ) );
     250                $this->assertTrue( $wpdb->has_cap( 'GROUP_CONCAT' ) );
     251                $this->assertTrue( $wpdb->has_cap( 'SUBQUERIES' ) );
     252                $this->assertEquals(
     253                        version_compare( $wpdb->db_version(), '5.0.7', '>=' ),
     254                        $wpdb->has_cap( 'set_charset' )
     255                );
     256                $this->assertEquals(
     257                        version_compare( $wpdb->db_version(), '5.0.7', '>=' ),
     258                        $wpdb->has_cap( 'SET_CHARSET' )
     259                );
     260        }
     261
     262        /**
     263         * @expectedDeprecated supports_collation
     264         */
     265        function test_supports_collation() {
     266                global $wpdb;
     267                $this->assertTrue( $wpdb->supports_collation() );
     268        }
     269
     270        function test_check_database_version() {
     271                global $wpdb;
     272                $this->assertEmpty( $wpdb->check_database_version() );
     273        }
     274
     275        /**
     276         * @expectedException WPDieException
     277         */
     278        function test_bail() {
     279                global $wpdb;
     280                $wpdb->bail( 'Database is dead.' );
     281        }
     282
     283        function test_timers() {
     284                global $wpdb;
     285
     286                $wpdb->timer_start();
     287                usleep( 5 );
     288                $stop = $wpdb->timer_stop();
     289
     290                $this->assertNotEquals( $wpdb->time_start, $stop );
     291                $this->assertGreaterThan( $stop, $wpdb->time_start );
     292        }
     293
     294        function test_get_col_info() {
     295                global $wpdb;
     296
     297                $wpdb->get_results( "SELECT ID FROM $wpdb->users" );
     298
     299                $this->assertEquals( array( 'ID' ), $wpdb->get_col_info() );
     300                $this->assertEquals( array( $wpdb->users ), $wpdb->get_col_info( 'table' ) );
     301                $this->assertEquals( $wpdb->users, $wpdb->get_col_info( 'table', 0 ) );
     302        }
     303
     304        function test_query_and_delete() {
     305                global $wpdb;
     306                $rows = $wpdb->query( "INSERT INTO $wpdb->users (display_name) VALUES ('Walter Sobchak')" );
     307                $this->assertEquals( 1, $rows );
     308                $this->assertNotEmpty( $wpdb->insert_id );
     309                $d_rows = $wpdb->delete( $wpdb->users, array( 'ID' => $wpdb->insert_id ) );
     310                $this->assertEquals( 1, $d_rows );
     311        }
     312
     313        function test_get_row() {
     314                global $wpdb;
     315                $rows = $wpdb->query( "INSERT INTO $wpdb->users (display_name) VALUES ('Walter Sobchak')" );
     316                $this->assertEquals( 1, $rows );
     317                $this->assertNotEmpty( $wpdb->insert_id );
     318
     319                $row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE ID = %d", $wpdb->insert_id ) );
     320                $this->assertInternalType( 'object', $row );
     321                $this->assertEquals( 'Walter Sobchak', $row->display_name );
     322        }
     323
     324        function test_replace() {
     325                global $wpdb;
     326                $rows1 = $wpdb->insert( $wpdb->users, array( 'display_name' => 'Walter Sobchak' ) );
     327                $this->assertEquals( 1, $rows1 );
     328                $this->assertNotEmpty( $wpdb->insert_id );
     329                $last = $wpdb->insert_id;
     330
     331                $rows2 = $wpdb->replace( $wpdb->users, array( 'ID' => $last, 'display_name' => 'Walter Replace Sobchak' ) );
     332                $this->assertEquals( 2, $rows2 );
     333                $this->assertNotEmpty( $wpdb->insert_id );
     334
     335                $this->assertEquals( $last, $wpdb->insert_id );
     336
     337                $row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->users WHERE ID = %d", $last ) );
     338                $this->assertEquals( 'Walter Replace Sobchak', $row->display_name );
     339        }
    229340}
Note: See TracChangeset for help on using the changeset viewer.