[wp-trac] [WordPress Trac] #31550: Use an empty theme for WP_DEFAULT_THEME during unit tests

WordPress Trac noreply at wordpress.org
Tue Dec 1 19:18:32 UTC 2015


#31550: Use an empty theme for WP_DEFAULT_THEME during unit tests
------------------------------+------------------------------
 Reporter:  westonruter       |       Owner:
     Type:  defect (bug)      |      Status:  new
 Priority:  normal            |   Milestone:  Awaiting Review
Component:  Build/Test Tools  |     Version:
 Severity:  normal            |  Resolution:
 Keywords:                    |     Focuses:
------------------------------+------------------------------
Description changed by westonruter:

Old description:

> Assertions for unit tests in Core should not have any interference from
> the current default theme, but this is not currently the case.
>
> In the
> [https://core.trac.wordpress.org/browser/trunk/tests/phpunit/tests/customize/widgets.php?rev=31622#L31
> customize/widgets unit test], I had to add:
>
> {{{#!php
> remove_action( 'after_setup_theme', 'twentyfifteen_setup' );
> }}}
>
> This was needed because Twenty Fifteen's actions modified what the unit
> test was expecting. This will be a recurring problem every time a new
> default theme is introduced, where the unit tests will have to be update
> their assertions to take into account the new default theme.
>
> The default theme loaded when unit testing should be empty, without any
> filter/action additions.
>
> I suggest that the PHPUnit bootstrap perhaps copy (symlink?) the
> [https://core.trac.wordpress.org/browser/trunk/tests/phpunit/data/themedir1/default
> tests/phpunit/data/themedir1/default] theme directory into the `wp-
> content/themes` directory (or filter the `theme_root`), and then let the
> `wp-tests-config.php` include:
>
> {{{#!php
> define( 'WP_DEFAULT_THEME', 'default' );
> }}}
>
> Or the `WP_DEFAULT_THEME` constant could be set as thus in `default-
> constants.php` when WP detects the unit tests are being run:
>
> {{{#!php
> define( 'WP_DEFAULT_THEME', defined( 'WP_RUN_CORE_TESTS' ) ? 'default' :
> 'twentyfifteen' );
> }}}

New description:

 Assertions for unit tests in Core should not have any interference from
 the current default theme, but this is not currently the case.

 In the
 [https://core.trac.wordpress.org/browser/trunk/tests/phpunit/tests/customize/widgets.php?rev=31622#L31
 customize/widgets unit test], I had to add:

 {{{#!php
 <?php
 remove_action( 'after_setup_theme', 'twentyfifteen_setup' );
 }}}

 This was needed because Twenty Fifteen's actions modified what the unit
 test was expecting. This will be a recurring problem every time a new
 default theme is introduced, where the unit tests will have to be update
 their assertions to take into account the new default theme.

 The default theme loaded when unit testing should be empty, without any
 filter/action additions.

 I suggest that the PHPUnit bootstrap perhaps copy (symlink?) the
 [https://core.trac.wordpress.org/browser/trunk/tests/phpunit/data/themedir1/default
 tests/phpunit/data/themedir1/default] theme directory into the `wp-
 content/themes` directory (or filter the `theme_root`), and then let the
 `wp-tests-config.php` include:

 {{{#!php
 <?php
 define( 'WP_DEFAULT_THEME', 'default' );
 }}}

 Or the `WP_DEFAULT_THEME` constant could be set as thus in `default-
 constants.php` when WP detects the unit tests are being run:

 {{{#!php
 <?php
 define( 'WP_DEFAULT_THEME', defined( 'WP_RUN_CORE_TESTS' ) ? 'default' :
 'twentyfifteen' );
 }}}

--

--
Ticket URL: <https://core.trac.wordpress.org/ticket/31550#comment:2>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list