Skip to content

Commit

Permalink
Interactivity API: Revert [57742] pending a Gutenberg package update.
Browse files Browse the repository at this point in the history
This function can only be renamed after updating Gutenberg npm packages, as some of the core blocks already use this function.

See #60575.

git-svn-id: https://develop.svn.wordpress.org/trunk@57743 602fd350-edb4-49c9-b593-d223f7449a82
  • Loading branch information
swissspidy committed Feb 29, 2024
1 parent a92b25a commit 56f1a37
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 23 deletions.
4 changes: 2 additions & 2 deletions src/wp-includes/interactivity-api/interactivity-api.php
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ function wp_interactivity_config( string $store_namespace, array $config = array
*
* Example:
*
* <div <?php echo wp_interactivity_data_wp_context( array( 'isOpen' => true, 'count' => 0 ) ); ?>>
* <div <?php echo data_wp_context( array( 'isOpen' => true, 'count' => 0 ) ); ?>>
*
* @since 6.5.0
*
Expand All @@ -158,7 +158,7 @@ function wp_interactivity_config( string $store_namespace, array $config = array
* @return string A complete `data-wp-context` directive with a JSON encoded value representing the context array and
* the store namespace if specified.
*/
function wp_interactivity_data_wp_context( array $context, string $store_namespace = '' ): string {
function data_wp_context( array $context, string $store_namespace = '' ): string {
return 'data-wp-context=\'' .
( $store_namespace ? $store_namespace . '::' : '' ) .
( empty( $context ) ? '{}' : wp_json_encode( $context, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP ) ) .
Expand Down
42 changes: 21 additions & 21 deletions tests/phpunit/tests/interactivity-api/interactivity-api.php
Original file line number Diff line number Diff line change
Expand Up @@ -314,18 +314,18 @@ public function test_process_directives_only_process_the_root_interactive_blocks
}

/**
* Tests that wp_interactivity_data_wp_context function correctly converts different array
* Tests that data_wp_context function correctly converts different array
* structures to a JSON string.
*
* @ticket 60356
*
* @covers ::wp_interactivity_data_wp_context
* @covers ::data_wp_context
*/
public function test_wp_interactivity_data_wp_context_with_different_arrays() {
$this->assertEquals( 'data-wp-context=\'{}\'', wp_interactivity_data_wp_context( array() ) );
public function test_data_wp_context_with_different_arrays() {
$this->assertEquals( 'data-wp-context=\'{}\'', data_wp_context( array() ) );
$this->assertEquals(
'data-wp-context=\'{"a":1,"b":"2","c":true}\'',
wp_interactivity_data_wp_context(
data_wp_context(
array(
'a' => 1,
'b' => '2',
Expand All @@ -335,27 +335,27 @@ public function test_wp_interactivity_data_wp_context_with_different_arrays() {
);
$this->assertEquals(
'data-wp-context=\'{"a":[1,2]}\'',
wp_interactivity_data_wp_context( array( 'a' => array( 1, 2 ) ) )
data_wp_context( array( 'a' => array( 1, 2 ) ) )
);
$this->assertEquals(
'data-wp-context=\'[1,2]\'',
wp_interactivity_data_wp_context( array( 1, 2 ) )
data_wp_context( array( 1, 2 ) )
);
}

/**
* Tests that wp_interactivity_data_wp_context function correctly converts different array
* Tests that data_wp_context function correctly converts different array
* structures to a JSON string and adds a namespace.
*
* @ticket 60356
*
* @covers ::wp_interactivity_data_wp_context
* @covers ::data_wp_context
*/
public function test_wp_interactivity_data_wp_context_with_different_arrays_and_a_namespace() {
$this->assertEquals( 'data-wp-context=\'myPlugin::{}\'', wp_interactivity_data_wp_context( array(), 'myPlugin' ) );
public function test_data_wp_context_with_different_arrays_and_a_namespace() {
$this->assertEquals( 'data-wp-context=\'myPlugin::{}\'', data_wp_context( array(), 'myPlugin' ) );
$this->assertEquals(
'data-wp-context=\'myPlugin::{"a":1,"b":"2","c":true}\'',
wp_interactivity_data_wp_context(
data_wp_context(
array(
'a' => 1,
'b' => '2',
Expand All @@ -366,28 +366,28 @@ public function test_wp_interactivity_data_wp_context_with_different_arrays_and_
);
$this->assertEquals(
'data-wp-context=\'myPlugin::{"a":[1,2]}\'',
wp_interactivity_data_wp_context( array( 'a' => array( 1, 2 ) ), 'myPlugin' )
data_wp_context( array( 'a' => array( 1, 2 ) ), 'myPlugin' )
);
$this->assertEquals(
'data-wp-context=\'myPlugin::[1,2]\'',
wp_interactivity_data_wp_context( array( 1, 2 ), 'myPlugin' )
data_wp_context( array( 1, 2 ), 'myPlugin' )
);
}

/**
* Tests that wp_interactivity_data_wp_context function correctly applies the JSON encoding
* Tests that data_wp_context function correctly applies the JSON encoding
* flags. This ensures that characters like `<`, `>`, `'`, or `&` are
* properly escaped in the JSON-encoded string to prevent potential XSS
* attacks.
*
* @ticket 60356
*
* @covers ::wp_interactivity_data_wp_context
* @covers ::data_wp_context
*/
public function test_wp_interactivity_data_wp_context_with_json_flags() {
$this->assertEquals( 'data-wp-context=\'{"tag":"\u003Cfoo\u003E"}\'', wp_interactivity_data_wp_context( array( 'tag' => '<foo>' ) ) );
$this->assertEquals( 'data-wp-context=\'{"apos":"\u0027bar\u0027"}\'', wp_interactivity_data_wp_context( array( 'apos' => "'bar'" ) ) );
$this->assertEquals( 'data-wp-context=\'{"quot":"\u0022baz\u0022"}\'', wp_interactivity_data_wp_context( array( 'quot' => '"baz"' ) ) );
$this->assertEquals( 'data-wp-context=\'{"amp":"T\u0026T"}\'', wp_interactivity_data_wp_context( array( 'amp' => 'T&T' ) ) );
public function test_data_wp_context_with_json_flags() {
$this->assertEquals( 'data-wp-context=\'{"tag":"\u003Cfoo\u003E"}\'', data_wp_context( array( 'tag' => '<foo>' ) ) );
$this->assertEquals( 'data-wp-context=\'{"apos":"\u0027bar\u0027"}\'', data_wp_context( array( 'apos' => "'bar'" ) ) );
$this->assertEquals( 'data-wp-context=\'{"quot":"\u0022baz\u0022"}\'', data_wp_context( array( 'quot' => '"baz"' ) ) );
$this->assertEquals( 'data-wp-context=\'{"amp":"T\u0026T"}\'', data_wp_context( array( 'amp' => 'T&T' ) ) );
}
}

0 comments on commit 56f1a37

Please sign in to comment.