mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-04-15 10:04:25 +00:00
Shortcodes: Improve handling from shortcode_parse_attts().
Ensure consistency between `shortcode_parse_attts()` when being used directly. Props mauteri, birgire, SergeyBiryukov, kadamwhite, whyisjake. Fixes #47863. git-svn-id: https://develop.svn.wordpress.org/trunk@46369 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -972,4 +972,136 @@ EOF;
|
||||
);
|
||||
$this->assertEquals( 'test-shortcode-tag', $this->tagname );
|
||||
}
|
||||
|
||||
/**
|
||||
* Testing the `shortcode_parse_atts()` function.
|
||||
*
|
||||
* @ticket 47863
|
||||
*
|
||||
* @covers ::shortcode_parse_atts
|
||||
* @dataProvider data_shortcode_parse_atts
|
||||
*
|
||||
* @param string $text A single shortcode format or key/value pair string.
|
||||
* @param string|array $expected Expected results.
|
||||
*/
|
||||
public function test_shortcode_parse_atts( $text, $expected ) {
|
||||
$actual = shortcode_parse_atts( $text );
|
||||
$this->assertSame( $expected, $actual );
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for `test_shortcode_parse_atts()`.
|
||||
*
|
||||
* @return array {
|
||||
* @type array {
|
||||
* @type string $text A single shortcode format or key/value pair string.
|
||||
* @type string|array $expected The expected result.
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
public function data_shortcode_parse_atts() {
|
||||
|
||||
return array(
|
||||
array(
|
||||
'',
|
||||
'',
|
||||
),
|
||||
array(
|
||||
' ',
|
||||
'',
|
||||
),
|
||||
array(
|
||||
'""',
|
||||
array(),
|
||||
),
|
||||
array(
|
||||
'\'\'',
|
||||
array(),
|
||||
),
|
||||
array(
|
||||
'[unittest]',
|
||||
'',
|
||||
),
|
||||
array(
|
||||
'[unitest]Unit Test[/unittest]',
|
||||
'',
|
||||
),
|
||||
array(
|
||||
'[unittest title="unittest" link="https://unit.test/"]',
|
||||
array(
|
||||
'title' => 'unittest',
|
||||
'link' => 'https://unit.test/',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'[unittest title="unittest" link="https://unit.test/"/]',
|
||||
array(
|
||||
'title' => 'unittest',
|
||||
'link' => 'https://unit.test/',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'[unit_test title="unittest" link="https://unit.test/"/]',
|
||||
array(
|
||||
'title' => 'unittest',
|
||||
'link' => 'https://unit.test/',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'[unit-test title="unittest" link="https://unit.test/"/]',
|
||||
array(
|
||||
'title' => 'unittest',
|
||||
'link' => 'https://unit.test/',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'[unittest link=https://unit.test/ /]',
|
||||
array(
|
||||
'link' => 'https://unit.test/',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'[unittest link=https://unit.test/ ]',
|
||||
array(
|
||||
'link' => 'https://unit.test/',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'[unittest link=https://unit.test/]',
|
||||
array(
|
||||
'link' => 'https://unit.test',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'[unittest link https://unit.test/ /]',
|
||||
array(
|
||||
'link',
|
||||
'https://unit.test/',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'[unittest title="unittest" link="https://unit.test/"]Unit Test[/unittest]',
|
||||
array(
|
||||
'title' => 'unittest',
|
||||
'link' => 'https://unit.test/',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'[unittest title="unittest" link="https://unit.test/"][unit_test foo="bar" bar="foo"][/unittest]',
|
||||
array(
|
||||
'title' => 'unittest',
|
||||
'link' => 'https://unit.test/',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'title="unittest" link="https://unit.test/"',
|
||||
array(
|
||||
'title' => 'unittest',
|
||||
'link' => 'https://unit.test/',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user