| 975 | |
| 976 | /** |
| 977 | * Testing the `shortcode_parse_atts()` function. |
| 978 | * |
| 979 | * @ticket 47863 |
| 980 | * |
| 981 | * @covers ::shortcode_parse_atts |
| 982 | * @dataProvider data_shortcode_parse_atts |
| 983 | * |
| 984 | * @param string $text A single shortcode format or key/value pair string. |
| 985 | * @param string|array $expected Expected results. |
| 986 | */ |
| 987 | public function test_shortcode_parse_atts( $text, $expected ) { |
| 988 | $actual = shortcode_parse_atts( $text ); |
| 989 | $this->assertSame( $expected, $actual ); |
| 990 | } |
| 991 | |
| 992 | /** |
| 993 | * Data provider for `test_shortcode_parse_atts()`. |
| 994 | * |
| 995 | * @return array { |
| 996 | * @type array { |
| 997 | * @type string $text A single shortcode format or key/value pair string. |
| 998 | * @type string|array $expected The expected result. |
| 999 | * } |
| 1000 | * } |
| 1001 | */ |
| 1002 | public function data_shortcode_parse_atts() { |
| 1003 | |
| 1004 | return array( |
| 1005 | array( |
| 1006 | '', |
| 1007 | '', |
| 1008 | ), |
| 1009 | array( |
| 1010 | ' ', |
| 1011 | '', |
| 1012 | ), |
| 1013 | array( |
| 1014 | '""', |
| 1015 | array(), |
| 1016 | ), |
| 1017 | array( |
| 1018 | '\'\'', |
| 1019 | array(), |
| 1020 | ), |
| 1021 | array( |
| 1022 | '[unittest]', |
| 1023 | '', |
| 1024 | ), |
| 1025 | array( |
| 1026 | '[unitest]Unit Test[/unittest]', |
| 1027 | '', |
| 1028 | ), |
| 1029 | array( |
| 1030 | '[unittest title="unittest" link="https://unit.test/"]', |
| 1031 | array( |
| 1032 | 'title' => 'unittest', |
| 1033 | 'link' => 'https://unit.test/', |
| 1034 | ), |
| 1035 | ), |
| 1036 | array( |
| 1037 | '[unittest title="unittest" link="https://unit.test/"/]', |
| 1038 | array( |
| 1039 | 'title' => 'unittest', |
| 1040 | 'link' => 'https://unit.test/', |
| 1041 | ), |
| 1042 | ), |
| 1043 | array( |
| 1044 | '[unit_test title="unittest" link="https://unit.test/"/]', |
| 1045 | array( |
| 1046 | 'title' => 'unittest', |
| 1047 | 'link' => 'https://unit.test/', |
| 1048 | ), |
| 1049 | ), |
| 1050 | array( |
| 1051 | '[unit-test title="unittest" link="https://unit.test/"/]', |
| 1052 | array( |
| 1053 | 'title' => 'unittest', |
| 1054 | 'link' => 'https://unit.test/', |
| 1055 | ), |
| 1056 | ), |
| 1057 | array( |
| 1058 | '[unittest link=https://unit.test/ /]', |
| 1059 | array( |
| 1060 | 'link' => 'https://unit.test/', |
| 1061 | ), |
| 1062 | ), |
| 1063 | array( |
| 1064 | '[unittest link=https://unit.test/ ]', |
| 1065 | array( |
| 1066 | 'link' => 'https://unit.test/', |
| 1067 | ), |
| 1068 | ), |
| 1069 | array( |
| 1070 | '[unittest link=https://unit.test/]', |
| 1071 | array( |
| 1072 | 'link' => 'https://unit.test', |
| 1073 | ), |
| 1074 | ), |
| 1075 | array( |
| 1076 | '[unittest link https://unit.test/ /]', |
| 1077 | array( |
| 1078 | 'link', |
| 1079 | 'https://unit.test/', |
| 1080 | ), |
| 1081 | ), |
| 1082 | array( |
| 1083 | '[unittest title="unittest" link="https://unit.test/"]Unit Test[/unittest]', |
| 1084 | array( |
| 1085 | 'title' => 'unittest', |
| 1086 | 'link' => 'https://unit.test/', |
| 1087 | ), |
| 1088 | ), |
| 1089 | array( |
| 1090 | '[unittest title="unittest" link="https://unit.test/"][unit_test foo="bar" bar="foo"][/unittest]', |
| 1091 | array( |
| 1092 | 'title' => 'unittest', |
| 1093 | 'link' => 'https://unit.test/', |
| 1094 | ), |
| 1095 | ), |
| 1096 | array( |
| 1097 | 'title="unittest" link="https://unit.test/"', |
| 1098 | array( |
| 1099 | 'title' => 'unittest', |
| 1100 | 'link' => 'https://unit.test/', |
| 1101 | ), |
| 1102 | ), |
| 1103 | ); |
| 1104 | |
| 1105 | } |
| 1106 | |