Subramanya Sastry has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/92891


Change subject: (Bug 56387) Refined quote wt-escape handler
......................................................................

(Bug 56387) Refined quote wt-escape handler

* Updated an existing html2wt parser test (which continues to
  pass html2wt mode but which would have faild without this patch).
* While no new tests pass, eliminates unnecessary nowikis from a
  bunch of blacklisted selser tests.

Change-Id: I5299131ae3078dc30ed30b29d1e9726799264947
---
M js/lib/mediawiki.WikitextSerializer.js
M js/tests/parserTests-blacklist.js
M js/tests/parserTests.txt
3 files changed, 32 insertions(+), 20 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Parsoid 
refs/changes/91/92891/1

diff --git a/js/lib/mediawiki.WikitextSerializer.js 
b/js/lib/mediawiki.WikitextSerializer.js
index e63c1f7..ab04db4 100644
--- a/js/lib/mediawiki.WikitextSerializer.js
+++ b/js/lib/mediawiki.WikitextSerializer.js
@@ -160,9 +160,17 @@
        }
 };
 
-WEHP.quoteHandler = function(state, text) {
+WEHP.quoteHandler = function(state, text, opts) {
        // SSS FIXME: Can be refined
-       return text.match(/^'|'$/);
+       if (text.match(/'$/)) {
+               var next = opts.node.nextSibling;
+               return next === null || Consts.WTQuoteTags.has(next.nodeName);
+       } else if (text.match(/^'/)) {
+               var prev = opts.node.previousSibling;
+               return prev === null || Consts.WTQuoteTags.has(prev.nodeName);
+       }
+
+       return false;
 };
 
 WEHP.thHandler = function(state, text) {
diff --git a/js/tests/parserTests-blacklist.js 
b/js/tests/parserTests-blacklist.js
index 82c4c10..f279acc 100644
--- a/js/tests/parserTests-blacklist.js
+++ b/js/tests/parserTests-blacklist.js
@@ -2189,12 +2189,12 @@
 add("selser", "Italics and possessives (3) [[3,0,0,1,0,2,0,0,0]]", "The first 
monolingual dictionary written in a Romance language was ''Sebastián 
Covarrubias''' ''Tesoro de la lengua castellana o española'', published in 1611 
in Madrid. In 1612 the first edition of the 5tvfu8jb1lkdquxr''Vocabolario 
dell'[[Accademia della Crusca]]'', for Italian, was published. In 1690 in 
Rotterdam was published, posthumously, the ''Dictionnaire Universel''.");
 add("selser", "Italics and possessives (3) [2]", "y1z50d22dwqdj9k9\n\nThe 
first monolingual dictionary written in a Romance language was ''Sebastián 
Covarrubias''' ''Tesoro de la lengua castellana o española'', published in 1611 
in Madrid. In 1612 the first edition of the ''Vocabolario dell'[[Accademia 
della Crusca]]'', for Italian, was published. In 1690 in Rotterdam was 
published, posthumously, the ''Dictionnaire Universel''.");
 add("selser", "Italics and possessives (3) [[0,2,2,2,0,3,3,4,0]]", "The first 
monolingual dictionary written in a Romance language was 
m0zdrix825wxw29''Sebastián Covarrubias''' uyoh7ao7utm7k3xr''Tesoro de la lengua 
castellana o española'', published in 1611 in Madrid. In 1612 the first edition 
of the , for Italian, was published. In 1690 in Rotterdam was published, 
posthumously, the sj75fcn6bccba9k9.");
-add("selser", "Italics and possessives (3) [[0,2,0,[3],4,[4,1],0,0,0]]", "The 
first monolingual dictionary written in a Romance language was 
86ftvkdoog5vcxr''Sebastián Covarrubias''' ''Tesoro de la lengua castellana o 
española'', published in 1611 in Madrid. In 1612 the first edition of the 
''<nowiki>Vocabolario dell'</nowiki>[[Accademia della Crusca]]'', for Italian, 
was published. In 1690 in Rotterdam was published, posthumously, the 
''Dictionnaire Universel''.");
+add("selser", "Italics and possessives (3) [[0,2,0,[3],4,[4,1],0,0,0]]", "The 
first monolingual dictionary written in a Romance language was 
86ftvkdoog5vcxr''Sebastián Covarrubias''' ''Tesoro de la lengua castellana o 
española'', published in 1611 in Madrid. In 1612 the first edition of the 
''Vocabolario dell'[[Accademia della Crusca]]'', for Italian, was published. In 
1690 in Rotterdam was published, posthumously, the ''Dictionnaire 
Universel''.");
 add("selser", "Italics and possessives (3) [[0,2,0,1,3,2,0,2,0]]", "The first 
monolingual dictionary written in a Romance language was 
jojl0grg3oc4n29''Sebastián Covarrubias''' ''Tesoro de la lengua castellana o 
española'', published in 1611 in Madrid. In 1612 the first edition of the 
ezphtpwtiq9f6r''Vocabolario dell'[[Accademia della Crusca]]'', for Italian, was 
published. In 1690 in Rotterdam was published, posthumously, the 
lhz9qfdq9eh4cxr''Dictionnaire Universel''.");
-add("selser", "Italics and possessives (3) [[0,0,0,[3],4,[0,1],3,4,3]]", "The 
first monolingual dictionary written in a Romance language was ''Sebastián 
Covarrubias''' ''Tesoro de la lengua castellana o española'', published in 1611 
in Madrid. In 1612 the first edition of the ''<nowiki>Vocabolario 
dell'</nowiki>[[Accademia della Crusca]]'', for Italian, was published. In 1690 
in Rotterdam was published, posthumously, the rb7a0m6g4banstt9.");
-add("selser", "Italics and possessives (3) [[2,[4],0,3,0,[0,1],0,[3],2]]", 
"The first monolingual dictionary written in a Romance language was ''Sebastián 
Covarrubias''' , published in 1611 in Madrid. In 1612 the first edition of the 
''<nowiki>Vocabolario dell'</nowiki>[[Accademia della Crusca]]'', for Italian, 
was published. In 1690 in Rotterdam was published, posthumously, the 
''Dictionnaire Universel''.");
+add("selser", "Italics and possessives (3) [[0,0,0,[3],4,[0,1],3,4,3]]", "The 
first monolingual dictionary written in a Romance language was ''Sebastián 
Covarrubias''' ''Tesoro de la lengua castellana o española'', published in 1611 
in Madrid. In 1612 the first edition of the ''Vocabolario dell'[[Accademia 
della Crusca]]'', for Italian, was published. In 1690 in Rotterdam was 
published, posthumously, the rb7a0m6g4banstt9.");
+add("selser", "Italics and possessives (3) [[2,[4],0,3,0,[0,1],0,[3],2]]", 
"The first monolingual dictionary written in a Romance language was ''Sebastián 
Covarrubias''' , published in 1611 in Madrid. In 1612 the first edition of the 
''Vocabolario dell'[[Accademia della Crusca]]'', for Italian, was published. In 
1690 in Rotterdam was published, posthumously, the ''Dictionnaire 
Universel''.");
 add("selser", "Italics and possessives (3) [[0,2,0,0,2,3,3,0,0]]", "The first 
monolingual dictionary written in a Romance language was 
g2q5y8qe0r2lz0k9''Sebastián Covarrubias''' ''Tesoro de la lengua castellana o 
española'', published in 1611 in Madrid. In 1612 the first edition of the , for 
Italian, was published. In 1690 in Rotterdam was published, posthumously, the 
''Dictionnaire Universel''.");
-add("selser", "Italics and possessives (3) [[0,[3],0,1,3,1,0,2,0]]", "The 
first monolingual dictionary written in a Romance language was ''Sebastián 
Covarrubias''' ''Tesoro de la lengua castellana o española'', published in 1611 
in Madrid. In 1612 the first edition of the ''<nowiki>Vocabolario 
dell'</nowiki>[[Accademia della Crusca]]'', for Italian, was published. In 1690 
in Rotterdam was published, posthumously, the hhstwc14sq19vn29''Dictionnaire 
Universel''.");
+add("selser", "Italics and possessives (3) [[0,[3],0,1,3,1,0,2,0]]", "The 
first monolingual dictionary written in a Romance language was ''Sebastián 
Covarrubias''' ''Tesoro de la lengua castellana o española'', published in 1611 
in Madrid. In 1612 the first edition of the ''Vocabolario dell'[[Accademia 
della Crusca]]'', for Italian, was published. In 1690 in Rotterdam was 
published, posthumously, the hhstwc14sq19vn29''Dictionnaire Universel''.");
 add("selser", "Italics and possessives (3) [[0,0,0,1,3,4,0,0,0]]", "The first 
monolingual dictionary written in a Romance language was ''Sebastián 
Covarrubias''' ''Tesoro de la lengua castellana o española'', published in 1611 
in Madrid. In 1612 the first edition of the is1s406juryeqaor, for Italian, was 
published. In 1690 in Rotterdam was published, posthumously, the ''Dictionnaire 
Universel''.");
 add("selser", "Italics and bold: 2-quote opening sequence: (2,3) [1]", 
"''foo'''");
 add("selser", "Italics and bold: 2-quote opening sequence: (2,3) [[[2]]]", 
"''foo'''");
@@ -2281,15 +2281,15 @@
 add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [[2]]", 
"3vxpssuwlsq69a4i''foo''''bar''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [[1]]", 
"''<nowiki>foo'</nowiki>'''bar''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [[[2,0]]]", 
"''foo''''bar''");
-add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [[[2,2]]]", 
"''<nowiki>foo'</nowiki>7dbqxyys8suac3di'''bar''");
+add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [[[2,2]]]", 
"''foo'7dbqxyys8suac3di'''bar''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,2) 
[[[0,[3]]]]", "''foo''''bar''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [1]", 
"''foo''''bar''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [2]", 
"anmsyqvu5ikbuik9\n\n''foo''''bar''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,2) 
[[[2,[4]]]]", "''foo''''bar''");
-add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [[[3,2]]]", 
"''<nowiki>foo'</nowiki>24pn2nqujyfu5wmi'''bar''");
+add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [[[3,2]]]", 
"''foo'24pn2nqujyfu5wmi'''bar''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,2) 
[[[0,[2]]]]", "''foo''''bar''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,2) 
[[[3,[2]]]]", "''foo''''bar''");
-add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [[[0,2]]]", 
"''<nowiki>foo'</nowiki>iuptdv9rlkcblnmi'''bar''");
+add("selser", "Italics and bold: multiple quote sequences: (2,4,2) [[[0,2]]]", 
"''foo'iuptdv9rlkcblnmi'''bar''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,3) [1]", 
"''foo''''bar'''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,3) [[[3,0]]]", 
"''foo''''bar'''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,3) [[2]]", 
"aqq6ips6vyousor''foo''''bar'''");
@@ -2297,7 +2297,7 @@
 add("selser", "Italics and bold: multiple quote sequences: (2,4,3) 
[[[0,[4]]]]", "''foo''''bar'''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,3) 
[[[3,[4]]]]", "''foo''''bar'''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,3) 
[[[4,[4]]]]", "''foo''''bar'''");
-add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[[4,2]]]", 
"''<nowiki>foo'</nowiki>1qu8sera3dydgqfr'''bar''''''");
+add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[[4,2]]]", 
"''foo'1qu8sera3dydgqfr'''bar''''''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[2]]", 
"d0jtcnr9w6gmygb9''foo''''bar''''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [2]", 
"wp7l53mlihxpf1or\n\n''foo''''bar''''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[[2,0]]]", 
"''foo''''bar''''");
@@ -2306,11 +2306,11 @@
 add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[[4,0]]]", 
