Add customize state query params to a given URL if preview is allowed.
public add_state_query_params ( string $url ) : string | ||
$url | string | URL. |
Результат | string | URL. |
/** * Test WP_Customize_Manager::add_state_query_params(). * * @ticket 30937 * @covers WP_Customize_Manager::add_state_query_params() */ function test_add_state_query_params() { $preview_theme = $this->get_inactive_core_theme(); $uuid = wp_generate_uuid4(); $messenger_channel = 'preview-0'; $wp_customize = new WP_Customize_Manager(array('changeset_uuid' => $uuid, 'messenger_channel' => $messenger_channel)); $url = $wp_customize->add_state_query_params(home_url('/')); $parsed_url = wp_parse_url($url); parse_str($parsed_url['query'], $query_params); $this->assertArrayHasKey('customize_messenger_channel', $query_params); $this->assertArrayHasKey('customize_changeset_uuid', $query_params); $this->assertArrayNotHasKey('customize_theme', $query_params); $this->assertEquals($uuid, $query_params['customize_changeset_uuid']); $this->assertEquals($messenger_channel, $query_params['customize_messenger_channel']); $uuid = wp_generate_uuid4(); $wp_customize = new WP_Customize_Manager(array('changeset_uuid' => $uuid, 'messenger_channel' => null, 'theme' => $preview_theme)); $url = $wp_customize->add_state_query_params(home_url('/')); $parsed_url = wp_parse_url($url); parse_str($parsed_url['query'], $query_params); $this->assertArrayNotHasKey('customize_messenger_channel', $query_params); $this->assertArrayHasKey('customize_changeset_uuid', $query_params); $this->assertArrayHasKey('customize_theme', $query_params); $this->assertEquals($uuid, $query_params['customize_changeset_uuid']); $this->assertEquals($preview_theme, $query_params['customize_theme']); $uuid = wp_generate_uuid4(); $wp_customize = new WP_Customize_Manager(array('changeset_uuid' => $uuid, 'messenger_channel' => null, 'theme' => $preview_theme)); $url = $wp_customize->add_state_query_params('http://not-allowed.example.com/?q=1'); $parsed_url = wp_parse_url($url); parse_str($parsed_url['query'], $query_params); $this->assertArrayNotHasKey('customize_messenger_channel', $query_params); $this->assertArrayNotHasKey('customize_changeset_uuid', $query_params); $this->assertArrayNotHasKey('customize_theme', $query_params); }