Changeset 61659
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/interactivity-api/class-wp-interactivity-api.php
r61653 r61659 1315 1315 $this->has_processed_router_region = true; 1316 1316 1317 // Initializes the `state.url` property from the server. 1318 $this->state( 1319 'core/router', 1320 array( 1321 'url' => get_self_link(), 1322 ) 1323 ); 1324 1317 1325 // Enqueues as an inline style. 1318 1326 wp_register_style( 'wp-interactivity-router-animations', false ); -
trunk/tests/phpunit/tests/interactivity-api/wpInteractivityAPI-wp-router-region.php
r61424 r61659 78 78 79 79 /** 80 * Processes directives while temporarily replacing the global 81 * WP_Interactivity_API instance so that global functions like 82 * `wp_interactivity_state` operate on the test instance. 83 * 84 * @param string $html The HTML to process. 85 * @return string The processed HTML. 86 */ 87 protected function process_directives( string $html ): string { 88 global $wp_interactivity; 89 $prev = $wp_interactivity; 90 $wp_interactivity = $this->interactivity; 91 92 $result = $this->interactivity->process_directives( $html ); 93 94 $wp_interactivity = $prev; 95 return $result; 96 } 97 98 /** 80 99 * Tests that no elements are added if the `data-wp-router-region` is 81 100 * missing. … … 127 146 $this->assertFalse( $p->next_tag( $query ) ); 128 147 } 148 149 /** 150 * Tests that the `data-wp-router-region` directive initializes the 151 * `core/router` state URL from the server. 152 * 153 * @ticket 64649 154 * 155 * @covers ::process_directives 156 */ 157 public function test_wp_router_region_initializes_state_url() { 158 $_SERVER['REQUEST_URI'] = '/test-page/?query=1'; 159 160 $html = '<div data-wp-router-region="region A">Interactive region</div>'; 161 $this->process_directives( $html ); 162 163 $state = $this->interactivity->state( 'core/router' ); 164 $this->assertSame( home_url( '/test-page/?query=1' ), $state['url'] ); 165 } 166 167 /** 168 * Tests that the `core/router` state URL uses HTTPS when SSL is active. 169 * 170 * @ticket 64649 171 * 172 * @covers ::process_directives 173 */ 174 public function test_wp_router_region_initializes_state_url_with_https() { 175 $_SERVER['REQUEST_URI'] = '/'; 176 $_SERVER['HTTPS'] = 'on'; 177 178 $html = '<div data-wp-router-region="region A">Interactive region</div>'; 179 $this->process_directives( $html ); 180 181 $state = $this->interactivity->state( 'core/router' ); 182 $this->assertStringStartsWith( 'https://', $state['url'] ); 183 } 184 185 /** 186 * Tests that the `core/router` state URL is not set when no 187 * `data-wp-router-region` directive is present. 188 * 189 * @ticket 64649 190 * 191 * @covers ::process_directives 192 */ 193 public function test_wp_router_region_does_not_set_state_url_without_directive() { 194 $_SERVER['REQUEST_URI'] = '/'; 195 196 $html = '<div>Nothing here</div>'; 197 $this->process_directives( $html ); 198 199 $state = $this->interactivity->state( 'core/router' ); 200 $this->assertEmpty( $state ); 201 } 129 202 }
Note: See TracChangeset
for help on using the changeset viewer.