View file File name : skip-themes.feature Content :Feature: Skipping themes @require-wp-4.7 Scenario: Skipping themes via global flag Given a WP installation # Themes will already be installed on WP core trunk. And I try `wp theme install twentysixteen` And I try `wp theme install twentyseventeen --activate` When I run `wp eval 'var_export( function_exists( "twentyseventeen_body_classes" ) );'` Then STDOUT should be: """ true """ And STDERR should be empty # The specified theme should be skipped When I run `wp --skip-themes=twentyseventeen eval 'var_export( function_exists( "twentyseventeen_body_classes" ) );'` Then STDOUT should be: """ false """ And STDERR should be empty # All themes should be skipped When I run `wp --skip-themes eval 'var_export( function_exists( "twentyseventeen_body_classes" ) );'` Then STDOUT should be: """ false """ And STDERR should be empty # Skip another theme When I run `wp --skip-themes=twentysixteen eval 'var_export( function_exists( "twentyseventeen_body_classes" ) );'` Then STDOUT should be: """ true """ And STDERR should be empty # The specified theme should still show up as an active theme When I run `wp --skip-themes theme status twentyseventeen` Then STDOUT should contain: """ Active """ And STDERR should be empty # Skip several themes When I run `wp --skip-themes=twentysixteen,twentyseventeen eval 'var_export( function_exists( "twentyseventeen_body_classes" ) );'` Then STDOUT should be: """ false """ And STDERR should be empty Scenario: Skip parent and child themes Given a WP installation And I run `wp theme install moina moina-blog` When I run `wp theme activate moina` When I run `wp eval 'var_export( function_exists( "moina_setup" ) );'` Then STDOUT should be: """ true """ When I run `wp --skip-themes=moina eval 'var_export( function_exists( "moina_setup" ) );'` Then STDOUT should be: """ false """ And STDERR should be empty When I run `wp theme activate moina-blog` When I run `wp eval 'var_export( function_exists( "moina_setup" ) );'` Then STDOUT should be: """ true """ When I run `wp eval 'var_export( function_exists( "moina_blog_scripts" ) );'` Then STDOUT should be: """ true """ When I run `wp --skip-themes=moina-blog eval 'var_export( function_exists( "moina_setup" ) );'` Then STDOUT should be: """ false """ And STDERR should be empty When I run `wp --skip-themes=moina-blog eval 'var_export( function_exists( "moina_blog_scripts" ) );'` Then STDOUT should be: """ false """ And STDERR should be empty When I run `wp --skip-themes=moina-blog eval 'echo get_template_directory();'` Then STDOUT should contain: """ wp-content/themes/moina """ And STDERR should be empty When I run `wp --skip-themes=moina-blog eval 'echo get_stylesheet_directory();'` Then STDOUT should contain: """ wp-content/themes/moina-blog """ And STDERR should be empty Scenario: Skipping multiple themes via config file Given a WP installation And a wp-cli.yml file: """ skip-themes: - classic - default """ And I run `wp theme install classic --activate` And I run `wp theme install default` # The classic theme should show up as an active theme When I run `wp theme status` Then STDOUT should contain: """ A classic """ And STDERR should be empty # The default theme should show up as an installed theme When I run `wp theme status` Then STDOUT should contain: """ I default """ And STDERR should be empty And I run `wp theme activate default` # The default theme should be skipped When I run `wp eval 'var_export( function_exists( "kubrick_head" ) );'` Then STDOUT should be: """ false """ And STDERR should be empty @require-wp-6.1 Scenario: Skip a theme using block patterns Given a WP installation And I run `wp theme install blockline --activate` When I run `wp eval 'var_dump( function_exists( "blockline_support" ) );'` Then STDOUT should be: """ bool(true) """ When I run `wp --skip-themes=blockline eval 'var_dump( function_exists( "blockline_support" ) );'` Then STDOUT should be: """ bool(false) """ @require-wp-6.1 @require-php-7.2 Scenario: Skip a theme using block patterns with Gutenberg active Given a WP installation And I run `wp plugin install gutenberg --activate` And I run `wp theme install blockline --activate` When I run `wp eval 'var_dump( function_exists( "blockline_support" ) );'` Then STDOUT should be: """ bool(true) """ When I run `wp --skip-themes=blockline eval 'var_dump( function_exists( "blockline_support" ) );'` Then STDOUT should be: """ bool(false) """ @require-wp-5.2 Scenario: Display a custom error message when themes/functions.php causes the fatal Given a WP installation And a wp-content/themes/functions.php file: """ <?php wp_cli_function_doesnt_exist_5240(); """ When I try `wp --skip-themes plugin list` Then STDERR should contain: """ Error: An unexpected functions.php file in the themes directory may have caused this internal server error. """