jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/334171 )
Change subject: Sync parserTests with core. ...................................................................... Sync parserTests with core. New failing parser tests, added to blacklist: * T156308: We don't properly strip whitespace around interlanguage links. * T156309: We don't support {{PAGELANGUAGE}}. (We actually need to have the page language available for LanguageConverter.) * T43716: LanguageConverter syntax in attributes. There were also two changes to the html2html stored in the blacklist, caused by a change in the localized name of the image thumbnail attribute. This is a side-effect of Id36550e864acf0df472b6a6a12f750eb28cbdd1d. Change-Id: I09b794af5a8eb83b99f90f128f1c67efabec8576 --- M tests/parserTests-blacklist.js M tests/parserTests.txt M tools/fetch-parserTests.txt.js 3 files changed, 74 insertions(+), 7 deletions(-) Approvals: jenkins-bot: Verified Arlolra: Looks good to me, approved diff --git a/tests/parserTests-blacklist.js b/tests/parserTests-blacklist.js index 29310ae..b9eb71f 100644 --- a/tests/parserTests-blacklist.js +++ b/tests/parserTests-blacklist.js @@ -58,6 +58,7 @@ 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]}'/>"); +add("wt2html", "Escaping of interlanguage links (T129218, T156308)", "<p data-parsoid='{\"dsr\":[0,51,0,0]}'>Blah blah blah\n<a rel=\"mw:ExtLink\" href=\"http://es.wikipedia.org/wiki/Spanish\" title=\"es:Spanish\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"http://es.wikipedia.org/wiki/Spanish\"},\"sa\":{\"href\":\":es:Spanish\"},\"isIW\":true,\"dsr\":[15,30,2,2]}'>es:Spanish</a>\n<a rel=\"mw:WikiLink\" href=\"./Zh_:_Chinese\" title=\"Zh : Chinese\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./Zh_:_Chinese\"},\"sa\":{\"href\":\" : zh : Chinese \"},\"dsr\":[31,51,2,2]}'> : zh : Chinese </a></p>"); add("wt2html", "Space and question mark encoding in interlanguage links (T95473)", "<p data-parsoid='{\"dsr\":[0,14,0,0]}'>Blah blah blah</p>\n<link rel=\"mw:PageProp/Language\" href=\"http://es.wikipedia.org/wiki/Foo%20bar?\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"http://es.wikipedia.org/wiki/Foo%20bar?\"},\"sa\":{\"href\":\"es:Foo bar?\"},\"dsr\":[15,30,null,null]}'/>"); add("wt2html", "2. Lists with start-of-line-transparent tokens before bullets: Template close", "<ul about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"dsr\":[0,18,0,0],\"firstWikitextNode\":\"UL\",\"pi\":[[{\"k\":\"1\"}]]}' data-mw='{\"parts\":[\"*foo \",{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"bar\\n\"}},\"i\":0}}]}'><li>foo bar</li></ul><span about=\"#mwt1\">\n</span><p data-parsoid='{\"dsr\":[18,22,0,0]}'>*baz</p>"); add("wt2html", "Multiple list tags generated by templates", "<li about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[0,44,null,null],\"pi\":[[{\"k\":\"1\"}],[{\"k\":\"1\"}],[{\"k\":\"1\"}]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"<li>\"}},\"i\":0}},\"a\\n\",{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"<li>\"}},\"i\":1}},\"b\\n\",{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"<li>\"}},\"i\":2}},\"c\"]}'>a\n</li><li about=\"#mwt1\">b\n</li><li about=\"#mwt1\" data-parsoid='{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[null,44,null,0]}'>c</li>"); @@ -93,6 +94,8 @@ add("wt2html", "Magic Word: {{REVISIONID}}", "<p data-parsoid='{\"dsr\":[0,14,0,0]}'><span typeof=\"mw:Transclusion mw:Placeholder\" about=\"#mwt1\" data-parsoid='{\"dsr\":[0,14,null,null],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"REVISIONID\",\"href\":\"./Template:REVISIONID\"},\"params\":{},\"i\":0}}]}'>Warning: Page/template fetching disabled, and no cache for Template:REVISIONID</span></p>"); add("wt2html", "Magic Word: {{SCRIPTPATH}}", "<p about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"dsr\":[0,14,0,0],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"SCRIPTPATH\",\"function\":\"scriptpath\"},\"params\":{},\"i\":0}}]}'>/</p>"); add("wt2html", "Magic Word: {{STYLEPATH}}", "<p data-parsoid='{\"dsr\":[0,13,0,0]}'><span typeof=\"mw:Transclusion mw:Placeholder\" about=\"#mwt1\" data-parsoid='{\"dsr\":[0,13,null,null],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"STYLEPATH\",\"href\":\"./Template:STYLEPATH\"},\"params\":{},\"i\":0}}]}'>Warning: Page/template fetching disabled, and no cache for Template:STYLEPATH</span></p>"); +add("wt2html", "Magic Word: {{PAGELANGUAGE}}", "<p data-parsoid='{\"dsr\":[0,16,0,0]}'><span typeof=\"mw:Transclusion mw:Placeholder\" about=\"#mwt1\" data-parsoid='{\"dsr\":[0,16,null,null],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"PAGELANGUAGE\",\"href\":\"./Modèle:PAGELANGUAGE\"},\"params\":{},\"i\":0}}]}'>Warning: Page/template fetching disabled, and no cache for Modèle:PAGELANGUAGE</span></p>"); +add("wt2html", "Magic Word: {{PAGELANGUAGE}} on a page with no explicitly set language", "<p data-parsoid='{\"dsr\":[0,16,0,0]}'><span typeof=\"mw:Transclusion mw:Placeholder\" about=\"#mwt1\" data-parsoid='{\"dsr\":[0,16,null,null],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"PAGELANGUAGE\",\"href\":\"./Template:PAGELANGUAGE\"},\"params\":{},\"i\":0}}]}'>Warning: Page/template fetching disabled, and no cache for Template:PAGELANGUAGE</span></p>"); add("wt2html", "Case-sensitive magic words, when cased differently, should just be template transclusions", "<p data-parsoid='{\"dsr\":[0,63,0,0]}'><span typeof=\"mw:Transclusion mw:Placeholder\" about=\"#mwt1\" data-parsoid='{\"dsr\":[0,16,null,null],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"CurrentMonth\",\"href\":\"./Template:CurrentMonth\"},\"params\":{},\"i\":0}}]}'>Warning: Page/template fetching disabled, and no cache for Template:CurrentMonth</span>\n<span typeof=\"mw:Transclusion mw:Placeholder\" about=\"#mwt2\" data-parsoid='{\"dsr\":[17,31,null,null],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"currentday\",\"href\":\"./Template:Currentday\"},\"params\":{},\"i\":0}}]}'>Warning: Page/template fetching disabled, and no cache for Template:Currentday</span>\n<span typeof=\"mw:Transclusion mw:Placeholder\" about=\"#mwt3\" data-parsoid='{\"dsr\":[32,47,null,null],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"cURreNTweEK\",\"href\":\"./Template:CURreNTweEK\"},\"params\":{},\"i\":0}}]}'>Warning: Page/template fetching disabled, and no cache for Template:CURreNTweEK</span>\n<span typeof=\"mw:Transclusion mw:Placeholder\" about=\"#mwt4\" data-parsoid='{\"dsr\":[48,63,null,null],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"currentHour\",\"href\":\"./Template:CurrentHour\"},\"params\":{},\"i\":0}}]}'>Warning: Page/template fetching disabled, and no cache for Template:CurrentHour</span></p>"); add("wt2html", "Parsoid: Template-generated DISPLAYTITLE", "<meta property=\"mw:PageProp/displaytitle\" content=\"Foo\" about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"dsr\":[0,29,null,null],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"{{echo|DISPLAYTITLE}}:Foo\",\"href\":\"./Foo\"},\"params\":{},\"i\":0}}]}'/>"); add("wt2html", "Namespace 1 {{ns:1}}", "<p about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"dsr\":[0,8,0,0],\"pi\":[[]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"ns:1\",\"function\":\"ns\"},\"params\":{},\"i\":0}}]}'>1</p>"); @@ -214,6 +217,7 @@ add("wt2html", "Unidirectional converter rule entries with an empty \"from\" string should be ignored (T53551)", "<p data-parsoid='{\"dsr\":[0,24,0,0]}'>-{H|=>zh-cn:foo;}-foobar</p>"); add("wt2html", "Empty converter rule entries shouldn't be inserted into the conversion table (T53551)", "<p data-parsoid='{\"dsr\":[0,12,0,0]}'>-{H|}-foobar</p>"); add("wt2html", "Nested using of manual convert syntax", "<p data-parsoid='{\"dsr\":[0,113,0,0]}'>Nested: -{zh-hans:Hi -{zh-cn:China;zh-sg:Singapore;}-;zh-hant:Hello -{zh-tw:Taiwan;zh-hk:H-{ong}- K-{}-ong;}-;}-!</p>"); +add("wt2html", "HTML markups with conversion syntax in attribs, nested in other conversion blocks", "<p data-parsoid='{\"dsr\":[0,51,0,0]}'>-{zh;zh-hans;zh-hant|<span title=\"-{X}-\" data-parsoid='{\"stx\":\"html\",\"dsr\":[21,49,20,7]}'>A</span>}-</p>"); add("wt2html", "Proper conversion of text in external links", "<p data-parsoid='{\"dsr\":[0,269,0,0]}'><a rel=\"mw:ExtLink\" href=\"http://www.google.com\" data-parsoid='{\"stx\":\"url\",\"dsr\":[0,21,0,0]}'>http://www.google.com</a>\n<a rel=\"mw:ExtLink\" href=\"gopher://www.google.com\" data-parsoid='{\"stx\":\"url\",\"dsr\":[22,45,0,0]}'>gopher://www.google.com</a>\n<a rel=\"mw:ExtLink\" href=\"http://www.google.com\" data-parsoid='{\"targetOff\":69,\"contentOffsets\":[69,90],\"dsr\":[46,91,23,1]}'>http://www.google.com</a>\n<a rel=\"mw:ExtLink\" href=\"gopher://www.google.com\" data-parsoid='{\"targetOff\":117,\"contentOffsets\":[117,140],\"dsr\":[92,141,25,1]}'>gopher://www.google.com</a>\n<a rel=\"mw:ExtLink\" href=\"https://www.google.com\" data-parsoid='{\"targetOff\":166,\"contentOffsets\":[166,186],\"dsr\":[142,187,24,1]}'>irc://www.google.com</a>\n<a rel=\"mw:ExtLink\" href=\"ftp://www.google.com\" data-parsoid='{\"targetOff\":210,\"contentOffsets\":[210,234],\"dsr\":[188,235,22,1]}'>www.google.com/ftp://dir</a>\n<a rel=\"mw:ExtLink\" href=\"//www.google.com\" data-parsoid='{\"targetOff\":254,\"contentOffsets\":[254,268],\"dsr\":[236,269,18,1]}'>www.google.com</a></p>"); add("wt2html", "Do not convert roman numbers to language variants", "<p data-parsoid='{\"dsr\":[0,18,0,0]}'>Fridrih IV je car.</p>"); add("wt2html", "Don't convert raw rule \"-{R|=>}-\" to \"=>\"", "<p data-parsoid='{\"dsr\":[0,11,0,0]}'>-{R|=<span typeof=\"mw:Entity\" data-parsoid='{\"src\":\"&gt;\",\"srcContent\":\">\",\"dsr\":[5,9,null,null]}'>></span>}-</p>"); @@ -539,8 +543,8 @@ add("html2html", "Partly disable title conversion if variant == main language code", "<p data-parsoid='{\"dsr\":[0,2,0,0]}'>ZH</p>\n"); add("html2html", "Partly disable title conversion if variant == main language code, more", "<p data-parsoid='{\"dsr\":[0,2,0,0]}'>ZH</p>\n"); add("html2html", "Don't break link parsing if language converter markup is in the caption.", "<p data-parsoid='{\"dsr\":[0,28,0,0]}'><a rel=\"mw:WikiLink\" href=\"./Wiki/Main_Page\" title=\"Wiki/Main Page\" data-parsoid='{\"stx\":\"piped\",\"a\":{\"href\":\"./Wiki/Main_Page\"},\"sa\":{\"href\":\"wiki/Main Page\"},\"dsr\":[0,28,17,2]}'>main page</a></p>\n"); -add("html2html", "T146305: Don't break image parsing if language converter markup is in the caption.", "<figure class=\"mw-default-size\" typeof=\"mw:Image/Thumb\" data-parsoid='{\"optList\":[{\"ck\":\"thumbnail\",\"ak\":\"thumb\"},{\"ck\":\"caption\",\"ak\":\"<span></span>\"}],\"dsr\":[0,43,2,2]}'><a href=\"./Датотека:Foobar.jpg\" data-parsoid='{\"a\":{\"href\":\"./Датотека:Foobar.jpg\"},\"sa\":{},\"dsr\":[2,null,null,null]}'><img resource=\"./Датотека:Foobar.jpg\" src=\"//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg\" data-file-width=\"1941\" data-file-height=\"220\" data-file-type=\"bitmap\" height=\"25\" width=\"220\" data-parsoid='{\"a\":{\"resource\":\"./Датотека:Foobar.jpg\",\"height\":\"25\",\"width\":\"220\"},\"sa\":{\"resource\":\"Датотека:Foobar.jpg\"}}'/></a><figcaption data-parsoid='{\"dsr\":[null,41,null,null]}'><span data-parsoid='{\"stx\":\"html\",\"dsr\":[28,41,6,7]}'></span></figcaption></figure>\n"); -add("html2html", "T146305: Don't break image parsing if nested language converter markup is in the caption.", "<figure class=\"mw-default-size\" typeof=\"mw:Image/Thumb\" data-parsoid='{\"optList\":[{\"ck\":\"thumbnail\",\"ak\":\"thumb\"},{\"ck\":\"caption\",\"ak\":\"<span></span>\"}],\"dsr\":[0,39,2,2]}'><a href=\"./File:Foobar.jpg\" data-parsoid='{\"a\":{\"href\":\"./File:Foobar.jpg\"},\"sa\":{},\"dsr\":[2,null,null,null]}'><img resource=\"./File:Foobar.jpg\" src=\"//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg\" data-file-width=\"1941\" data-file-height=\"220\" data-file-type=\"bitmap\" height=\"25\" width=\"220\" data-parsoid='{\"a\":{\"resource\":\"./File:Foobar.jpg\",\"height\":\"25\",\"width\":\"220\"},\"sa\":{\"resource\":\"File:Foobar.jpg\"}}'/></a><figcaption data-parsoid='{\"dsr\":[null,37,null,null]}'><span data-parsoid='{\"stx\":\"html\",\"dsr\":[24,37,6,7]}'></span></figcaption></figure>\n"); +add("html2html", "T146305: Don't break image parsing if language converter markup is in the caption.", "<figure class=\"mw-default-size\" typeof=\"mw:Image/Thumb\" data-parsoid='{\"optList\":[{\"ck\":\"thumbnail\",\"ak\":\"мини\"},{\"ck\":\"caption\",\"ak\":\"<span></span>\"}],\"dsr\":[0,42,2,2]}'><a href=\"./Датотека:Foobar.jpg\" data-parsoid='{\"a\":{\"href\":\"./Датотека:Foobar.jpg\"},\"sa\":{},\"dsr\":[2,null,null,null]}'><img resource=\"./Датотека:Foobar.jpg\" src=\"//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg\" data-file-width=\"1941\" data-file-height=\"220\" data-file-type=\"bitmap\" height=\"25\" width=\"220\" data-parsoid='{\"a\":{\"resource\":\"./Датотека:Foobar.jpg\",\"height\":\"25\",\"width\":\"220\"},\"sa\":{\"resource\":\"Датотека:Foobar.jpg\"}}'/></a><figcaption data-parsoid='{\"dsr\":[null,40,null,null]}'><span data-parsoid='{\"stx\":\"html\",\"dsr\":[27,40,6,7]}'></span></figcaption></figure>\n"); +add("html2html", "T146305: Don't break image parsing if nested language converter markup is in the caption.", "<figure class=\"mw-default-size\" typeof=\"mw:Image/Thumb\" data-parsoid='{\"optList\":[{\"ck\":\"thumbnail\",\"ak\":\"缩略图\"},{\"ck\":\"caption\",\"ak\":\"<span></span>\"}],\"dsr\":[0,37,2,2]}'><a href=\"./File:Foobar.jpg\" data-parsoid='{\"a\":{\"href\":\"./File:Foobar.jpg\"},\"sa\":{},\"dsr\":[2,null,null,null]}'><img resource=\"./File:Foobar.jpg\" src=\"//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg\" data-file-width=\"1941\" data-file-height=\"220\" data-file-type=\"bitmap\" height=\"25\" width=\"220\" data-parsoid='{\"a\":{\"resource\":\"./File:Foobar.jpg\",\"height\":\"25\",\"width\":\"220\"},\"sa\":{\"resource\":\"File:Foobar.jpg\"}}'/></a><figcaption data-parsoid='{\"dsr\":[null,35,null,null]}'><span data-parsoid='{\"stx\":\"html\",\"dsr\":[22,35,6,7]}'></span></figcaption></figure>\n"); add("html2html", "Don't break gallery if language converter markup is inside.", "<p data-parsoid='{\"dsr\":[0,4,0,0]}'>\t\t* </p><div style=\"width: 155px\" data-parsoid='{\"stx\":\"html\",\"dsr\":[4,295,26,6]}'> \t\t\t<div class=\"thumb\" style=\"width: 150px;\" data-parsoid='{\"stx\":\"html\",\"dsr\":[34,182,41,6]}'><div style=\"margin:68px auto;\" data-parsoid='{\"stx\":\"html\",\"dsr\":[75,176,31,6]}'><img src=\"http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg\" alt=\"120px-Foobar.jpg\" rel=\"mw:externalImage\" data-parsoid='{\"dsr\":[106,170,null,null]}'/></div></div> \t\t\t<div class=\"gallerytext\" data-parsoid='{\"stx\":\"html\",\"dsr\":[186,286,25,6]}'> <img src=\"http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg\" alt=\"20px-Foobar.jpg\" rel=\"mw:externalImage\" data-parsoid='{\"dsr\":[212,275,null,null]}'/> \t\t\t</div> \t\t</div>\n<p data-parsoid='{\"dsr\":[296,300,0,0]}'>\t\t* </p><div style=\"width: 155px\" data-parsoid='{\"stx\":\"html\",\"dsr\":[300,551,26,6]}'> \t\t\t<div class=\"thumb\" style=\"width: 150px;\" data-parsoid='{\"stx\":\"html\",\"dsr\":[330,478,41,6]}'><div style=\"margin:68px auto;\" data-parsoid='{\"stx\":\"html\",\"dsr\":[371,472,31,6]}'><img src=\"http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg\" alt=\"120px-Foobar.jpg\" rel=\"mw:externalImage\" data-parsoid='{\"dsr\":[402,466,null,null]}'/></div></div> \t\t\t<div class=\"gallerytext\" data-parsoid='{\"stx\":\"html\",\"dsr\":[482,542,25,6]}'> This is a test template \t\t\t</div> \t\t</div>\n"); add("html2html", "Free external link invading image caption", "<div class=\"thumb tright\" data-parsoid='{\"stx\":\"html\",\"dsr\":[0,236,26,6]}'><div class=\"thumbinner\" style=\"width:182px;\" data-parsoid='{\"stx\":\"html\",\"dsr\":[26,230,45,6]}'><img src=\"http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg\" alt=\"180px-Foobar.jpg\" rel=\"mw:externalImage\" data-parsoid='{\"dsr\":[71,135,null,null]}'/> <div class=\"thumbcaption\" data-parsoid='{\"stx\":\"html\",\"dsr\":[137,224,26,6]}'><div class=\"magnify\" data-parsoid='{\"stx\":\"html\",\"dsr\":[163,213,21,6]}'>[/wiki/File:Foobar.jpg]</div>hello</div></div></div>\n"); add("html2html", "Bad images - basic functionality", "<p data-parsoid='{\"dsr\":[0,16,0,0]}'><span class=\"mw-default-size\" typeof=\"mw:Error mw:Image\" data-parsoid='{\"optList\":[],\"dsr\":[0,16,null,null]}' data-mw='{\"errors\":[{\"key\":\"missing-image\",\"message\":\"This image does not exist.\"}]}'><a href=\"./File:Bad.jpg\" data-parsoid='{\"a\":{\"href\":\"./File:Bad.jpg\"},\"sa\":{}}'><img resource=\"./File:Bad.jpg\" src=\"./Special:FilePath/Bad.jpg\" height=\"220\" width=\"220\" data-parsoid='{\"a\":{\"resource\":\"./File:Bad.jpg\",\"height\":\"220\",\"width\":\"220\"},\"sa\":{\"resource\":\"File:Bad.jpg\"}}'/></a></span></p>\n"); @@ -756,6 +760,7 @@ add("html2wt", "Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved", "[[wiki/Foo| bar]]\n\n[[wiki/Foo| ''bar'']]\n\n[http://wp.org foo]\n\n[http://wp.org ''foo'']\n"); add("html2wt", "Interwiki link encoding conversion (bug 1636)", "* [[wikipedia:ro:Olteniţa|Wikipedia:ro:Olteniţa]]\n* [[wikipedia:ro:Olteniţa|Wikipedia:ro:Olteniţa]]\n"); add("html2wt", "Interwiki link with fragment (bug 2130)", "[[meatball:SoftSecurity#foo|MeatBall:SoftSecurity#foo]]\n"); +add("html2wt", "Escaping of interlanguage links (T129218, T156308)", "Blah blah blah\n[[:es:Spanish]]\n[[:zh:Chinese| zh : Chinese ]]\n"); add("html2wt", "Parsoid-specific test: Wikilinks with should RT properly", "[/index.php?title=WW_II&action=edit&redlink=1 WW II]\n"); add("html2wt", "<br> to <br />", "1\n2\n3\n"); add("html2wt", "Incorrecly removing closing slashes from correctly formed XHTML", "\n"); @@ -835,6 +840,8 @@ add("html2wt", "Magic Word: {{SERVER}}", "http://example.org\n"); add("html2wt", "Magic Word: {{SERVERNAME}}", "example.org\n"); add("html2wt", "Magic Word: {{SITENAME}}", "MediaWiki\n"); +add("html2wt", "Magic Word: {{PAGELANGUAGE}}", "fr\n"); +add("html2wt", "Magic Word: {{PAGELANGUAGE}} on a page with no explicitly set language", "en\n"); add("html2wt", "Case-sensitive magic words, when cased differently, should just be template transclusions", "[/index.php?title=Template:CurrentMonth&action=edit&redlink=1 Template:CurrentMonth]\n[/index.php?title=Template:Currentday&action=edit&redlink=1 Template:Currentday]\n[/index.php?title=Template:CURreNTweEK&action=edit&redlink=1 Template:CURreNTweEK]\n[/index.php?title=Template:CurrentHour&action=edit&redlink=1 Template:CurrentHour]\n"); add("html2wt", "Case-insensitive magic words should still work with weird casing.", "example.org\naOEU\nAoeu\nhttp://example.org\n"); add("html2wt", "Namespace 1 {{ns:1}}", "Talk\n"); @@ -1121,11 +1128,12 @@ add("html2wt", "Unidirectional converter rule entries with an empty \"from\" string should be ignored (T53551)", "foobar\n"); add("html2wt", "Empty converter rule entries shouldn't be inserted into the conversion table (T53551)", "foobar\n"); add("html2wt", "Nested using of manual convert syntax", "Nested: Hello Hong Kong!\n"); +add("html2wt", "HTML markups with conversion syntax in attribs, nested in other conversion blocks", "<span title=\"X\">A</span>\n"); add("html2wt", "Do not convert roman numbers to language variants", "Фридрих IV је цар.\n"); add("html2wt", "Don't convert raw rule \"-{R|=>}-\" to \"=>\"", "=>\n"); add("html2wt", "Don't break link parsing if language converter markup is in the caption.", "[[wiki/Main Page|main page]]\n"); -add("html2wt", "T146305: Don't break image parsing if language converter markup is in the caption.", "[[Датотека:Foobar.jpg|thumb|<span></span>]]\n"); -add("html2wt", "T146305: Don't break image parsing if nested language converter markup is in the caption.", "[[File:Foobar.jpg|thumb|<span></span>]]\n"); +add("html2wt", "T146305: Don't break image parsing if language converter markup is in the caption.", "[[Датотека:Foobar.jpg|мини|<span></span>]]\n"); +add("html2wt", "T146305: Don't break image parsing if nested language converter markup is in the caption.", "[[File:Foobar.jpg|缩略图|<span></span>]]\n"); add("html2wt", "Don't break gallery if language converter markup is inside.", "\t\t* <div style=\"width: 155px\"> \t\t\t<div class=\"thumb\" style=\"width: 150px;\"><div style=\"margin:68px auto;\">http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg</div></div> \t\t\t<div class=\"gallerytext\"> http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg \t\t\t</div> \t\t</div>\n\t\t* <div style=\"width: 155px\"> \t\t\t<div class=\"thumb\" style=\"width: 150px;\"><div style=\"margin:68px auto;\">http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg</div></div> \t\t\t<div class=\"gallerytext\"> This is a test template \t\t\t</div> \t\t</div>\n"); add("html2wt", "Don't break list handling if language converter markup is in the item.", "; AAA\n"); add("html2wt", "T153140: Don't break table handling if language converter markup is in the cell.", "{|\n| B\n|}\n"); diff --git a/tests/parserTests.txt b/tests/parserTests.txt index 52209d2..8d2118e 100644 --- a/tests/parserTests.txt +++ b/tests/parserTests.txt @@ -8600,6 +8600,23 @@ <link rel="mw:PageProp/Language" href="http://es.wikipedia.org/wiki/Foo_bar" /> !! end +!! test +Escaping of interlanguage links (T129218, T156308) +!! wikitext +Blah blah blah +[[:es:Spanish]] +[[ : zh : Chinese ]] +!! html/php +<p>Blah blah blah +<a href="http://es.wikipedia.org/wiki/Spanish" class="extiw" title="es:Spanish">es:Spanish</a> +<a href="http://zh.wikipedia.org/wiki/Chinese" class="extiw" title="zh:Chinese"> zh : Chinese </a> +</p> +!! html/parsoid +<p>Blah blah blah +<a rel="mw:ExtLink" href="http://es.wikipedia.org/wiki/Spanish" title="es:Spanish">es:Spanish</a> +<a rel="mw:ExtLink" href="http://zh.wikipedia.org/wiki/Chinese" title="zh:Chinese"> zh : Chinese </a></p> +!! end + ## parsoid html2wt will normalize the space to _ !! test Space and question mark encoding in interlanguage links (T95473) @@ -10296,6 +10313,26 @@ {{SITENAME}} !! html <p>MediaWiki +</p> +!! end + +!! test +Magic Word: {{PAGELANGUAGE}} +!! options +language=fr +!! wikitext +{{PAGELANGUAGE}} +!! html +<p>fr +</p> +!! end + +!! test +Magic Word: {{PAGELANGUAGE}} on a page with no explicitly set language +!! wikitext +{{PAGELANGUAGE}} +!! html +<p>en </p> !! end @@ -16057,7 +16094,7 @@ !! wikitext <div title="{}">Foo</div> !! html/php -<div title="{}">Foo</div> +<div title="{}">Foo</div> !! html/parsoid <div title="{}">Foo</div> @@ -20674,6 +20711,28 @@ </p> !! end +!! test +HTML markups with conversion syntax in attribs, nested in other conversion blocks +!! options +language=zh variant=zh-cn +!! wikitext +-{zh;zh-hans;zh-hant|<span title="-{X}-">A</span>}- +!! html +<p><span title="X">A</span> +</p> +!! end + +!! test +HTML markups with conversion syntax in attribs, nested in other conversion blocks (not working yet) +!! options +language=zh variant=zh-cn disabled +!! wikitext +-{<span title="-{X}-">A</span>}- +!! html +<p><span title="X">A</span> +</p> +!! end + # Since Parsoid is starting to emit canonical wikitext for links, # [http://example.com http://example.com] will not RT back to that # form anymore. diff --git a/tools/fetch-parserTests.txt.js b/tools/fetch-parserTests.txt.js index f801139..90f971d 100755 --- a/tools/fetch-parserTests.txt.js +++ b/tools/fetch-parserTests.txt.js @@ -12,9 +12,9 @@ // and update these hashes automatically. // // You can use 'sha1sum -b tests/parser/parserTests.txt' to compute this value: -var expectedSHA1 = "d358d2a1401d9d9ba06099d1f8862282acf00b87"; +var expectedSHA1 = "e356e32b279671d5c662aa4409d64425c14adb6f"; // git log --pretty=oneline -1 tests/parser/parserTests.txt -var latestCommit = "6b97c822726c98f9b3cbc821e631dc18e52489d2"; +var latestCommit = "4a07505402a56a32be23a570f4bd1fe33dd542a9"; var fs = require('fs'); var path = require('path'); -- To view, visit https://gerrit.wikimedia.org/r/334171 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I09b794af5a8eb83b99f90f128f1c67efabec8576 Gerrit-PatchSet: 5 Gerrit-Project: mediawiki/services/parsoid Gerrit-Branch: master Gerrit-Owner: C. Scott Ananian <canan...@wikimedia.org> Gerrit-Reviewer: Arlolra <abrea...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits