Skip to content

Commit 821d43e

Browse files
pjeanjeanmichitux
authored andcommitted
XWIKI-21626: Improve escaping during conflict resolution
1 parent d9e3fad commit 821d43e

File tree

2 files changed

+16
-7
lines changed
  • xwiki-platform-core
    • xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-test/xwiki-platform-flamingo-skin-test-docker/src/test/it/org/xwiki/flamingo/test/docker
    • xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates

2 files changed

+16
-7
lines changed

Diff for: xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-skin/xwiki-platform-flamingo-skin-test/xwiki-platform-flamingo-skin-test-docker/src/test/it/org/xwiki/flamingo/test/docker/EditIT.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ public void editWithConflict(TestUtils setup, TestReference testReference)
677677

678678
wikiEditPageTab1.setContent(
679679
"First line."
680-
+ "\nSecond line."
680+
+ "\n<script>alert('Second line.')</script>"
681681
+ "\nLine N°4"
682682
+ "\nFifth line."
683683
+ "\n6th line."
@@ -690,9 +690,9 @@ public void editWithConflict(TestUtils setup, TestReference testReference)
690690
assertEquals(EditConflictModal.ConflictChoice.MERGE, editConflictModal.getCurrentChoice());
691691
assertEquals(Arrays.asList("@@ -1,6 +1,6 @@",
692692
" First line.",
693-
"-<del>L</del>ine<del> N°2</del>",
693+
"-<del>L</del>i<del>n</del>e <del>N°2</del>",
694694
"-<del>Th</del>i<del>rd li</del>ne<del>.</del>",
695-
"+<ins>Second l</ins>ine<ins>.</ins>",
695+
"+<ins>&lt;scr</ins>i<ins>pt&gt;al</ins>e<ins>rt('Second</ins> <ins>line.')&lt;/script&gt;</ins>",
696696
"+<ins>L</ins>ine<ins> N°4</ins>",
697697
" Fifth line.",
698698
"-<del>Six</del>th line.",
@@ -705,9 +705,9 @@ public void editWithConflict(TestUtils setup, TestReference testReference)
705705
assertEquals(Arrays.asList("@@ -1,1 +1,1 @@",
706706
" First line.",
707707
"@@ -2,2 +2,2 @@",
708-
"-<del>L</del>ine<del> N°2</del>",
708+
"-<del>L</del>i<del>n</del>e <del>N°2</del>",
709709
"-<del>Th</del>i<del>rd li</del>ne<del>.</del>",
710-
"+<ins>Second l</ins>ine<ins>.</ins>",
710+
"+<ins>&lt;scr</ins>i<ins>pt&gt;al</ins>e<ins>rt('Second</ins> <ins>line.')&lt;/script&gt;</ins>",
711711
"+<ins>L</ins>ine<ins> N°4</ins>",
712712
"[Conflict Resolution]",
713713
"@@ -4,1 +4,1 @@",
@@ -727,7 +727,7 @@ public void editWithConflict(TestUtils setup, TestReference testReference)
727727

728728
assertEquals(Conflict.DecisionType.CURRENT, conflict.getCurrentDecision());
729729
assertFalse(conflict.isDecisionChangeEmpty());
730-
assertEquals("Second line.\nLine N°4", conflict.getDecisionChange());
730+
assertEquals("<script>alert('Second line.')</script>\nLine N°4", conflict.getDecisionChange());
731731
conflict.setDecision(Conflict.DecisionType.PREVIOUS);
732732
assertFalse(conflict.isDecisionChangeEmpty());
733733
assertEquals("Second line.\nThird line.", conflict.getDecisionChange());

Diff for: xwiki-platform-core/xwiki-platform-web/xwiki-platform-web-templates/src/main/resources/templates/diff_macros.vm

+10-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,16 @@
8282
#else
8383
#set ($spanClass = "diff-decision")
8484
#end
85-
<span class="$spanClass" id="$spanId">$stringtool.join($value, "<br/>")</span>
85+
86+
## We do not want the renderer to add any extra spaces or linebreaks in this output.
87+
#* *#<span class="$spanClass" id="$spanId">##
88+
#* *##foreach ($v in $value)
89+
#* *#$escapetool.xml($v)##
90+
#* *##if ($foreach.hasNext)
91+
#* *#<br/>##
92+
#* *##end
93+
#* *##end
94+
#* *#</span>
8695
#end
8796

8897
#macro (displayPropertyDiff $propertyName $previousValue $newValue $_obfuscate $conflicts $realPropertyName)

0 commit comments

Comments
 (0)