Arlolra has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/371726 )
Change subject: T65143: Stop shuttling link content through tree building as dom fragment tokens ...................................................................... T65143: Stop shuttling link content through tree building as dom fragment tokens Change-Id: Iccdbacc06d91eaaba50df0cda0698cb9156b5762 --- M lib/wt2html/tt/LinkHandler.js M tests/parserTests-blacklist.js M tests/parserTests.txt 3 files changed, 71 insertions(+), 48 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid refs/changes/26/371726/1 diff --git a/lib/wt2html/tt/LinkHandler.js b/lib/wt2html/tt/LinkHandler.js index 50dd701..fa50190 100644 --- a/lib/wt2html/tt/LinkHandler.js +++ b/lib/wt2html/tt/LinkHandler.js @@ -395,7 +395,7 @@ * * @return {Array} Content tokens */ -WikiLinkHandler.prototype.addLinkAttributesAndGetContent = function(newTk, token, target, buildDOMFragment) { +WikiLinkHandler.prototype.addLinkAttributesAndGetContent = function(newTk, token, target) { var attribs = token.attribs; var dataAttribs = token.dataAttribs; var newAttrData = buildLinkAttrs(attribs, true, null, [new KV('rel', 'mw:WikiLink')]); @@ -443,14 +443,7 @@ } } - if (buildDOMFragment) { - // content = [part 0, .. part l-1] - // offsets = [start(part-0), end(part l-1)] - var offsets = dataAttribs.tsr ? [content[0].srcOffsets[0], content[l - 1].srcOffsets[1]] : null; - content = [ Util.getDOMFragmentToken(out, offsets, { noPWrapping: true, noPre: true, token: token }) ]; - } else { - content = out; - } + content = out; } else { newTk.dataAttribs.stx = 'simple'; var morecontent = Util.decodeURI(target.href); @@ -490,7 +483,7 @@ */ WikiLinkHandler.prototype.renderWikiLink = function(token, frame, cb, target) { var newTk = new TagTk('a'); - var content = this.addLinkAttributesAndGetContent(newTk, token, target, true); + var content = this.addLinkAttributesAndGetContent(newTk, token, target); newTk.addNormalizedAttribute('href', this.env.makeLink(target.title), target.hrefSrc); @@ -597,7 +590,7 @@ var tokens = []; var newTk = new TagTk('a', [], token.dataAttribs); - var content = this.addLinkAttributesAndGetContent(newTk, token, target, true); + var content = this.addLinkAttributesAndGetContent(newTk, token, target); // We set an absolute link to the article in the other wiki/language var absHref = target.interwiki.url.replace("$1", target.href); @@ -2095,8 +2088,6 @@ } else { aStart.addAttribute('href', hrefWithEntities); } - - content = Util.getDOMFragmentToken(content, dataAttribs.tsr ? dataAttribs.contentOffsets : null, { noPWrapping: true, noPre: true, token: token }); cb({ tokens: [aStart].concat(content, [new EndTagTk('a')]), diff --git a/tests/parserTests-blacklist.js b/tests/parserTests-blacklist.js index c939609..7f34d94 100644 --- a/tests/parserTests-blacklist.js +++ b/tests/parserTests-blacklist.js @@ -54,8 +54,10 @@ add("wt2html", "6. Pre-blocks should extend across lines with leading WS even when there is no wrappable content", "<pre data-parsoid='{\"dsr\":[0,26,1,0]}'>a\n\n <!-- continue -->\nb</pre>\n\n<pre data-parsoid='{\"dsr\":[28,30,1,0]}'>c</pre>\n \n<p data-parsoid='{\"dsr\":[33,34,0,0]}'>d</p>"); add("wt2html", "Definition lists: ignore colons inside tags", "<dl data-parsoid='{\"dsr\":[0,39,0,0]}'><dt data-parsoid='{\"dsr\":[0,39,1,0]}'>one <b data-parsoid='{\"stx\":\"html\",\"dsr\":[5,34,3,4]}'>two<span typeof=\"mw:DisplaySpace mw:Placeholder\" data-parsoid='{\"src\":\" \",\"isDisplayHack\":true,\"dsr\":[11,12,null,0]}'> </span>: tag <i data-parsoid='{\"stx\":\"html\",\"dsr\":[18,29,3,4]}'>fun:</i>:</b>: def</dt></dl>"); add("wt2html", "Definition Lists: colons and tables 1", "<dl data-parsoid='{\"dsr\":[0,21,0,0]}'><dd data-parsoid='{\"dsr\":[0,10,1,0]}'><table data-parsoid='{\"dsr\":[1,10,2,2]}'>\n<tbody data-parsoid='{\"dsr\":[4,8,0,0]}'><tr data-parsoid='{\"autoInsertedEnd\":true,\"autoInsertedStart\":true,\"dsr\":[4,7,0,0]}'><td data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[4,7,1,0]}'> x</td></tr>\n</tbody></table></dd>\n<dd data-parsoid='{\"dsr\":[11,21,1,0]}'><table data-parsoid='{\"dsr\":[12,21,2,2]}'>\n<tbody data-parsoid='{\"dsr\":[15,19,0,0]}'><tr data-parsoid='{\"autoInsertedEnd\":true,\"autoInsertedStart\":true,\"dsr\":[15,18,0,0]}'><td data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[15,18,1,0]}'> y</td></tr>\n</tbody></table></dd></dl>"); -add("wt2html", "T4702: Mismatched <i>, <b> and <a> tags are invalid", "<p data-parsoid='{\"dsr\":[0,204,0,0]}'><i data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[0,29,2,0]}'><a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":22,\"contentOffsets\":[22,28],\"dsr\":[2,29,20,1]}'>text<i data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[26,28,2,0]}'></i></a></i>\n<a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":50,\"contentOffsets\":[50,57],\"dsr\":[30,58,20,1]}'><b data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[50,57,3,0]}'>text</b></a><b data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[58,61,3,0]}'></b>\n<i data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[62,106,2,0]}'>Something <a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":94,\"contentOffsets\":[94,105],\"dsr\":[74,106,20,1]}'>in italic<i data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[103,105,2,0]}'></i></a></i>\n<i data-parsoid='{\"dsr\":[107,164,2,2]}'>Something <a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":139,\"contentOffsets\":[139,160],\"dsr\":[119,161,20,1]}'>mixed<b data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[144,160,3,0]}'><i data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[147,160,2,0]}'>, even bold</i></b></a>'</i>\n<b data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[165,204,3,0]}'><i data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[168,204,2,0]}'>Now <a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":194,\"contentOffsets\":[194,203],\"dsr\":[174,204,20,1]}'>both<b data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[198,203,3,0]}'><i data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[201,203,2,0]}'></i></b></a></i></b></p>"); -add("wt2html", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check)", "<p data-parsoid='{\"dsr\":[0,60,0,0]}'><i data-parsoid='{\"dsr\":[0,60,2,2]}'>Some <a rel=\"mw:ExtLink\" href=\"http://example.com/\" data-parsoid='{\"targetOff\":28,\"contentOffsets\":[28,56],\"dsr\":[7,57,21,1]}'>pretty <i data-parsoid='{\"dsr\":[35,46,2,2]}'>italics</i> and stuff</a>!</i></p>"); +add("wt2html", "T4702: Mismatched <i>, <b> and <a> tags are invalid", "<p data-parsoid='{\"dsr\":[0,209,0,0]}'><i data-parsoid='{\"dsr\":[0,31,2,2]}'><a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":22,\"contentOffsets\":[22,28],\"autoInsertedEnd\":true,\"dsr\":[2,29,20,0]}'>text</a></i>\n<a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":50,\"contentOffsets\":[50,57],\"dsr\":[29,58,20,1]}'><b data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[50,57,3,0]}'>text</b></a>\n<i data-parsoid='{\"dsr\":[62,108,2,2]}'>Something <a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":94,\"contentOffsets\":[94,105],\"autoInsertedEnd\":true,\"dsr\":[74,106,20,0]}'>in italic</a></i>\n<i data-parsoid='{\"dsr\":[106,163,2,2]}'>Something <a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":139,\"contentOffsets\":[139,160],\"autoInsertedEnd\":true,\"dsr\":[119,161,20,0]}'>mixed</a></i><a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":139,\"contentOffsets\":[139,160],\"autoInsertedStart\":true,\"dsr\":[146,161,0,1]}'><b data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[146,160,3,0]}'>, even bold</b></a>\n<i data-parsoid='{\"dsr\":[165,209,2,2]}'><b data-parsoid='{\"dsr\":[167,207,3,3]}'>Now <a rel=\"mw:ExtLink\" href=\"http://example.com\" data-parsoid='{\"targetOff\":194,\"contentOffsets\":[194,203],\"autoInsertedEnd\":true,\"dsr\":[174,204,20,0]}'>both</a></b></i></p>"); +add("wt2html", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check)", "<p data-parsoid='{\"dsr\":[0,60,0,0]}'><i data-parsoid='{\"dsr\":[0,59,2,2]}'>Some <a rel=\"mw:ExtLink\" href=\"http://example.com/\" data-parsoid='{\"targetOff\":28,\"contentOffsets\":[28,56],\"autoInsertedEnd\":true,\"dsr\":[7,57,21,0]}'>pretty </a></i><a rel=\"mw:ExtLink\" href=\"http://example.com/\" data-parsoid='{\"targetOff\":28,\"contentOffsets\":[28,56],\"autoInsertedStart\":true,\"dsr\":[37,57,0,1]}'>italics<i data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[44,56,2,0]}'> and stuff</i></a><i data-parsoid='{\"autoInsertedStart\":true,\"dsr\":[57,60,0,2]}'>!</i></p>"); +add("wt2html", "External link containing double-single-quotes with no space separating the url from text in italics", "<p data-parsoid='{\"dsr\":[0,146,0,0]}'><a rel=\"mw:ExtLink\" href=\"http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm\" data-parsoid='{\"targetOff\":56,\"contentOffsets\":[56,145],\"autoInsertedEnd\":true,\"dsr\":[0,146,56,0]}'><i data-parsoid='{\"dsr\":[56,82,2,2]}'>La muerte de Casagemas</i> (1901) en el sitio de </a><a rel=\"mw:WikiLink\" href=\"./Museo_Picasso_(París)\" title=\"Museo Picasso (París)\" data-parsoid='{\"stx\":\"piped\",\"a\":{\"href\":\"./Museo_Picasso_(París)\"},\"sa\":{\"href\":\"Museo Picasso (París)\"},\"dsr\":[105,145,24,2]}'>Museo Picasso</a>.</p>"); +add("wt2html", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check)", "<p data-parsoid='{\"dsr\":[0,47,0,0]}'><i data-parsoid='{\"dsr\":[0,46,2,2]}'>Some <a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid='{\"stx\":\"piped\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"Link\"},\"autoInsertedEnd\":true,\"dsr\":[7,44,7,0]}'>pretty </a></i><a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid='{\"stx\":\"piped\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"Link\"},\"autoInsertedStart\":true,\"dsr\":[23,44,0,2]}'>italics<i data-parsoid='{\"autoInsertedEnd\":true,\"dsr\":[30,42,2,0]}'> and stuff</i></a><i data-parsoid='{\"autoInsertedStart\":true,\"dsr\":[44,47,0,2]}'>!</i></p>"); add("wt2html", "Self-link to numeric title", "<p data-parsoid='{\"dsr\":[0,5,0,0]}'><a rel=\"mw:WikiLink\" href=\"./0\" title=\"0\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./0\"},\"sa\":{\"href\":\"0\"},\"dsr\":[0,5,2,2]}'>0</a></p>"); add("wt2html", "<nowiki> inside a link", "<p data-parsoid='{\"dsr\":[0,96,0,0]}'><a rel=\"mw:WikiLink\" href=\"./Main_Page\" title=\"Main Page\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./Main_Page\"},\"sa\":{\"href\":\"Main<nowiki> Page</nowiki>\"},\"dsr\":[0,30,2,2]}'>Main Page</a> <a rel=\"mw:WikiLink\" href=\"./Main_Page\" title=\"Main Page\" data-parsoid='{\"stx\":\"piped\",\"a\":{\"href\":\"./Main_Page\"},\"sa\":{\"href\":\"Main Page\"},\"dsr\":[31,96,12,2]}'>the main page <span typeof=\"mw:Nowiki\" data-parsoid='{\"dsr\":[57,94,8,9]}'>[it's not very good]</span></a></p>"); add("wt2html", "Interlanguage link with spacing", "<p data-parsoid='{\"dsr\":[0,14,0,0]}'>Blah blah blah</p>\n<link rel=\"mw:PageProp/Language\" href=\"http://zh.wikipedia.org/wiki/%20%20%20%20Chinese%20%20%20%20%20\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"http://zh.wikipedia.org/wiki/%20%20%20%20Chinese%20%20%20%20%20\"},\"sa\":{\"href\":\" zh : Chinese \"},\"dsr\":[15,43,null,null]}'/>"); @@ -228,7 +230,8 @@ add("wt2wt", "T2289: literal \">\"-token in bracketed URL", "[http://www.example.com/ <b>html</b> stuff]\n"); add("wt2wt", "T2289: literal double quote in bracketed URL", "[http://www.example.com/ \"hello\" stuff]\n"); add("wt2wt", "External links: multiple legal whitespace is fine, Magnus. Don't break it please. (T7081)", "[http://www.example.com test]\n"); -add("wt2wt", "T4702: Mismatched <i>, <b> and <a> tags are invalid", "''[http://example.com text''<nowiki/>'']''\n[http://example.com '''text''']'''<nowiki/>'''\n''Something [http://example.com in italic''<nowiki/>'']''\n''Something [http://example.com mixed''''', even bold''''']'''\n'''''Now [http://example.com both'''''<nowiki/>''''']'''''\n"); +add("wt2wt", "T4702: Mismatched <i>, <b> and <a> tags are invalid", "''[http://example.com text]''\n[http://example.com '''text''']\n''Something [http://example.com in italic]''\n''Something [http://example.com mixed]''[http://example.com ''', even bold''']\n'''''Now [http://example.com both]'''''\n"); +add("wt2wt", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check)", "''Some [http://example.com/ pretty ]''[http://example.com/ italics'' and stuff'']''!''\n"); add("wt2wt", "External link containing double-single-quotes with no space separating the url from text in italics", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm ''La muerte de Casagemas'' (1901) en el sitio de ][[Museo Picasso (París)|Museo Picasso]].\n"); add("wt2wt", "Unclosed and unmatched quotes", "'''''Bold italic text '''with bold deactivated''' in between.'''''\n\n'''''Bold italic text ''with italic deactivated'' in between.'''''\n\n'''Bold text..'''\n\n..spanning two paragraphs (should not work).'''<nowiki/>'''\n\n'''Bold tag left open'''\n\n''Italic tag left open''\n\nNormal text.\n\n<!-- Unmatching number of opening, closing tags: -->\n'''This year'<nowiki/>'''s election ''should'' beat '''last year''''s.\n\n''Tom'''s car is bigger than '''''<nowiki/>'''Susan'''s.\n\nPlain ''italic'''s plain\n"); add("wt2wt", "A table with captions with non-default spaced attributes and a table row", "{|\n|+ style=\"color: red;\" |caption2\n|+ style=\"color: red;\" | caption3\n|-\n| foo\n|}"); @@ -241,6 +244,7 @@ add("wt2wt", "Build table with pipe as data", "{| class=\"wikitable\"\n! header\n! second header\n|- style=\"color:red;\"\n| data || style=\"color:red;\" | second data\n|-\n| style=\"color:red;\" |<nowiki> data with | </nowiki>|| style=\"color:red;\" | second data with |\n|-\n||<nowiki> data with | </nowiki>||| second data with |\n|}"); add("wt2wt", "Piped link with multiple pipe characters in link text", "[[Main Page|<nowiki>|The|Main|Page|</nowiki>]]\n"); add("wt2wt", "Link containing \"#<\" and \"#>\" % as a hex sequences- these are valid section anchors", "[[%23%3c|#<]][[%23%3e|#>]]\n"); +add("wt2wt", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check)", "''Some [[Link|pretty ]]''[[Link|italics'' and stuff'']]''!''\n"); add("wt2wt", "Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved", "[[Foo| bar]]\n\n[[Foo| ''bar'']]\n\n[http://wp.org foo]\n\n[http://wp.org ''foo'']\n"); add("wt2wt", "Handling html with a div self-closing tag", "<div title=\"\" />\n<div title=\"\" />\n<div title=\"\" />\n<div title=\"bar\" />\n<div title=\"bar\" />\n<div title=\"bar/\">"); add("wt2wt", "Handling html with a br self-closing tag", "<br title=\"\" />\n<br title=\"\" />\n<br title=\"\" />\n<br title=\"bar\" />\n<br title=\"bar\" />\n<br title=\"bar/\">\n"); @@ -1126,38 +1130,50 @@ add("selser", "External links: multiple legal whitespace is fine, Magnus. Don't break it please. (T7081) [2]", "17fhfw0\n\n[http://www.example.com test]"); add("selser", "External links: multiple legal whitespace is fine, Magnus. Don't break it please. (T7081) [[2]]", "6srwd0[http://www.example.com test]"); add("selser", "External links: multiple legal whitespace is fine, Magnus. Don't break it please. (T7081) [1]", "[http://www.example.com test]"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[3],0,0,0,0,[0,[3,1]],0,[4,3,2],0,3]]", "''<nowiki/>''\n[http://example.com '''text]'''\n''Something [http://example.com ''<nowiki/>'']''\n''qkgn80o3zxsd'''\n"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [2]", "1m5psig\n\n''[http://example.com text'']\n[http://example.com '''text]'''\n''Something [http://example.com in italic'']\n''Something [http://example.com mixed''''', even bold]'''\n'''''Now [http://example.com both''''']"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [1]", "''[http://example.com text'']\n[http://example.com '''text]'''\n''Something [http://example.com in italic'']\n''Something [http://example.com mixed''''', even bold]'''\n'''''Now [http://example.com both''''']"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[[2,0]],3,[[2]],1,4,[0,3],0,[0,4,4],4,1]]", "''[http://example.com zyb9y3text'']''[http://example.com '''1qoymvgtext''']'''<nowiki/>'''bw748n''Something ''\n''Something adl0iw1pgmuwk''y4f27b'''''Now [http://example.com both''''']'''"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[4,0,4,2,0,1,0,3,0,2]]", "1jjctz5\npqo6mlxj4zfi'''\n''Something [http://example.com in italic'']''\n\n1nkqnry'''''Now [http://example.com both''''']"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[4,0,[2],3,3,1,2,3,0,[[0,[3,0]]]]]", "fq633s\n[http://example.com z6k6a5'''text]''Something [http://example.com in italic'']''1itz7sk\n\n'''''Now [http://example.com ''''']'''''"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[[2,0]],3,[[2]],3,0,4,4,3,0,2]]", "''[http://example.com 1fl7zurtext'']''[http://example.com '''g2czgytext''']\ntkxlfzewz40l\nb43mrw'''''Now [http://example.com both''''']"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[2,0,[[2]],0,0,3,0,2,0,[[0,2]]]]", "1su8ozt''[http://example.com text'']\n[http://example.com '''1yotag2text''']'''\n\nkcfz7g''Something [http://example.com mixed''''', even bold]'''\n'''''Now medcd9[http://example.com both''''']'''''"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[0,0,[2],1,3,[4,[3,0]],4,[0,[3,4],2],0,[1]]]", "''[http://example.com text'']\n[http://example.com 1k1dra5'''text]'''<nowiki/>'''''2sgkur[http://example.com '']''chob23''Something [http://example.com 8v224l]17aioqf'<nowiki/>''\n'''''Now [http://example.com both''''']'''''"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[[2,4]],3,[1],0,4,[0,[0,1]],3,2,0,[3]]]", "''[http://example.com 1fdmvh4text2yfn7v]''[http://example.com '''text''']'''10j1en2''Something [http://example.com in italic''<nowiki/>'']''16etdql''Something [http://example.com mixed''''', even bold]'''\n'''<nowiki/>'''"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[3],3,[3],1,4,[3,2],0,[0,[0,2],4],0,[4]]]", "''<nowiki/>''[http://example.com]'''<nowiki/>'''5vl9nm''4r1rc2[http://example.com in italic'']''\n''Something [http://example.com mixedxdfvtk''''', even bold]1enu0jj''\n'''1cffq00'''"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[[0,2]],2,[4],2,0,[4,[3,2]],3,[0,[0,3],0],0,[4]]]", "''[http://example.com texto8ckan'']''z9uyf8\n[http://example.com y33u36]y3ygwe'''\n''6qo38u[http://example.com cxfvtc'']Something [http://example.com mixed]'''\n'''fnt2s9'''"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[1,2,2,0,2,[4,[0,4]],0,[0,[0,[[3]]],0],0,2]]", "''[http://example.com text'']''1dtvvhy\n1owq85s[http://example.com '''text]'''2ovole\n''1hkfcxq[http://example.com in italic4ylldq]''\n''Something [http://example.com mixed'''''<nowiki/>''''']'''\n1sxxa72'''''Now [http://example.com both''''']"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[1],0,[4],0,0,[0,4],4,[0,1,3],3,[[4,3]]]]", "''[http://example.com text'']''\n[http://example.com 18j7tcl]'''\n''Something d5uz25''1ceigdx''Something [http://example.com mixed''''', even bold]'''9akd2o'''''\n"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[3],0,1,0,0,[2,[3,0]],3,[3,2,4],2,[2]]]", "''<nowiki/>''\n[http://example.com '''text]'''\n''442ldxSomething [http://example.com '']a0udil[http://example.com mixed''''', even bold]pigbwn''pn85gv\n'''26be4p''Now [http://example.com both''''']'''"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[4,2,3,2,3,[4,0],0,[0,2,0],0,0]]", "19v8d1luol8sn\n1g90nho'''''1smcwbl[http://example.com in italic'']''\n''Something 11ylls1[http://example.com mixed''''', even bold]'''\n'''''Now [http://example.com both''''']"); -add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[4,0,[3],4,0,4,2,3,0,2]]", "3dbdof\n[http://example.com]nssqhn\n147922y1mii58r\nuafhnx'''''Now [http://example.com both''''']"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[0,1,1]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].][[Museo Picasso (París)|Museo Picasso]]<span data-foobar=\"1rbr6np\">.</span>\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[3],0,0,0,0,3,1,[[4]],4,1]]", "''<nowiki/>''\n\n[http://example.com '''text]\n''Something [http://example.com in italic'']Something [http://example.com mixed''''', even bold]''[http://example.com '''qkgn80''']o3zxsd'''''Now [http://example.com both''''']''\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [2]", "1m5psig\n\n''[http://example.com text'']\n[http://example.com '''text]'''\n''Something [http://example.com in italic'']\n''Something [http://example.com mixed''''', even bold]'''\n'''''Now [http://example.com both''''']\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [1]", "''[http://example.com text'']\n[\n\n[http://example.com '''text]\n''Something [http://example.com in italic'']\n'\n\n''Something [http://example.com mixed''''', even bold]''''', even bold]\n'''''Now [http://example.com both''''']\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[[2]],0,3,0,[2,1],4,[0,3],0,4,4]]", "''[http://example.com zyb9y3text]''\n\n''1qoymvgSomething [http://example.com in italic]''bw748n''Something ''''', even bold]adl0iw1pgmuwk\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[4,0,4,2,[2,[4]],0,2,[[3]],4,3]]", "1jjctz5\npqo6mlxj4zfi\n''1el0agbSomething [http://example.com 1nkqnry]''\n1rinixi\n''Something [http://example.com mixed''''', even bold]''[http://example.com '''<nowiki/>''']h8dwsm\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[4,0,[2],4,2,2,1,3,0,[[0,[3]]]]]", "fq633s\n[http://example.com z6k6a5'''text]11m7n2d1itz7sk''Something [http://example.com in italic'']\n'f42e6n\n''Something [http://example.com mixed''''', even bold]''\n'''''Now [http://example.com]'''''\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[[2]],0,2,0,[2,3],0,4,4,4,[2]]]", "''[http://example.com 1fl7zurtext]''\ng2czgy\n[http://example.com '''text]\n''tkxlfzSomething ''\newz40lb43mrwt7trn6''dul3l9'''Now [http://example.com both]'''''\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[2,0,[[2]],0,[3,[3]],0,[0,[3]],[[2]],3,1]]", "1su8ozt''[http://example.com text'']\n[\n[http://example.com '''1yotag2text''']\n''[http://example.com]''\n''Something [http://example.com]''[http://example.com '''kcfz7g, even bold''']'''''Now [http://example.com both''''']''\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[4,4,3,4,[4,4],4,[0,2],0,0,4]]", "106sq2e1d5ekb51lygpny''pcy57tc7hw0n''d46fqw''Something 16aivp2[http://example.com mixed''''', even bold]''''', even bold]\n1qw7gqk\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[0,0,[[3]],2,2,0,4,[3],0,3]]", "''[http://example.com text'']\n[\n[http://example.com '''<nowiki/>''']1k1dra5\n1b8stdb''Something [http://example.com in italic'']\n'\n2sgkur[http://example.com]\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[[2]],4,2,0,1,0,4,0,0,1]]", "''[http://example.com 1fdmvh4text]''2yfn7v1wav9zj\n[http://example.com '''text]\n''Something [http://example.com in italic'']''\ndtol3h''', even bold]\n'''''Now [http://example.com both''''']''\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[3],3,[3],2,4,0,2,2,0,[[0,[3]]]]]", "''<nowiki/>''[http://example.com]uoaq0o\n5vl9nm\n4r1rc2\n''Something [http://example.com mixed''''', even bold]''xdfvtk''', even bold]\n'''''Now [http://example.com]'''''\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[0,2,1,0,4,3,[0,4],[3],3,3]]", "''[http://example.com text'']\n[o8ckan\n[http://example.com '''text]\ny33u36''Something y3ygwe''[http://example.com]\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[1,2,2,0,2,0,3,[[4]],0,0]]", "''[http://example.com text'']''1dtvvhy\n1owq85s\n[http://example.com '''text]\n2ovole''Something [http://example.com in italic'']\n'\n[http://example.com '''1hkfcxq''']\n'''''Now [http://example.com both''''']\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[1],0,[4],0,[0,[4]],4,[0,1],2,3,[[4,3]]]]", "''[http://example.com text]''\n[http://example.com 18j7tcl]\n''Something [http://example.com d5uz25]''1ceigdx''Something [http://example.com mixed]''9akd2o''', even bold]'''''tlx3li'''''\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[[3],0,1,0,[0,2],0,2,[3],0,3]]", "''<nowiki/>''\n[http://example.com '''text]\n''Something 442ldx[http://example.com in italic'']''\na0udil\n''Something [http://example.com mixed''''', even bold]''[http://example.com]\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[4,2,3,3,3,0,3,0,0,[[3,0]]]]", "19v8d1luol8sn\n\n''', even bold]\n'''''[http://example.com both''''']'''''\n"); +add("selser", "T4702: Mismatched <i>, <b> and <a> tags are invalid [[4,0,[3],4,[4,1],3,[3,2],[1],0,[4]]]", "3dbdof\n[http://example.com]nssqhn''147922y[http://example.com in italic]uafhnx[http://example.com mixed''''', even bold]''[http://example.com ''', even bold''']\n''8gb3h8''\n"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [2]", "1tnbsk1\n\n''Some [http://example.com/ pretty ''italics'' and stuff]!''"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[[0,4],2,[3]]]", "''Some 50tv48''1vsikaqitalics'' and stuff]''<nowiki/>''"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [1]", "''Some [http://example.com/ pretty ''italics'' and stuff]!'italics'' and stuff]!''"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[4,4,0]]", "rfocwh1jski8w!''"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[1,1,1]]", "''Some [http://example.com/ pretty ''italics'' and stuff]''[http://example.com/ italics'' and stuff]''!''"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[1,[4,[3]],4]]", "''Some [http://example.com/ pretty ''italics'' and stuff]''[http://example.com/ 18rn4jf''<nowiki/>'']193kohg"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[0,[3,[4]],3]]", "''Some [http://example.com/ pretty ''italics'' and stuff]!'[http://example.com/ ''s761lf'']\n"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[4,[2,3],2]]", "wsao3t[http://example.com/ 1hyx4e5italics]1du5yjy!''"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[1,4,0]]", "''Some [http://example.com/ pretty ''italics'' and stuff]''7eezfr!''"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[2,4,3]]", "1jzh7ce''Some [http://example.com/ pretty ''italics'' and stuff]!'15dv3xp\n"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[0,[2,3],1]]", "''Some [http://example.com/ pretty ''italics'' and stuff]!'[http://example.com/ 19brnfnitalics]''!''"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[[2,3],[0,[4]],0]]", "''1avj5ujSome ''[http://example.com/ italics''1pa1x6g'']!''"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[[0,1],[2,0],0]]", "''Some [http://example.com/ pretty ]''[http://example.com/ dc6oycitalics'' and stuff]!''"); +add("selser", "External link containing double-single-quotes in text embedded in italics (T6598 sanity check) [[3,[2,2],0]]", "[http://example.com/ 1uuwt2zitalics13vgbpw'' and stuff]!''"); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[0,1,2]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].][[Museo Picasso (París)|Museo Picasso]]1rbr6np."); add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [2]", "1ehf2a5\n\n[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].]"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [1]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].]\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[2,0,[2]]]", "7a8apf[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].]4wkxto.\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[[[4],4],2,0]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm ''t0j7dk''bc0354]692z0l\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[2,[3],[3]]]", "e6sxcx[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].][[Museo Picasso (París)|<nowiki/>]]\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[0,0,4]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].]<nowiki/>wn9za5"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[[4,0],0,2]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm 17uhaq0 (1901) en el sitio de ]1167r4g\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[[3,3],[4],0]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm][[Museo Picasso (París)|q6h2zv]]\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[[[2],0],2,0]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm ''7q2puaLa muerte de Casagemas'' (1901) en el sitio de ]1m5co9z\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[0,[3],2]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].][[Museo Picasso (París)|<nowiki/>]]<nowiki/>b4d1d6\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[3,[3],2]]", "[[Museo Picasso (París)|<nowiki/>]]65ww3e\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[1,3,0]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm ''La muerte de Casagemas'' (1901) en el sitio de ]\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[4,0,3]]", "1jnda7a\n"); -add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[[1,2],2,4]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm ''La muerte de Casagemas''1svf0oe (1901) en el sitio de ]mqtmyg6n94l9"); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [1]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].][[Museo Picasso (París)|Museo Picasso]].."); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[2,0,0]]", "7a8apf[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].][[Museo Picasso (París)|Museo Picasso]].."); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[[[4],4],2,0]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm ''t0j7dk''bc0354]692z0l[[Museo Picasso (París)|Museo Picasso]].."); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[2,[3],0]]", "e6sxcx[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].][[Museo Picasso (París)|<nowiki/>]]."); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[0,0,4]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].][[Museo Picasso (París)|Museo Picasso]].<nowiki/>wn9za5"); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[[4,0],0,3]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm 17uhaq0 (1901) en el sitio de ][[Museo Picasso (París)|Museo Picasso]].\n"); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[[[2],0],2,0]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm ''7q2puaLa muerte de Casagemas'' (1901) en el sitio de ]1m5co9z[[Museo Picasso (París)|Museo Picasso]].."); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[0,[3],3]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].][[Museo Picasso (París)|<nowiki/>]]\n"); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[4,0,3]]", "1jnda7a[[Museo Picasso (París)|Museo Picasso]].\n"); +add("selser", "External link containing double-single-quotes with no space separating the url from text in italics [[[1,2],2,4]]", "[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm ''La muerte de Casagemas''1svf0oe (1901) en el sitio de ]mqtmyg[[Museo Picasso (París)|Museo Picasso]].6n94l9"); add("selser", "mw:ExtLink linking to a interwiki URL can be round-tripped losslessly (T94723) [[[4]]]", "[[wikipedia:European_Robin|1rmduf6]]"); add("selser", "mw:ExtLink linking to a interwiki URL can be round-tripped losslessly (T94723) [[[2]]]", "[[wikipedia:European_Robin|134iwocEuropean Robin]]"); add("selser", "Unclosed and unmatched quotes [[[0,0,4]],2,3,3,[1],0,4,0,1,2,[[2]],3,3,3,2,0,3,4,1,2,2]", "'''''Bold italic text '''with bold deactivatedmik1b''\n\n194mnir\n\n'''Bold text..'''\n\n1vh6b8p\n\n'''Bold tag left open\n\n118iayy\n\n''hxqm6fItalic tag left open''\n\n8zfmbl<!-- Unmatching number of opening, closing tags: -->\n\nv7yj6u\n\n''Tom'''s car is bigger than '''''<nowiki/>'''Susan'''s.\n\n1suii2h\n\n1qt3jiw\n\nPlain ''italic'''s plain"); @@ -1300,6 +1316,22 @@ add("selser", "Link containing \"#<\" and \"#>\" % as a hex sequences- these are valid section anchors [1]", "[[%23%3c]][[%23%3e]]"); add("selser", "Link containing \"#<\" and \"#>\" % as a hex sequences- these are valid section anchors [[1,0]]", "[[%23%3c|#<]][[%23%3e]]"); add("selser", "Link containing \"#<\" and \"#>\" % as a hex sequences- these are valid section anchors [[1,2]]", "[[%23%3c|#<]]1g4ueid[[%23%3e]]"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[3,3],1,3]]", "''<nowiki/>''[[Link|italics'' and stuff]]\n"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[2,[4,4],0]]", "3decrm''Some [[Link|pretty ''italics'' and stuff]]!'[[Link|17jkjo91ex4ssc]]!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [2]", "18k5cgc\n\n''Some [[Link|pretty ''italics'' and stuff]]!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [1]", "''Some [[Link|pretty ''italics'' and stuff]]!'italics'' and stuff]]!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[1,1,[2]]]", "''Some [[Link|pretty ''italics'' and stuff]]''[[Link|italics'' and stuff]]''18a447h!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[3,0],[3,3],1]]", "''[[Link|pretty ''italics'' and stuff]]''[[Link|<nowiki/>]]''!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[3,1],2,0]]", "''[[Link|pretty ]]''1gwt922italics'' and stuff]]!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[2,0],[0,[4]],4]]", "''b9gaavSome [[Link|pretty ''italics'' and stuff]]''[[Link|italics''8kpnup'']]<nowiki/>hgs8c8"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[2,[4]],[0,[2]],0]]", "''p9wecgSome [[Link|1l6bc3i]]''[[Link|italics''16wde6 and stuff'']]!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[0,[2]],4,2]]", "''Some [[Link|sws6kqpretty ]]''1d52q27bpiv1h!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[4,2],[4,3],1]]", "''ecmnek3we37u[[Link|pretty ''italics'' and stuff]]''[[Link|cvkv1i]]''!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[3,1],[3,1],0]]", "''[[Link|pretty ]]''[[Link|'' and stuff'']]!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[3,0],[2,0],[2]]]", "''[[Link|pretty ''italics'' and stuff]]''[[Link|cuj46xitalics'' and stuff]]''15w73su!''"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[1,4,4]]", "''Some [[Link|pretty ''italics'' and stuff]]''1ccqkh86zfkop\n"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[0,3],[2,0],4]]", "''Some ''[[Link|16pgo9nitalics'' and stuff]]10i6y31"); +add("selser", "Link containing double-single-quotes '' in text embedded in italics (T6598 sanity check) [[[0,3],[4,0],1]]", "''Some ''[[Link|1jtx7bf'' and stuff]]''!''"); add("selser", "2. Interaction of linktrail and template encapsulation [1]", "{{echo|Some [[Fool]]}}\n"); add("selser", "Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved [3,2,[[4,2]],3,4,3,2]", "175ks3d\n\n[[Foo|173exoy148kdsg''bar'']]\n\n6xbp9z\n\npyd6c8\n\n[http://wp.org ''foo'']"); add("selser", "Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved [0,3,1,0,1,0,1]", "[[Foo| bar]]\n\n[[Foo| ''bar'']]\n\n[http://wp.org foo]\n\n[http://wp.org ''foo'']"); diff --git a/tests/parserTests.txt b/tests/parserTests.txt index f6445bd..73762dd 100644 --- a/tests/parserTests.txt +++ b/tests/parserTests.txt @@ -5306,7 +5306,7 @@ <p><a rel="nofollow" class="external text" href="http://example.com"></a><a href="/index.php?title=Wikilink&action=edit&redlink=1" class="new" title="Wikilink (page does not exist)">wikilink</a><a rel="nofollow" class="external text" href="http://example.com"> embedded in ext link</a> </p> !! html/parsoid -<p><a rel="mw:ExtLink" href="http://example.com"></a><a rel="mw:WikiLink" href="./Wikilink" title="Wikilink">wikilink</a><span> embedded in ext link</span></p> +<p><a rel="mw:ExtLink" href="http://example.com"></a><a rel="mw:WikiLink" href="./Wikilink" title="Wikilink">wikilink</a> embedded in ext link</p> !! end !! test -- To view, visit https://gerrit.wikimedia.org/r/371726 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iccdbacc06d91eaaba50df0cda0698cb9156b5762 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/services/parsoid Gerrit-Branch: master Gerrit-Owner: Arlolra <abrea...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits