Changeset 57743
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/interactivity-api/interactivity-api.php
r57742 r57743 150 150 * Example: 151 151 * 152 * <div <?php echo wp_interactivity_data_wp_context( array( 'isOpen' => true, 'count' => 0 ) ); ?>>152 * <div <?php echo data_wp_context( array( 'isOpen' => true, 'count' => 0 ) ); ?>> 153 153 * 154 154 * @since 6.5.0 … … 159 159 * the store namespace if specified. 160 160 */ 161 function wp_interactivity_data_wp_context( array $context, string $store_namespace = '' ): string {161 function data_wp_context( array $context, string $store_namespace = '' ): string { 162 162 return 'data-wp-context=\'' . 163 163 ( $store_namespace ? $store_namespace . '::' : '' ) . -
trunk/tests/phpunit/tests/interactivity-api/interactivity-api.php
r57742 r57743 315 315 316 316 /** 317 * Tests that wp_interactivity_data_wp_context function correctly converts different array317 * Tests that data_wp_context function correctly converts different array 318 318 * structures to a JSON string. 319 319 * 320 320 * @ticket 60356 321 321 * 322 * @covers :: wp_interactivity_data_wp_context323 */ 324 public function test_ wp_interactivity_data_wp_context_with_different_arrays() {325 $this->assertEquals( 'data-wp-context=\'{}\'', wp_interactivity_data_wp_context( array() ) );322 * @covers ::data_wp_context 323 */ 324 public function test_data_wp_context_with_different_arrays() { 325 $this->assertEquals( 'data-wp-context=\'{}\'', data_wp_context( array() ) ); 326 326 $this->assertEquals( 327 327 'data-wp-context=\'{"a":1,"b":"2","c":true}\'', 328 wp_interactivity_data_wp_context(328 data_wp_context( 329 329 array( 330 330 'a' => 1, … … 336 336 $this->assertEquals( 337 337 'data-wp-context=\'{"a":[1,2]}\'', 338 wp_interactivity_data_wp_context( array( 'a' => array( 1, 2 ) ) )338 data_wp_context( array( 'a' => array( 1, 2 ) ) ) 339 339 ); 340 340 $this->assertEquals( 341 341 'data-wp-context=\'[1,2]\'', 342 wp_interactivity_data_wp_context( array( 1, 2 ) )343 ); 344 } 345 346 /** 347 * Tests that wp_interactivity_data_wp_context function correctly converts different array342 data_wp_context( array( 1, 2 ) ) 343 ); 344 } 345 346 /** 347 * Tests that data_wp_context function correctly converts different array 348 348 * structures to a JSON string and adds a namespace. 349 349 * 350 350 * @ticket 60356 351 351 * 352 * @covers :: wp_interactivity_data_wp_context353 */ 354 public function test_ wp_interactivity_data_wp_context_with_different_arrays_and_a_namespace() {355 $this->assertEquals( 'data-wp-context=\'myPlugin::{}\'', wp_interactivity_data_wp_context( array(), 'myPlugin' ) );352 * @covers ::data_wp_context 353 */ 354 public function test_data_wp_context_with_different_arrays_and_a_namespace() { 355 $this->assertEquals( 'data-wp-context=\'myPlugin::{}\'', data_wp_context( array(), 'myPlugin' ) ); 356 356 $this->assertEquals( 357 357 'data-wp-context=\'myPlugin::{"a":1,"b":"2","c":true}\'', 358 wp_interactivity_data_wp_context(358 data_wp_context( 359 359 array( 360 360 'a' => 1, … … 367 367 $this->assertEquals( 368 368 'data-wp-context=\'myPlugin::{"a":[1,2]}\'', 369 wp_interactivity_data_wp_context( array( 'a' => array( 1, 2 ) ), 'myPlugin' )369 data_wp_context( array( 'a' => array( 1, 2 ) ), 'myPlugin' ) 370 370 ); 371 371 $this->assertEquals( 372 372 'data-wp-context=\'myPlugin::[1,2]\'', 373 wp_interactivity_data_wp_context( array( 1, 2 ), 'myPlugin' )374 ); 375 } 376 377 /** 378 * Tests that wp_interactivity_data_wp_context function correctly applies the JSON encoding373 data_wp_context( array( 1, 2 ), 'myPlugin' ) 374 ); 375 } 376 377 /** 378 * Tests that data_wp_context function correctly applies the JSON encoding 379 379 * flags. This ensures that characters like `<`, `>`, `'`, or `&` are 380 380 * properly escaped in the JSON-encoded string to prevent potential XSS … … 383 383 * @ticket 60356 384 384 * 385 * @covers :: wp_interactivity_data_wp_context386 */ 387 public function test_ wp_interactivity_data_wp_context_with_json_flags() {388 $this->assertEquals( 'data-wp-context=\'{"tag":"\u003Cfoo\u003E"}\'', wp_interactivity_data_wp_context( array( 'tag' => '<foo>' ) ) );389 $this->assertEquals( 'data-wp-context=\'{"apos":"\u0027bar\u0027"}\'', wp_interactivity_data_wp_context( array( 'apos' => "'bar'" ) ) );390 $this->assertEquals( 'data-wp-context=\'{"quot":"\u0022baz\u0022"}\'', wp_interactivity_data_wp_context( array( 'quot' => '"baz"' ) ) );391 $this->assertEquals( 'data-wp-context=\'{"amp":"T\u0026T"}\'', wp_interactivity_data_wp_context( array( 'amp' => 'T&T' ) ) );385 * @covers ::data_wp_context 386 */ 387 public function test_data_wp_context_with_json_flags() { 388 $this->assertEquals( 'data-wp-context=\'{"tag":"\u003Cfoo\u003E"}\'', data_wp_context( array( 'tag' => '<foo>' ) ) ); 389 $this->assertEquals( 'data-wp-context=\'{"apos":"\u0027bar\u0027"}\'', data_wp_context( array( 'apos' => "'bar'" ) ) ); 390 $this->assertEquals( 'data-wp-context=\'{"quot":"\u0022baz\u0022"}\'', data_wp_context( array( 'quot' => '"baz"' ) ) ); 391 $this->assertEquals( 'data-wp-context=\'{"amp":"T\u0026T"}\'', data_wp_context( array( 'amp' => 'T&T' ) ) ); 392 392 } 393 393 }
Note: See TracChangeset
for help on using the changeset viewer.