Make WordPress Core

Ticket #49367: 49367.diff

File 49367.diff, 11.2 KB (added by xkon, 6 years ago)
  • tests/phpunit/tests/dbdelta.php

    diff --git a/tests/phpunit/tests/dbdelta.php b/tests/phpunit/tests/dbdelta.php
    index 208979e9b3..e4ea4d1b66 100644
    a b class Tests_dbDelta extends WP_UnitTestCase { 
    3333        }
    3434
    3535        /**
    36          * Create a custom table to be used in each test.
     36         * Force MyISAM, because InnoDB only started supporting FULLTEXT indexes in MySQL 5.7.
     37         *
     38         * @ticket 49367
     39         *
     40         * @return string $db_engine ENGINE=MyISAM if we need to force the engine due to MySQL version.
    3741         */
    38         public function setUp() {
    39 
     42        public static function force_myisam_engine() {
    4043                global $wpdb;
    4144
    4245                $db_version = $wpdb->db_version();
    4346                $db_engine  = '';
    4447
    4548                if ( version_compare( $db_version, '5.7', '<' ) ) {
    46                         // Forcing MyISAM, because InnoDB only started supporting FULLTEXT indexes in MySQL 5.7.
    4749                        $db_engine = 'ENGINE=MyISAM';
    4850                }
    4951
     52                return $db_engine;
     53        }
     54
     55        /**
     56         * Create a custom table to be used in each test.
     57         */
     58        public function setUp() {
     59                global $wpdb;
     60
     61                $db_version = $wpdb->db_version();
     62                $db_engine  = self::force_myisam_engine();
     63
    5064                if ( version_compare( $db_version, '8.0.17', '<' ) ) {
    5165                        // Prior to MySQL 8.0.17, default width of 20 digits was used: BIGINT(20).
    5266                        $this->bigint_display_width = '(20)';
    class Tests_dbDelta extends WP_UnitTestCase { 
    439453        function test_dont_downsize_text_fields() {
    440454                global $wpdb;
    441455
     456                $db_engine  = self::force_myisam_engine();
     457
    442458                $result = dbDelta(
    443459                        "
    444460                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    450466                                KEY key_1 (column_1({$this->max_index_length})),
    451467                                KEY compound_key (id,column_1($this->max_index_length)),
    452468                                FULLTEXT KEY fulltext_key (column_1)
    453                         ) ENGINE=MyISAM
     469                        ) {$db_engine}
    454470                        ",
    455471                        false
    456472                );
    class Tests_dbDelta extends WP_UnitTestCase { 
    464480        function test_dont_downsize_blob_fields() {
    465481                global $wpdb;
    466482
     483                $db_engine  = self::force_myisam_engine();
     484
    467485                $result = dbDelta(
    468486                        "
    469487                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    475493                                KEY key_1 (column_1({$this->max_index_length})),
    476494                                KEY compound_key (id,column_1($this->max_index_length)),
    477495                                FULLTEXT KEY fulltext_key (column_1)
    478                         ) ENGINE=MyISAM
     496                        ) {$db_engine}
    479497                        ",
    480498                        false
    481499                );
    class Tests_dbDelta extends WP_UnitTestCase { 
    489507        function test_upsize_text_fields() {
    490508                global $wpdb;
    491509
     510                $db_engine  = self::force_myisam_engine();
     511
    492512                $result = dbDelta(
    493513                        "
    494514                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    500520                                KEY key_1 (column_1({$this->max_index_length})),
    501521                                KEY compound_key (id,column_1($this->max_index_length)),
    502522                                FULLTEXT KEY fulltext_key (column_1)
    503                         ) ENGINE=MyISAM
     523                        ) {$db_engine}
    504524                        ",
    505525                        false
    506526                );
    class Tests_dbDelta extends WP_UnitTestCase { 
    520540        function test_upsize_blob_fields() {
    521541                global $wpdb;
    522542
     543                $db_engine  = self::force_myisam_engine();
     544
    523545                $result = dbDelta(
    524546                        "
    525547                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    531553                                KEY key_1 (column_1({$this->max_index_length})),
    532554                                KEY compound_key (id,column_1($this->max_index_length)),
    533555                                FULLTEXT KEY fulltext_key (column_1)
    534                         ) ENGINE=MyISAM
     556                        ) {$db_engine}
    535557                        ",
    536558                        false
    537559                );
    class Tests_dbDelta extends WP_UnitTestCase { 
    577599                global $wpdb;
    578600
    579601                $db_version = $wpdb->db_version();
     602                $db_engine  = self::force_myisam_engine();
    580603
    581604                if ( version_compare( $db_version, '5.4', '<' ) ) {
    582605                        $this->markTestSkipped( 'Spatial indices require MySQL 5.4 and above.' );
    class Tests_dbDelta extends WP_UnitTestCase { 
    596619                                spatial_value {$geomcollection_name} NOT NULL,
    597620                                KEY non_spatial (non_spatial),
    598621                                SPATIAL KEY spatial_key (spatial_value)
    599                         ) ENGINE=MyISAM;
     622                        ) {$db_engine};
    600623                        ";
    601624
    602625                // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
    class Tests_dbDelta extends WP_UnitTestCase { 
    615638                                KEY non_spatial (non_spatial),
    616639                                SPATIAL KEY spatial_key (spatial_value)
    617640                                SPATIAL KEY spatial_key2 (spatial_value2)
    618                         ) ENGINE=MyISAM;
     641                        ) {$db_engine};
    619642                        ";
    620643
    621644                $updates = dbDelta( $schema, false );
    class Tests_dbDelta extends WP_UnitTestCase { 
    666689        function test_index_with_a_reserved_keyword_can_be_created() {
    667690                global $wpdb;
    668691
     692                $db_engine = self::force_myisam_engine();
     693
    669694                $updates = dbDelta(
    670695                        "
    671696                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    679704                                KEY compound_key (id , column_1($this->max_index_length)),
    680705                                KEY compound_key2 (id,`references`($this->max_index_length)),
    681706                                FULLTEXT KEY fulltext_key (column_1)
    682                         ) ENGINE=MyISAM
     707                        ) {$db_engine}
    683708                        "
    684709                );
    685710
    class Tests_dbDelta extends WP_UnitTestCase { 
    711736        function test_key_and_index_and_fulltext_key_and_fulltext_index_and_unique_key_and_unique_index_indicies() {
    712737                global $wpdb;
    713738
     739                $db_engine = self::force_myisam_engine();
     740
    714741                $schema = "
    715742                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    716743                                id bigint{$this->bigint_display_width} NOT NULL AUTO_INCREMENT,
    class Tests_dbDelta extends WP_UnitTestCase { 
    725752                                UNIQUE KEY key_3 (column_1($this->max_index_length)),
    726753                                UNIQUE INDEX key_4 (column_1($this->max_index_length)),
    727754                                FULLTEXT INDEX key_5 (column_1),
    728                         ) ENGINE=MyISAM
     755                        ) {$db_engine}
    729756                ";
    730757
    731758                $creates = dbDelta( $schema );
    class Tests_dbDelta extends WP_UnitTestCase { 
    749776        function test_index_and_key_are_synonyms_and_do_not_recreate_indices() {
    750777                global $wpdb;
    751778
     779                $db_engine = self::force_myisam_engine();
     780
    752781                $updates = dbDelta(
    753782                        "
    754783                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    760789                                INDEX key_1 (column_1($this->max_index_length)),
    761790                                INDEX compound_key (id,column_1($this->max_index_length)),
    762791                                FULLTEXT INDEX fulltext_key (column_1)
    763                         ) ENGINE=MyISAM
     792                        ) {$db_engine}
    764793                        "
    765794                );
    766795
    class Tests_dbDelta extends WP_UnitTestCase { 
    773802        function test_indices_with_prefix_limits_are_created_and_do_not_recreate_indices() {
    774803                global $wpdb;
    775804
     805                $db_engine = self::force_myisam_engine();
     806
    776807                $schema = "
    777808                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    778809                                id bigint{$this->bigint_display_width} NOT NULL AUTO_INCREMENT,
    class Tests_dbDelta extends WP_UnitTestCase { 
    785816                                FULLTEXT KEY fulltext_key (column_1),
    786817                                KEY key_2 (column_1(10)),
    787818                                KEY key_3 (column_2(100),column_1(10)),
    788                         ) ENGINE=MyISAM
     819                        ) {$db_engine}
    789820                ";
    790821
    791822                $creates = dbDelta( $schema );
    class Tests_dbDelta extends WP_UnitTestCase { 
    807838        function test_index_col_names_with_order_do_not_recreate_indices() {
    808839                global $wpdb;
    809840
     841                $db_engine = self::force_myisam_engine();
     842
    810843                $updates = dbDelta(
    811844                        "
    812845                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    818851                                KEY key_1 (column_1($this->max_index_length) DESC),
    819852                                KEY compound_key (id,column_1($this->max_index_length) ASC),
    820853                                FULLTEXT KEY fulltext_key (column_1)
    821                         ) ENGINE=MyISAM
     854                        ) {$db_engine}
    822855                        "
    823856                );
    824857
    class Tests_dbDelta extends WP_UnitTestCase { 
    831864        function test_primary_key_with_single_space_does_not_recreate_index() {
    832865                global $wpdb;
    833866
     867                $db_engine = self::force_myisam_engine();
     868
    834869                $updates = dbDelta(
    835870                        "
    836871                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    842877                                KEY key_1 (column_1($this->max_index_length)),
    843878                                KEY compound_key (id,column_1($this->max_index_length)),
    844879                                FULLTEXT KEY fulltext_key (column_1)
    845                         ) ENGINE=MyISAM
     880                        ) {$db_engine}
    846881                        "
    847882                );
    848883
    class Tests_dbDelta extends WP_UnitTestCase { 
    855890        function test_index_definitions_with_spaces_do_not_recreate_indices() {
    856891                global $wpdb;
    857892
     893                $db_engine = self::force_myisam_engine();
     894
    858895                $updates = dbDelta(
    859896                        "
    860897                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    866903                                KEY key_1        (         column_1($this->max_index_length)),
    867904                                KEY compound_key (id,      column_1($this->max_index_length)),
    868905                                FULLTEXT KEY fulltext_key (column_1)
    869                         ) ENGINE=MyISAM
     906                        ) {$db_engine}
    870907                        "
    871908                );
    872909
    class Tests_dbDelta extends WP_UnitTestCase { 
    879916        function test_index_types_are_not_case_sensitive_and_do_not_recreate_indices() {
    880917                global $wpdb;
    881918
     919                $db_engine = self::force_myisam_engine();
     920
    882921                $updates = dbDelta(
    883922                        "
    884923                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    890929                                key key_1 (column_1($this->max_index_length)),
    891930                                key compound_key (id,column_1($this->max_index_length)),
    892931                                FULLTEXT KEY fulltext_key (column_1)
    893                         ) ENGINE=MyISAM
     932                        ) {$db_engine}
    894933                        "
    895934                );
    896935
    class Tests_dbDelta extends WP_UnitTestCase { 
    903942        function test_key_names_are_not_case_sensitive_and_do_not_recreate_indices() {
    904943                global $wpdb;
    905944
     945                $db_engine = self::force_myisam_engine();
     946
    906947                $updates = dbDelta(
    907948                        "
    908949                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    914955                                KEY KEY_1 (column_1($this->max_index_length)),
    915956                                KEY compOUND_key (id,column_1($this->max_index_length)),
    916957                                FULLTEXT KEY FULLtext_kEY (column_1)
    917                         ) ENGINE=MyISAM
     958                        ) {$db_engine}
    918959                        ",
    919960                        false
    920961                );
    class Tests_dbDelta extends WP_UnitTestCase { 
    928969        function test_unchanged_key_lengths_do_not_recreate_index() {
    929970                global $wpdb;
    930971
     972                $db_engine = self::force_myisam_engine();
     973
    931974                $updates = dbDelta(
    932975                        "
    933976                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    939982                                KEY key_1 (column_1({$this->max_index_length})),
    940983                                KEY compound_key (id,column_1($this->max_index_length)),
    941984                                FULLTEXT KEY fulltext_key (column_1)
    942                         ) ENGINE=MyISAM
     985                        ) {$db_engine}
    943986                        ",
    944987                        false
    945988                );
    class Tests_dbDelta extends WP_UnitTestCase { 
    953996        function test_changed_key_lengths_do_not_recreate_index() {
    954997                global $wpdb;
    955998
     999                $db_engine = self::force_myisam_engine();
     1000
    9561001                $updates = dbDelta(
    9571002                        "
    9581003                        CREATE TABLE {$wpdb->prefix}dbdelta_test (
    class Tests_dbDelta extends WP_UnitTestCase { 
    9651010                                KEY compound_key (id,column_1($this->max_index_length)),
    9661011                                KEY changing_key_length (column_1(20)),
    9671012                                FULLTEXT KEY fulltext_key (column_1)
    968                         ) ENGINE=MyISAM
     1013                        ) {$db_engine}
    9691014                        "
    9701015                );
    9711016
    class Tests_dbDelta extends WP_UnitTestCase { 
    9881033                                KEY compound_key (id,column_1($this->max_index_length)),
    9891034                                KEY changing_key_length (column_1(50)),
    9901035                                FULLTEXT KEY fulltext_key (column_1)
    991                         ) ENGINE=MyISAM
     1036                        ) {$db_engine}
    9921037                        "
    9931038                );
    9941039
    class Tests_dbDelta extends WP_UnitTestCase { 
    10061051                                KEY compound_key (id,column_1($this->max_index_length)),
    10071052                                KEY changing_key_length (column_1(1)),
    10081053                                FULLTEXT KEY fulltext_key (column_1)
    1009                         ) ENGINE=MyISAM
     1054                        ) {$db_engine}
    10101055                        "
    10111056                );
    10121057
    class Tests_dbDelta extends WP_UnitTestCase { 
    10241069                                KEY compound_key (id,column_1),
    10251070                                KEY changing_key_length (column_1),
    10261071                                FULLTEXT KEY fulltext_key (column_1)
    1027                         ) ENGINE=MyISAM
     1072                        ) {$db_engine}
    10281073                        "
    10291074                );
    10301075