Changeset 37040 for trunk/tests/phpunit/tests/customize/widgets.php
- Timestamp:
- 03/21/2016 09:58:02 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/customize/widgets.php
r36611 r37040 25 25 require_once( ABSPATH . WPINC . '/class-wp-customize-manager.php' ); 26 26 27 add_theme_support( 'customize-selective-refresh-widgets' ); 27 28 $user_id = self::factory()->user->create( array( 'role' => 'administrator' ) ); 28 29 wp_set_current_user( $user_id ); … … 48 49 } 49 50 51 function clean_up_global_scope() { 52 global $wp_widget_factory, $wp_registered_sidebars, $wp_registered_widgets, $wp_registered_widget_controls, $wp_registered_widget_updates; 53 54 $wp_registered_sidebars = array(); 55 $wp_registered_widgets = array(); 56 $wp_registered_widget_controls = array(); 57 $wp_registered_widget_updates = array(); 58 $wp_widget_factory->widgets = array(); 59 60 parent::clean_up_global_scope(); 61 } 62 50 63 function tearDown() { 51 64 $this->manager = null; … … 76 89 $this->assertInstanceOf( 'WP_Customize_Widgets', $this->manager->widgets ); 77 90 $this->assertEquals( $this->manager, $this->manager->widgets->manager ); 91 } 92 93 /** 94 * Tests WP_Customize_Widgets::get_selective_refreshable_widgets(). 95 * 96 * @see WP_Customize_Widgets::get_selective_refreshable_widgets() 97 */ 98 function test_get_selective_refreshable_widgets_when_theme_supports() { 99 global $wp_widget_factory; 100 add_action( 'widgets_init', array( $this, 'override_search_widget_customize_selective_refresh' ), 90 ); 101 add_theme_support( 'customize-selective-refresh-widgets' ); 102 $this->do_customize_boot_actions(); 103 104 $selective_refreshable_widgets = $this->manager->widgets->get_selective_refreshable_widgets(); 105 $this->assertInternalType( 'array', $selective_refreshable_widgets ); 106 $this->assertEquals( count( $wp_widget_factory->widgets ), count( $selective_refreshable_widgets ) ); 107 $this->assertArrayHasKey( 'text', $selective_refreshable_widgets ); 108 $this->assertTrue( $selective_refreshable_widgets['text'] ); 109 $this->assertArrayHasKey( 'search', $selective_refreshable_widgets ); 110 $this->assertFalse( $selective_refreshable_widgets['search'] ); 111 } 112 113 /** 114 * Tests WP_Customize_Widgets::get_selective_refreshable_widgets(). 115 * 116 * @see WP_Customize_Widgets::get_selective_refreshable_widgets() 117 */ 118 function test_get_selective_refreshable_widgets_when_no_theme_supports() { 119 add_action( 'widgets_init', array( $this, 'override_search_widget_customize_selective_refresh' ), 90 ); 120 remove_theme_support( 'customize-selective-refresh-widgets' ); 121 $this->do_customize_boot_actions(); 122 $selective_refreshable_widgets = $this->manager->widgets->get_selective_refreshable_widgets(); 123 $this->assertEmpty( $selective_refreshable_widgets ); 124 } 125 126 /** 127 * Hook into widgets_init to override the search widget's customize_selective_refresh widget option. 128 * 129 * @see Tests_WP_Customize_Widgets::test_get_selective_refreshable_widgets_when_theme_supports() 130 * @see Tests_WP_Customize_Widgets::test_get_selective_refreshable_widgets_when_no_theme_supports() 131 */ 132 function override_search_widget_customize_selective_refresh() { 133 global $wp_widget_factory; 134 $wp_widget_factory->widgets['WP_Widget_Search']->widget_options['customize_selective_refresh'] = false; 135 } 136 137 /** 138 * Tests WP_Customize_Widgets::is_widget_selective_refreshable(). 139 * 140 * @see WP_Customize_Widgets::is_widget_selective_refreshable() 141 */ 142 function test_is_widget_selective_refreshable() { 143 add_action( 'widgets_init', array( $this, 'override_search_widget_customize_selective_refresh' ), 90 ); 144 add_theme_support( 'customize-selective-refresh-widgets' ); 145 $this->do_customize_boot_actions(); 146 $this->assertFalse( $this->manager->widgets->is_widget_selective_refreshable( 'search' ) ); 147 $this->assertTrue( $this->manager->widgets->is_widget_selective_refreshable( 'text' ) ); 148 remove_theme_support( 'customize-selective-refresh-widgets' ); 149 $this->assertFalse( $this->manager->widgets->is_widget_selective_refreshable( 'text' ) ); 78 150 } 79 151 … … 117 189 */ 118 190 function test_get_setting_args() { 191 add_theme_support( 'customize-selective-refresh-widgets' ); 192 $this->do_customize_boot_actions(); 119 193 120 194 add_filter( 'widget_customizer_setting_args', array( $this, 'filter_widget_customizer_setting_args' ), 10, 2 ); 195 196 $default_args = array( 197 'type' => 'option', 198 'capability' => 'edit_theme_options', 199 'transport' => 'refresh', 200 'default' => array(), 201 'sanitize_callback' => array( $this->manager->widgets, 'sanitize_widget_instance' ), 202 'sanitize_js_callback' => array( $this->manager->widgets, 'sanitize_widget_js_instance' ), 203 ); 204 $args = $this->manager->widgets->get_setting_args( 'widget_foo[2]' ); 205 foreach ( $default_args as $key => $default_value ) { 206 $this->assertEquals( $default_value, $args[ $key ] ); 207 } 208 $this->assertEquals( 'WIDGET_FOO[2]', $args['uppercase_id_set_by_filter'] ); 121 209 122 210 $default_args = array( … … 128 216 'sanitize_js_callback' => array( $this->manager->widgets, 'sanitize_widget_js_instance' ), 129 217 ); 130 131 $args = $this->manager->widgets->get_setting_args( 'widget_foo[2]' ); 218 $args = $this->manager->widgets->get_setting_args( 'widget_search[2]' ); 132 219 foreach ( $default_args as $key => $default_value ) { 133 220 $this->assertEquals( $default_value, $args[ $key ] ); 134 221 } 135 $this->assertEquals( 'WIDGET_FOO[2]', $args['uppercase_id_set_by_filter'] ); 222 223 remove_theme_support( 'customize-selective-refresh-widgets' ); 224 $args = $this->manager->widgets->get_setting_args( 'widget_search[2]' ); 225 $this->assertEquals( 'refresh', $args['transport'] ); 226 add_theme_support( 'customize-selective-refresh-widgets' ); 136 227 137 228 $override_args = array( … … 369 460 $this->assertTrue( $args['container_inclusive'] ); 370 461 $this->assertFalse( $args['fallback_refresh'] ); 462 463 remove_theme_support( 'customize-selective-refresh-widgets' ); 464 $args = apply_filters( 'customize_dynamic_partial_args', false, 'widget[search-2]' ); 465 $this->assertFalse( $args ); 371 466 } 372 467 … … 376 471 * @see WP_Customize_Widgets::selective_refresh_init() 377 472 */ 378 function test_selective_refresh_init() { 473 function test_selective_refresh_init_with_theme_support() { 474 add_theme_support( 'customize-selective-refresh-widgets' ); 379 475 $this->manager->widgets->selective_refresh_init(); 380 $this->assertEquals( 10, has_action( 'wp_enqueue_scripts', array( $this->manager->widgets, 'customize_preview_enqueue_deps' ) ) );381 476 $this->assertEquals( 10, has_action( 'dynamic_sidebar_before', array( $this->manager->widgets, 'start_dynamic_sidebar' ) ) ); 382 477 $this->assertEquals( 10, has_action( 'dynamic_sidebar_after', array( $this->manager->widgets, 'end_dynamic_sidebar' ) ) ); … … 386 481 387 482 /** 388 * Test WP_Customize_Widgets::customize_preview_enqueue_deps(). 389 * 390 * @see WP_Customize_Widgets::customize_preview_enqueue_deps() 391 */ 392 function test_customize_preview_enqueue_deps() { 393 $this->manager->widgets->customize_preview_enqueue_deps(); 483 * Test WP_Customize_Widgets::selective_refresh_init(). 484 * 485 * @see WP_Customize_Widgets::selective_refresh_init() 486 */ 487 function test_selective_refresh_init_without_theme_support() { 488 remove_theme_support( 'customize-selective-refresh-widgets' ); 489 $this->manager->widgets->selective_refresh_init(); 490 $this->assertFalse( has_action( 'dynamic_sidebar_before', array( $this->manager->widgets, 'start_dynamic_sidebar' ) ) ); 491 $this->assertFalse( has_action( 'dynamic_sidebar_after', array( $this->manager->widgets, 'end_dynamic_sidebar' ) ) ); 492 $this->assertFalse( has_filter( 'dynamic_sidebar_params', array( $this->manager->widgets, 'filter_dynamic_sidebar_params' ) ) ); 493 $this->assertFalse( has_filter( 'wp_kses_allowed_html', array( $this->manager->widgets, 'filter_wp_kses_allowed_data_attributes' ) ) ); 494 } 495 496 /** 497 * Test WP_Customize_Widgets::customize_preview_enqueue(). 498 * 499 * @see WP_Customize_Widgets::customize_preview_enqueue() 500 */ 501 function test_customize_preview_enqueue() { 502 $this->manager->widgets->customize_preview_enqueue(); 394 503 $this->assertTrue( wp_script_is( 'customize-preview-widgets', 'enqueued' ) ); 395 504 $this->assertTrue( wp_style_is( 'customize-preview', 'enqueued' ) ); … … 459 568 */ 460 569 function test_render_widget_partial() { 570 add_theme_support( 'customize-selective-refresh-widgets' ); 571 $this->do_customize_boot_actions(); 461 572 $this->manager->widgets->selective_refresh_init(); 462 573
Note: See TracChangeset
for help on using the changeset viewer.