mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/DiscussionTools
synced 2024-12-01 11:36:38 +00:00
c1f4668806
The PHP DOM extension measures lengths and offsets in Unicode codepoints. Our PHP code used UTF-8 bytes, causing some offsets to be slightly off. Now it mostly uses Unicode codepoints as well (we're forced to use bytes in a few places, because preg_match returns offsets in bytes). In practice, this had no visible effect to the user. It caused the markers `<span data-mw-comment-end="..."></span>` to be placed at the end of their container instead of the correct position when the timestamp contained multibyte characters (e.g. "ź" in Polish); but the correct position is usually at the end of the container anyway. In the test cases, the only difference is placing these markers before a trailing line break inside `<p>...</p>` tags rather than before it. The patch also accidentally fixes another bug, where element nodes with no children (mostly <img>) were incorrectly excluded when calling cloneContents(), because they were treated as if they were text nodes. Change-Id: Iccdccf1078598f4b62cab96225e9c85a4c0e93ee |
||
---|---|---|
.. | ||
ar-nbsp-timezone-oldparser | ||
ar-nbsp-timezone-parsoid | ||
ar-no-paragraph-oldparser | ||
ar-no-paragraph-parsoid | ||
ckb-big-oldparser | ||
ckb-big-parsoid | ||
double-signature1 | ||
double-signature2 | ||
dt-tags-oldparser | ||
dt-tags-parsoid | ||
en-big-oldparser | ||
en-big-parsoid | ||
en-bigafd-parsoid | ||
EventDispatcher | ||
fallback-encoding-link | ||
for-parser-cache | ||
fr-unsigned-oldparser | ||
fr-unsigned-parsoid | ||
it-unsigned-oldparser | ||
it-unsigned-parsoid | ||
linearWalk | ||
lrm-signature | ||
mixed-indentation | ||
no-heading | ||
parsoid-sections | ||
pl-big-oldparser | ||
pl-big-parsoid | ||
signatures-comments | ||
signatures-funny | ||
split-list | ||
split-list2 | ||
sr-ec | ||
sr-el | ||
transclusions | ||
unclosed-font | ||
wrappers | ||
appendSignature.json | ||
authors.json | ||
comments.json | ||
datatest-ckb.json | ||
datatest-en.json | ||
datatest-sr.json | ||
datatest-th.json | ||
formattedreply.json | ||
getHTML.json | ||
getText.json | ||
isHtmlSigned.json | ||
isWikitextSigned.json | ||
linearWalk.json | ||
modified.json | ||
README.txt | ||
reply.json | ||
sanitize-wikitext-linebreaks.json | ||
timestamp-parser-dst.json | ||
timestamp-parser.json | ||
timestamp-regex.json | ||
transcluded.json | ||
unwrap.json |
To update the expected outputs, run the PHP tests with the environment variable "DISCUSSIONTOOLS_OVERWRITE_TESTS" set to any value, e.g.: DISCUSSIONTOOLS_OVERWRITE_TESTS=1 php tests/phpunit/phpunit.php extensions/DiscussionTools/tests/phpunit/ The input HTML files were saved from: pl-big: https://pl.wikipedia.org/w/index.php?action=render&title=Wikipedia:Kawiarenka/Artyku%C5%82y_dyskusja/Archiwum/2018-pa%C5%BAdziernik&oldid=55171451 https://pl.wikipedia.org/api/rest_v1/page/html/Wikipedia%3AKawiarenka%2FArtyku%C5%82y_dyskusja%2FArchiwum%2F2018-pa%C5%BAdziernik/55171451 en-big: https://en.wikipedia.org/w/index.php?action=render&title=Wikipedia:Village_pump_(technical)/Archive_175&oldid=913983958 https://en.wikipedia.org/api/rest_v1/page/html/Wikipedia%3AVillage_pump_(technical)%2FArchive_175/913983958 ckb-big: https://ckb.wikipedia.org/w/index.php?title=ویکیپیدیا:دیوەخان_(پێشنیارەکان)&oldid=638545&action=render https://ckb.wikipedia.org/api/rest_v1/page/html/ویکیپیدیا%3Aدیوەخان_(پێشنیارەکان)/638545 en-bigafd: https://en.wikipedia.org/api/rest_v1/page/html/Wikipedia%3AArticles_for_deletion%2FLog%2F2020_March_7 ar-no-paragraph: https://ar.wikipedia.org/w/index.php?action=render&title=نقاش_المستخدم:Khaled&oldid=45576943 https://ar.wikipedia.org/api/rest_v1/page/html/نقاش_المستخدم%3AKhaled/45576943 ar-nbsp-timezone: https://ar.wikipedia.org/wiki/ويكيبيديا:إخفاء_أرقام_الآي_بي?oldid=46583196&action=render https://ar.wikipedia.org/api/rest_v1/page/html/ويكيبيديا%3Aإخفاء_أرقام_الآي_بي/46583196 fr-unsigned: https://fr.wikipedia.org/w/index.php?title=Discussion:Le_Monde&oldid=170426593&action=render https://fr.wikipedia.org/api/rest_v1/page/html/Discussion%3ALe_Monde/170426593 it-unsigned: https://it.wikipedia.org/w/index.php?title=Aiuto:Sportello_informazioni&oldid=116856029&action=render https://it.wikipedia.org/api/rest_v1/page/html/Aiuto%3ASportello_informazioni/116856029 sr-ec: https://sr.wikipedia.org/w/index.php?title=Википедија:Трг/Архива/Техника/35&variant=sr-ec&action=render sr-el: https://sr.wikipedia.org/w/index.php?title=Википедија:Трг/Архива/Техника/35&variant=sr-el&action=render unclosed-font: https://nl.wikipedia.org/w/index.php?title=Overleg_gebruiker:RYasmeen_(WMF)&oldid=57970619&action=render double-signature1: https://en.wikipedia.org/w/index.php?title=Wikipedia:Requests_for_comment/User_names&oldid=1002108637&action=render double-signature2: https://en.wikipedia.org/w/index.php?title=Wikipedia:Articles_for_deletion/Equal_Education&oldid=1009060583&action=render Text is available under the Creative Commons Attribution-ShareAlike License. See these pages for attribution.