Make WordPress Core

Changeset 59186


Ignore:
Timestamp:
10/07/2024 12:35:43 AM (23 months ago)
Author:
peterwilsoncc
Message:

Tests/Build Tools: Improve tests for bundled themes.

Introduce two new tests relating to bundled themes:

  1. Ensure the list of tested themes matches the list of themes defined in WP_Theme
  2. Ensure the run time value of WP_DEFAULT_THEME is included in the list of themes defined in WP_Theme

See #61530.

File:
1 edited

Legend:

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

    r59150 r59186  
    213213        }
    214214
     215        /**
     216         * Tests the default themes list in the test suite matches the runtime default themes.
     217         */
     218        public function test_default_default_theme_list_match_in_test_suite_and_at_runtime() {
     219                // Use a reflection to make WP_THEME::$default_themes accessible.
     220                $reflection = new ReflectionClass( 'WP_Theme' );
     221                $property   = $reflection->getProperty( 'default_themes' );
     222                $property->setAccessible( true );
     223
     224                /*
     225                 * `default` and `classic` are included in `WP_Theme::$default_themes` but not included
     226                 * in the test suite default themes list. These are excluded from the comparison.
     227                 */
     228                $default_themes = array_keys( $property->getValue() );
     229                $default_themes = array_diff( $default_themes, array( 'default', 'classic' ) );
     230
     231                $this->assertSameSets( $default_themes, $this->default_themes, 'Test suite default themes should match the runtime default themes.' );
     232        }
     233
     234        /**
     235         * Test the default theme in WP_Theme matches the WP_DEFAULT_THEME constant.
     236         */
     237        public function test_default_theme_matches_constant() {
     238                $latest_default_theme = WP_Theme::get_core_default_theme();
     239
     240                /*
     241                 * The test suite sets the constant to `default` while this is intended to
     242                 * test the value defined in default-constants.php.
     243                 *
     244                 * Therefore this reads the file in via file_get_contents to extract the value.
     245                 */
     246                $default_constants = file_get_contents( ABSPATH . WPINC . '/default-constants.php' );
     247                preg_match( '/define\( \'WP_DEFAULT_THEME\', \'(.*)\' \);/', $default_constants, $matches );
     248                $wp_default_theme_constant = $matches[1];
     249
     250                $this->assertSame( $wp_default_theme_constant, $latest_default_theme->get_stylesheet(), 'WP_DEFAULT_THEME should match the latest default theme.' );
     251        }
     252
    215253        public function test_default_themes_have_textdomain() {
    216254                foreach ( $this->default_themes as $theme ) {
Note: See TracChangeset for help on using the changeset viewer.