aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>2025-05-14 22:02:25 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2025-05-14 22:02:25 +0000
commitf6902eae5c876d47e4b2f94ae108db38e7876a31 (patch)
tree31a1f04b162bcf5f3f02410c3b9884c3bf9fbd50 /tests
parentb7d615ce0479aa8398dab8f73555a2595aded8ea (diff)
parent02f69d5dc99a964981c57b597eedffa1f253a14c (diff)
downloadmediawikicore-master.tar.gz
mediawikicore-master.zip
Merge "DeduplicateStyles: Only transform possible style nodes"HEADmaster
Diffstat (limited to 'tests')
-rw-r--r--tests/phpunit/includes/OutputTransform/Stages/DeduplicateStylesTest.php42
1 files changed, 33 insertions, 9 deletions
diff --git a/tests/phpunit/includes/OutputTransform/Stages/DeduplicateStylesTest.php b/tests/phpunit/includes/OutputTransform/Stages/DeduplicateStylesTest.php
index eae21cbbedcd..45c5a4d629ec 100644
--- a/tests/phpunit/includes/OutputTransform/Stages/DeduplicateStylesTest.php
+++ b/tests/phpunit/includes/OutputTransform/Stages/DeduplicateStylesTest.php
@@ -35,8 +35,12 @@ class DeduplicateStylesTest extends OutputTransformStageTestBase {
] );
}
- public function provideTransform(): array {
- $dedup = <<<EOF
+ public function provideTransform(): iterable {
+ $testCases = [
+ 'legacy parser output' => [
+ TestUtils::TEST_TO_DEDUP,
+ [],
+ <<<EOF
<p>This is a test document.</p>
<style data-mw-deduplicate="duplicate1">.Duplicate1 {}</style>
<link rel="mw-deduplicated-inline-style" href="mw-data:duplicate1" />
@@ -47,13 +51,33 @@ class DeduplicateStylesTest extends OutputTransformStageTestBase {
<link rel="mw-deduplicated-inline-style" href="mw-data:duplicate1" />
<style data-mw-deduplicate="duplicate3">.Duplicate1 {}</style>
<style>.Duplicate1 {}</style>
-EOF;
-
- $po = new ParserOutput( TestUtils::TEST_TO_DEDUP );
- $expected = new ParserOutput( $dedup );
- $opts = [];
- return [
- [ $po, null, $opts, $expected ]
+EOF
+ ],
+ 'parsoid content with encoded style tags in data-mw attribute' => [
+ <<<EOF
+<style data-mw-deduplicate="duplicate1">.Duplicate1 {}</style>
+<span data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;attrs&quot;:{&quot;name&quot;:&quot;blank&quot;},
+&quot;body&quot;:{&quot;html&quot;:&quot;<style data-mw-deduplicate=\&quot;duplicate1\&quot;>.Duplicate1 {}</style>&quot;}"></span>
+<style data-mw-deduplicate="duplicate1">.Duplicate1 {}</style>
+EOF
+ ,
+ [ 'isParsoidContent' => true ],
+ <<<EOF
+<style data-mw-deduplicate="duplicate1">.Duplicate1 {}</style>
+<span data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;attrs&quot;:{&quot;name&quot;:&quot;blank&quot;},
+&quot;body&quot;:{&quot;html&quot;:&quot;<style data-mw-deduplicate=\&quot;duplicate1\&quot;>.Duplicate1 {}</style>&quot;}"></span>
+<link rel="mw-deduplicated-inline-style" href="mw-data:duplicate1">
+EOF
+ ]
];
+
+ foreach ( $testCases as $name => [ $input, $options, $expected ] ) {
+ yield $name => [
+ new ParserOutput( $input ),
+ null,
+ $options,
+ new ParserOutput( $expected )
+ ];
+ }
}
}