"''foo''''bar''''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,4) 
[[[0,[3]]]]", "''foo''''bar''''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[1]]", 
"''<nowiki>foo'</nowiki>'''bar''''''");
-add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[[2,2]]]", 
"''<nowiki>foo'</nowiki>roraqfsx2sz1714i'''bar''''''");
+add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[[2,2]]]", 
"''foo'roraqfsx2sz1714i'''bar''''''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,4) 
[[[4,[3]]]]", "''foo''''bar''''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[[3,0]]]", 
"''foo''''bar''''");
 add("selser", "Italics and bold: multiple quote sequences: (2,4,4) 
[[[4,[2]]]]", "''foo''''bar''''");
-add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[[0,2]]]", 
"''<nowiki>foo'</nowiki>lqyaxwl4rlmu0udi'''bar''''''");
+add("selser", "Italics and bold: multiple quote sequences: (2,4,4) [[[0,2]]]", 
"''foo'lqyaxwl4rlmu0udi'''bar''''''");
 add("selser", "Italics and bold: multiple quote sequences: (3,4,2) (parsoid) 
[1]", "'''foo''''bar''");
 add("selser", "Italics and bold: multiple quote sequences: (3,4,2) (parsoid) 
[[4,0,0]]", "uihgfxwuwka9k9bar''");
 add("selser", "Italics and bold: multiple quote sequences: (3,4,2) (parsoid) 
[[[2],0,1]]", "'''foo''''bar''''");
@@ -3688,14 +3688,14 @@
 add("selser", "Tables: 1d. No escaping needed [3]", "|}foo");
 add("selser", "Tables: 1d. No escaping needed [4]", "|}foo");
 add("selser", "Links 1. Quote marks in link text [[[4,3]]]", "[[Foo]]");
-add("selser", "1. Quotes inside <b> and <i> 
[[3,2,1,3,0,3,4,0,2,3,0,1,4,1,3,[1,0,0],0,0,0,0,0,3,0,0,4,0,[3],3,3,[2],3,4,3,0,0,3,4,3]]",
 
"\n''<nowiki>''foo''</nowiki>''\n''<nowiki>'''foo'''</nowiki>''\n3pwhk10eit87iudi<nowiki/>'s\n\n'''<nowiki>''foo''</nowiki>'''\n'''<nowiki>'''foo'''</nowiki>'''\n'''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''\n'''foo'''<nowiki/>'s\n'''foo''\n''foo''<nowiki/>'\n'<nowiki/>''foo'''\n''''foo'''\n5yp9smtnl1bgldi'\n'<nowiki/>uf2kdwkp05sl9pb9'");
-add("selser", "1. Quotes inside <b> and <i> 
[[4,2,4,0,[[3]],3,0,3,3,[1],0,3,0,[3],4,[0,[[4]],4],0,2,1,4,1,0,1,2,2,0,1,0,0,2,3,0,4,0,3,0,1,0]]",
 
"hfzzqh4z896n7b9\ny9b5b0h3xt4vx6r\n''<nowiki>'''foo'''</nowiki>''\n''foo'''s\n'''<nowiki>'foo'</nowiki>'''\n\n''''''\n'''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''\nshh0fvdmi06enrk9'''foo'''<nowiki/>'s\n'''foo''\n''foo''xjlu6g9f7btn8kt9<nowiki/>'\n'<nowiki/>''foo''<nowiki/>'\n'p1oe0q0yue4s4i'''foo'''\n'''foo'''8uyg5pcth3cmobt9'\n''''foo'''<nowiki/>'");
-add("selser", "1. Quotes inside <b> and <i> 
[[[2],0,3,0,[[3]],4,4,1,0,2,4,0,3,1,3,[2,2,0],0,2,3,0,[2],2,1,2,3,0,4,4,4,0,4,0,0,0,0,4,0,3]]",
 
"''rou4oqqj45pwg66r<nowiki>'foo'</nowiki>''\n\n''<nowiki>'''foo'''</nowiki>''\n6o82gwbgw9xxn7b9<nowiki/>'s\n2po5rm4z5rhehfr'''<nowiki>'foo'</nowiki>'''\n'''<nowiki>''foo''</nowiki>'''\n'''<nowiki>'''foo'''</nowiki>'''\n'''8vtzkg2u8wnopqfr<nowiki>foo'</nowiki>9p0aymiu2tke29''<nowiki>bar'</nowiki>''baz'''\nipon7rm9iy0hpvi'''foo''''s\n'''foo''\n''foo''dinfburnti0ms4i<nowiki/>'\n'<nowiki/>bximthck3qgaxlxrrbhllev1hoo2mx6r'\n''''foo'''\n'''foo'''<nowiki/>'\n'<nowiki/>tvi87wnpldblc8fr<nowiki/>'");
-add("selser", "1. Quotes inside <b> and <i> 
[[3,0,[[3]],0,1,0,0,1,4,4,2,2,4,2,0,1,4,4,4,0,[4],4,0,3,0,0,2,0,0,0,3,3,0,4,0,2,0,3]]",
 
"\n''<nowiki>''foo''</nowiki>''\n''<nowiki>'''foo'''</nowiki>''\n''foo''<nowiki/>'s\nzn8e50rixfo2mx6r\nnwxcb0vltssmj9k9'''<nowiki>''foo''</nowiki>'''\n71d5b4dgu6av2t9'''<nowiki>'''foo'''</nowiki>'''\n'''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''\n2pmyruoajdjcerk9x1opqkhimg77rpb9's\n'''foo''\n''foo'''\n'<nowiki/>e3beow8cnbgr2j4i''foo''<nowiki/>'\n''''foo'''\n<nowiki/>'\n'<nowiki/>q8wvj0qw43x47vi'''foo'''<nowiki/>'");
-add("selser", "1. Quotes inside <b> and <i> 
[[3,0,[[4]],4,0,0,3,0,0,[2],0,3,0,2,0,[4,0,0],2,2,3,0,0,2,[2],1,0,0,[3],0,0,4,0,[3],0,2,2,4,3,4]]",
 
"\n''<nowiki>''foo''</nowiki>''\n''<nowiki>'''foo'''</nowiki>''\n<nowiki/>'s\n'''9du4tukpxr5p14i<nowiki>'foo'</nowiki>'''\n\na3oxn4o6xuoez5mi'''<nowiki>'''foo'''</nowiki>'''\n'''zb6b8p4dsrgj5rk9''<nowiki>bar'</nowiki>''baz'''\nn5g2nainzi9evcxr'''foo''''s\n'''foo''\n''foo''<nowiki/>'\n'<nowiki/>''foo''<nowiki/>'\n'0epvoyu7k445nrk9\n'''foo'''<nowiki/>'\n'3t058jjruq4wvcxr<nowiki/>w3assj8fjchm2t9'");
-add("selser", "1. Quotes inside <b> and <i> 
[[3,0,0,0,0,4,4,0,3,1,3,0,3,1,3,4,4,4,0,3,4,3,2,3,0,0,3,4,0,4,0,1,0,0,0,[3],0,0]]",
 
"\n''<nowiki>''foo''</nowiki>''\n''<nowiki>'''foo'''</nowiki>''\n948m22lf1cnb3xr<nowiki/>'s\n'''<nowiki>'foo'</nowiki>'''\n'''<nowiki>''foo''</nowiki>'''\n'''<nowiki>'''foo'''</nowiki>'''\njk6arvgx00lcv7vi\n425jab38ms32qpvi<nowiki/>'s\n'brv2d7nt35mnp14i\nd7vrobs3yc01wcdi''foo'''\n'<nowiki/>cecami0l4gh6ko6r'\n'fuu53k5nxiw45cdi\n'''foo'''<nowiki/>'\n'<nowiki/>'''foo'''<nowiki/>'");
-add("selser", "1. Quotes inside <b> and <i> 
[[2,0,[4],0,[2],2,[2],3,0,1,3,1,0,1,0,[[3],[[4]],4],3,4,1,2,0,3,0,2,4,1,4,3,0,3,4,3,3,4,0,3,0,2]]",
 
"sx87l4zay3dnp14i''<nowiki>'foo'</nowiki>''\n''0kml3vuceuerk9''\n''1sbtzk31mw9afw29<nowiki>'''foo'''</nowiki>''\n''foo'''s\n'''<nowiki>'foo'</nowiki>'''\n'''<nowiki>''foo''</nowiki>'''\n'''<nowiki>'''foo'''</nowiki>'''\n'''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''\n0ldjzsoeaomq85mi<nowiki/>'s\n'''foo''\n''foo''fd4pwvqpwqumcxr<nowiki/>'\n'<nowiki/>z6ecfej7h6r2uik9'\n'\n'\n'<nowiki/><nowiki/>'");
-add("selser", "1. Quotes inside <b> and <i> 
[[[1],0,4,2,4,0,0,0,3,[1],4,1,3,0,0,1,3,0,0,0,[4],3,1,3,0,1,4,3,2,3,4,1,1,4,4,0,4,0]]",
 
"''<nowiki>'foo'</nowiki>''\nw0pcxxar7ge3ik9\nbzleu526yptoi529\n''foo''<nowiki/>'s\n'''<nowiki>'foo'</nowiki>'''\n'''<nowiki>''foo''</nowiki>'''\n'''<nowiki>'''foo'''</nowiki>'''\n'''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''\n'''foo'''<nowiki/>'s\n'''foo''\n''foo'''\n'<nowiki/>t31umyu5wuibpgb9'\n'\n'''foo'''<nowiki/>'\n'5pfu21xak35zh0k9'''foo'''ilk7hsfpjl2l0udi'");
+add("selser", "1. Quotes inside <b> and <i> 
[[3,2,1,3,0,3,4,0,2,3,0,1,4,1,3,[1,0,0],0,0,0,0,0,3,0,0,4,0,[3],3,3,[2],3,4,3,0,0,3,4,3,3,0,2]]",
 
"\n''<nowiki>''foo''</nowiki>''\n''<nowiki>'''foo'''</nowiki>''\n3pwhk10eit87iudi<nowiki/>'s\n\n'''<nowiki>''foo''</nowiki>'''\n'''<nowiki>'''foo'''</nowiki>'''\n'''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''\n'''foo'''<nowiki/>'s\n'''foo''\n''foo''<nowiki/>'\n'<nowiki/>''foo'''\n''''foo'''\n5yp9smtnl1bgldi'\n'<nowiki/>uf2kdwkp05sl9pb9'\n\n0adusjelvz3t0529''f<span>fool</span>'s
 errand''");
+add("selser", "1. Quotes inside <b> and <i> 
[[4,2,4,0,[[3]],3,0,3,3,[1],0,3,0,[3],4,[0,[[4]],4],0,2,1,4,1,0,1,2,2,0,1,0,0,2,3,0,4,0,3,0,1,0,4,0,2]]",
 
"hfzzqh4z896n7b9\ny9b5b0h3xt4vx6r\n''<nowiki>'''foo'''</nowiki>''\n''foo'''s\n'''<nowiki>'foo'</nowiki>'''\n\n''''''\n'''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''\nshh0fvdmi06enrk9'''foo'''<nowiki/>'s\n'''foo''\n''foo''xjlu6g9f7btn8kt9<nowiki/>'\n'<nowiki/>''foo''<nowiki/>'\n'p1oe0q0yue4s4i'''foo'''\n'''foo'''8uyg5pcth3cmobt9'\n''''foo'''<nowiki/>'\neojrt6m8f16y9zfr\nm5ph5u0twa3mobt9''f<span>fool</span>'s
 errand''");
+add("selser", "1. Quotes inside <b> and <i> 
[[[2],0,3,0,[[3]],4,4,1,0,2,4,0,3,1,3,[2,2,0],0,2,3,0,[2],2,1,2,3,0,4,4,4,0,4,0,0,0,0,4,0,3,1,0,3]]",
 
"''rou4oqqj45pwg66r<nowiki>'foo'</nowiki>''\n\n''<nowiki>'''foo'''</nowiki>''\n6o82gwbgw9xxn7b9<nowiki/>'s\n2po5rm4z5rhehfr'''<nowiki>'foo'</nowiki>'''\n'''<nowiki>''foo''</nowiki>'''\n'''<nowiki>'''foo'''</nowiki>'''\n'''8vtzkg2u8wnopqfr<nowiki>foo'</nowiki>9p0aymiu2tke29''<nowiki>bar'</nowiki>''baz'''\nipon7rm9iy0hpvi'''foo''''s\n'''foo''\n''foo''dinfburnti0ms4i<nowiki/>'\n'<nowiki/>bximthck3qgaxlxrrbhllev1hoo2mx6r'\n''''foo'''\n'''foo'''<nowiki/>'\n'<nowiki/>tvi87wnpldblc8fr<nowiki/>'\n''fools'<span>
 errand</span>''\n");
+add("selser", "1. Quotes inside <b> and <i> 
[[3,0,[[3]],0,1,0,0,1,4,4,2,2,4,2,0,1,4,4,4,0,[4],4,0,3,0,0,2,0,0,0,3,3,0,4,0,2,0,3,3,0,2]]",
 
"\n''<nowiki>''foo''</nowiki>''\n''<nowiki>'''foo'''</nowiki>''\n''foo''<nowiki/>'s\nzn8e50rixfo2mx6r\nnwxcb0vltssmj9k9'''<nowiki>''foo''</nowiki>'''\n71d5b4dgu6av2t9'''<nowiki>'''foo'''</nowiki>'''\n'''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''\n2pmyruoajdjcerk9x1opqkhimg77rpb9's\n'''foo''\n''foo'''\n'<nowiki/>e3beow8cnbgr2j4i''foo''<nowiki/>'\n''''foo'''\n<nowiki/>'\n'<nowiki/>q8wvj0qw43x47vi'''foo'''<nowiki/>'\n\no054hnv223wbqpvi''f<span>fool</span>'s
 errand''");
+add("selser", "1. Quotes inside <b> and <i> 
[[3,0,[[4]],4,0,0,3,0,0,[2],0,3,0,2,0,[4,0,0],2,2,3,0,0,2,[2],1,0,0,[3],0,0,4,0,[3],0,2,2,4,3,4,[0,4],2,3]]",
 
"\n''<nowiki>''foo''</nowiki>''\n''<nowiki>'''foo'''</nowiki>''\n<nowiki/>'s\n'''9du4tukpxr5p14i<nowiki>'foo'</nowiki>'''\n\na3oxn4o6xuoez5mi'''<nowiki>'''foo'''</nowiki>'''\n'''zb6b8p4dsrgj5rk9''<nowiki>bar'</nowiki>''baz'''\nn5g2nainzi9evcxr'''foo''''s\n'''foo''\n''foo''<nowiki/>'\n'<nowiki/>''foo''<nowiki/>'\n'0epvoyu7k445nrk9\n'''foo'''<nowiki/>'\n'3t058jjruq4wvcxr<nowiki/>w3assj8fjchm2t9'\n''fools'406bo4oovs3sdcxr''\n");
+add("selser", "1. Quotes inside <b> and <i> 
[[3,0,0,0,0,4,4,0,3,1,3,0,3,1,3,4,4,4,0,3,4,3,2,3,0,0,3,4,0,4,0,1,0,0,0,[3],0,0,0,4,1]]",
 
"\n''<nowiki>''foo''</nowiki>''\n''<nowiki>'''foo'''</nowiki>''\n948m22lf1cnb3xr<nowiki/>'s\n'''<nowiki>'foo'</nowiki>'''\n'''<nowiki>''foo''</nowiki>'''\n'''<nowiki>'''foo'''</nowiki>'''\njk6arvgx00lcv7vi\n425jab38ms32qpvi<nowiki/>'s\n'brv2d7nt35mnp14i\nd7vrobs3yc01wcdi''foo'''\n'<nowiki/>cecami0l4gh6ko6r'\n'fuu53k5nxiw45cdi\n'''foo'''<nowiki/>'\n'<nowiki/>'''foo'''<nowiki/>'\n''fools'<span>
 errand</span>''\n''f<span>fool</span>'s errand''");
+add("selser", "1. Quotes inside <b> and <i> 
[[2,0,[4],0,[2],2,[2],3,0,1,3,1,0,1,0,[[3],[[4]],4],3,4,1,2,0,3,0,2,4,1,4,3,0,3,4,3,3,4,0,3,0,2,3,0,2]]",
 
"sx87l4zay3dnp14i''<nowiki>'foo'</nowiki>''\n''0kml3vuceuerk9''\n''1sbtzk31mw9afw29<nowiki>'''foo'''</nowiki>''\n''foo'''s\n'''<nowiki>'foo'</nowiki>'''\n'''<nowiki>''foo''</nowiki>'''\n'''<nowiki>'''foo'''</nowiki>'''\n'''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''\n0ldjzsoeaomq85mi<nowiki/>'s\n'''foo''\n''foo''fd4pwvqpwqumcxr<nowiki/>'\n'<nowiki/>z6ecfej7h6r2uik9'\n'\n'\n'<nowiki/><nowiki/>'\n\nshv54ns3js7l23xr''f<span>fool</span>'s
 errand''");
+add("selser", "1. Quotes inside <b> and <i> 
[[[1],0,4,2,4,0,0,0,3,[1],4,1,3,0,0,1,3,0,0,0,[4],3,1,3,0,1,4,3,2,3,4,1,1,4,4,0,4,0,[0,2],0,4]]",
 
"''<nowiki>'foo'</nowiki>''\nw0pcxxar7ge3ik9\nbzleu526yptoi529\n''foo''<nowiki/>'s\n'''<nowiki>'foo'</nowiki>'''\n'''<nowiki>''foo''</nowiki>'''\n'''<nowiki>'''foo'''</nowiki>'''\n'''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''\n'''foo'''<nowiki/>'s\n'''foo''\n''foo'''\n'<nowiki/>t31umyu5wuibpgb9'\n'\n'''foo'''<nowiki/>'\n'5pfu21xak35zh0k9'''foo'''ilk7hsfpjl2l0udi'\n''fools'uc4d486rno5stt9<span>
 errand</span>''\naddqobkh8s1t6gvi");
 add("selser", "HTML tag with broken attribute value quoting [1]", "<span 
title=\"Hello world>Foo</span>");
 add("selser", "HTML tag with broken attribute value quoting [2]", 
"zlkpme7jgj76tj4i\n\n<span title=\"Hello world>Foo</span>");
 add("selser", "HTML tag with broken attribute value quoting [[2]]", 
"19ydfukj49zoajor<span title=\"Hello world>Foo</span>");
diff --git a/js/tests/parserTests.txt b/js/tests/parserTests.txt
index c7e0c65..afe0695 100644
--- a/js/tests/parserTests.txt
+++ b/js/tests/parserTests.txt
@@ -17017,6 +17017,8 @@
 ''''foo'''
 '''foo'''<nowiki/>'
 '<nowiki/>'''foo'''<nowiki/>'
+''fools'<span> errand</span>''
+''f<span>fool</span>'s errand''
 !! result
 <p><i>'foo'</i>
 <i>''foo''</i>
@@ -17033,6 +17035,8 @@
 '<b>foo</b>
 <b>foo</b>'
 '<b>foo</b>'</p>
+<i>fools'<span> errand</span></i>
+<i>f<span>fool</span>'s errand</i>
 !! end
 
 !! test

-- 
To view, visit https://gerrit.wikimedia.org/r/92891
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5299131ae3078dc30ed30b29d1e9726799264947
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: master
Gerrit-Owner: Subramanya Sastry <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to