/** * @see WP_Customize_Widget_Setting::value() */ function test_value() { $id_base = 'categories'; $sample_data = $this->get_sample_widget_instance_data($id_base); $old_setting = new \WP_Customize_Setting($this->customize_manager, $sample_data['setting_id'], array('type' => 'option')); $args = $this->customize_manager->widgets->get_setting_args($sample_data['setting_id']); $new_setting = new WP_Customize_Widget_Setting($this->customize_manager, $sample_data['setting_id'], $args); $this->assertEquals($sample_data['instance'], $old_setting->value()); $this->assertEquals($old_setting->value(), $new_setting->value()); }
public function value() { $value = parent::value(); if (!is_array($value)) { $value = array(); } return $value; }
/** * Ensure that WP_Customize_Setting::value() can return a previewed value for aggregated multidimensionals. * * @ticket 37294 */ public function test_multidimensional_value_when_previewed() { WP_Customize_Setting::reset_aggregated_multidimensionals(); $initial_value = 456; set_theme_mod('nav_menu_locations', array('primary' => $initial_value)); $setting_id = 'nav_menu_locations[primary]'; $setting = new WP_Customize_Setting($this->manager, $setting_id); $this->assertEquals($initial_value, $setting->value()); $override_value = -123456; $this->manager->set_post_value($setting_id, $override_value); $setting->preview(); $this->assertEquals($override_value, $setting->value()); }
/** * Test specific fix for setting's default value not applying on preview window * * @ticket 30988 */ function test_non_posted_setting_applying_default_value_in_preview() { $type = 'option'; $name = 'unset_option_without_post_value'; $default = "default_value_{$name}"; $setting = new WP_Customize_Setting( $this->manager, $name, compact( 'type', 'default' ) ); $this->assertEquals( $this->undefined, get_option( $name, $this->undefined ) ); $this->assertEquals( $default, $setting->value() ); $setting->preview(); $this->assertEquals( $default, get_option( $name, $this->undefined ), sprintf( 'Expected get_option(%s) to return setting default: %s.', $name, $default ) ); $this->assertEquals( $default, $setting->value() ); }
/** * Ensure that previewing a setting is disabled when the current blog is switched. * * @ticket 31428 * @group multisite */ function test_previewing_with_switch_to_blog() { if (!is_multisite()) { $this->markTestSkipped('Cannot test WP_Customize_Setting::is_current_blog_previewed() with switch_to_blog() if not on multisite.'); } $type = 'option'; $name = 'blogdescription'; $post_value = rand_str(); $this->manager->set_post_value($name, $post_value); $setting = new WP_Customize_Setting($this->manager, $name, compact('type')); $this->assertFalse($setting->is_current_blog_previewed()); $this->assertTrue($setting->preview()); $this->assertTrue($setting->is_current_blog_previewed()); $blog_id = self::factory()->blog->create(); switch_to_blog($blog_id); $this->assertFalse($setting->is_current_blog_previewed()); $this->assertNotEquals($post_value, $setting->value()); $this->assertNotEquals($post_value, get_option($name)); restore_current_blog(); }
/** * Test js_value and json methods. * * @see WP_Customize_Setting::js_value() * @see WP_Customize_Setting::json() */ public function test_js_value() { $default = ""; $args = array('type' => 'binary', 'default' => $default, 'transport' => 'postMessage', 'dirty' => true, 'sanitize_js_callback' => create_function('$value', 'return base64_encode( $value );')); $setting = new WP_Customize_Setting($this->manager, 'name', $args); $this->assertEquals($default, $setting->value()); $this->assertEquals(base64_encode($default), $setting->js_value()); $exported = $setting->json(); $this->assertArrayHasKey('type', $exported); $this->assertArrayHasKey('value', $exported); $this->assertArrayHasKey('transport', $exported); $this->assertArrayHasKey('dirty', $exported); $this->assertEquals($setting->js_value(), $exported['value']); $this->assertEquals($args['type'], $setting->type); $this->assertEquals($args['transport'], $setting->transport); $this->assertEquals($args['dirty'], $setting->dirty); }