Commit graph

4738 commits

Author SHA1 Message Date
Arlo Breault 5c7c37e0c9 Reserialize processed refs if content differs
Follow up to 47dd898

Fixes the test case found in rt,
php bin/parse.php --domain ceb.wikipedia.org --pageName "Martin Van Buren" --offsetType ucs2 < /dev/null

The offsetType is necessary so that the ConvertOffsets pass runs.  The
crasher here is because the embedded html still contains the sealed ref
fragments because we've stored the unprocessed html.

Change-Id: Ic1e1c3e54433bf6d7574420c2eade1349261de0b
2021-08-27 15:00:37 -04:00
Subramanya Sastry 0d26fd19d5 Cite: Rename functions pushing/popping embedded content flags
Change-Id: Ie8736fcc139caba467209b7ba57daaa8f53bc18a
2021-08-26 11:43:52 -05:00
Arlo Breault 47dd8989a7 Don't process ref-in-ref as embedded, unless content differs
Restores linkbacks for ref-in-ref.

Follow up to 568034a where it's noted that it's fine to maintain
linkbacks for ref-in-ref, as long as the ref isn't a named ref that's
trying to redefine the contents for that name, in which case we embed
the contents.

A test case for this can be,

```
<ref name="hiho">off to work</ref>
{{#tag:ref|<i>we go <ref name="ohno">ohno</ref></i>|name="hiho"}}
{{#tag:ref|<i>we go <ref name="ohno2">ohno2</ref></i>|name="test"}}
```

The linkback to #cite_ref-ohno2_3-0 is present while continuing to
suppress the dangling linkback to #cite_ref-ohno_2-0, since that's in
embedded content.  On master, both linkbacks are unnecessarily
suppressed.

Bug: T289331
Change-Id: Ifcf7464e86a4408f5dd9e2fd6d3aa47a0670ca49
2021-08-26 16:41:02 +00:00
Arlo Breault d0e1637d22 Move content differ check up higher
This will be helpful in a subsequent patch where we make use of that
data while processing refs in refs.  Content differing implies that
we'll be embedding it for roundtripping, rather than putting in the dom.

Change-Id: I7bd1d4c503fc58f862960bec82ca514fc29d7eff
2021-08-26 16:38:58 +00:00
Arlo Breault 50dfe518cc Only call ReferencesData::add when adding
This moves determining if we already have a reference created for a
named ref outside of that function, which is helpful for making use of
the cached html for that ref earlier.

Change-Id: Ie416bd95b980f9f95111d7e420945f40e2ada747
2021-08-26 16:37:36 +00:00
Translation updater bot b16f0d9e68 Localisation updates from https://translatewiki.net.
Change-Id: I99a39c2d7f759d03aaa890fa1365f7deab5c0d6f
2021-08-26 08:35:40 +02:00
Bartosz Dziewoński 28a8739ce5 Show empty reflist message on initial load and after switching too
The message was only shown when a new reflist was inserted, or when
any references were changed.

Bug: T284472
Change-Id: I7c1e981c93bf7e163f9fb747aad30a24e9a497f1
2021-08-24 12:24:07 +02:00
Translation updater bot 3705438aa0 Localisation updates from https://translatewiki.net.
Change-Id: I3d7ab035b924f402c627da045790cd98c03f66d2
2021-08-23 09:03:41 +02:00
Translation updater bot 66125caae0 Localisation updates from https://translatewiki.net.
Change-Id: I633634a17f619b770828aebe952a8b4b922fbeb7
2021-08-19 08:13:13 +02:00
vladshapik 71c4bd1f98 Adjust Parser related tests to DeprecationHelper
There is the patch(I4297aea3489bb66c98c664da2332584c27793bfa) which will
add DeprecationHelper trait to Parser class in order to deprecate public
Parser::mUser. DeprecationHelper trait has appropriate magic methods
which help to use dynamic properties. In order not to mock them via
createMock(), so getMockBuilder() and onlyMethods() was used.
onlyMethods() method helps to specify methods which need to be mocked.
Now we can use dynamic properties in Parser related tests of Cite
extension.

Bug: T285713
Change-Id: Ie75c9cd66d296ce7cf15432e2093817e18004443
2021-08-17 14:14:55 +00:00
Translation updater bot ace7aff1db Localisation updates from https://translatewiki.net.
Change-Id: Id674072833a1dff7c4f15876a96109eb6c232992
2021-08-16 08:16:00 +02:00
Translation updater bot bdba8e61f7 Localisation updates from https://translatewiki.net.
Change-Id: I23d8eb3a038fe69608728244de6c0b20e1fd82d6
2021-08-12 08:09:25 +02:00
Translation updater bot 095d3bf6a9 Localisation updates from https://translatewiki.net.
Change-Id: I56527e34a9a4bf2ef75f5e26a0b075d1253d31b9
2021-08-11 08:19:06 +02:00
Translation updater bot 60b3124734 Localisation updates from https://translatewiki.net.
Change-Id: I43fbe0ee2818205c821ecb892a86e0f019e90891
2021-08-09 08:23:37 +02:00
Translation updater bot 4c6ef3c88d Localisation updates from https://translatewiki.net.
Change-Id: I5d351fce9a72cbc86af5b886c11f4db907e30fe7
2021-08-05 08:21:55 +02:00
Translation updater bot ba7bfbd2a5 Localisation updates from https://translatewiki.net.
Change-Id: Ia05fa0aa665dbf29f72480f844c62264bd56029c
2021-08-04 08:14:41 +02:00
C. Scott Ananian 187de4b769 The ::querySelectorAll() and ::getElementsBy* helpers don't always return array
The standard type for these returns is NodeList and HTMLCollection, which
are almost *but not quite* the same as an array.  In two places we got a
little complacent and assumed our non-standard DOMCompat workarounds would
always return arrays.  Tweaked the types of DOMCompat to report that they
return an `iterable`, which is a PHP7.1 "pseudo-type" that unifies
arrays and \Traversable types like HTMLCollection/NodeList.  This
allows phan to catch places where we slip up and assume an array type
return.

It does introduce a new wrinkle, though, since there is no simple way
to turn an iterable into an array.  We're using a simple
`iterable_to_array` helper function for this.

Change-Id: I35bdeb3afa30ef5182e71733a0a606aadcafb435
2021-07-31 03:50:07 +00:00
C. Scott Ananian a1d0fdd776 Allow Node::getAttribute() to return null
In PHP's DOM extension, one of the legacy bugs is that
DOMNode::getAttribute() can never return `null` (to indicate that the
attribute is missing), instead it returns an empty string in that
case.  This isn't (modern) spec-compliant behavior (it's a leftover
from ancient times) and we had to watch this carefully when porting
from JS.

In the time since the port, we've written new code and embedded this
assumption that DOMNode::getAttribute() will never return null into
the new code we've written.  Fix this.  Always use `getAttribute(...)
?? ''` (unless we're just doing an equality test against a non-empty
string, or the code is preceded by a `hasAttribute` test) so that our
code will work whether or not getAttribute returns null for a missing
attribute.

Change-Id: If33200e1053b2dd79abb5dfb3808c05ff3a0bbba
2021-07-30 20:34:47 +00:00
C. Scott Ananian 53e8dc7b39 Sync up with Parsoid citeParserTests.txt
This now aligns with Parsoid commit 88d4620278988d121761fb440952d1d66a70ce99

Required some newline fixes to resync after "Refactor newline logic"
(change I6691c70f8e3fa3f21e2d11035bed9cdc2dc87093 /
commit 6389459b1e) was merged
this morning.

Change-Id: I64fba6cc9330a55d4e1eeb5371164b3eb4efa508
2021-07-30 11:14:38 -04:00
jenkins-bot e584c5cf3f Merge "Refactor newline logic for auto-generated <references> sections" 2021-07-30 14:17:49 +00:00
Translation updater bot f1e23b3ef8 Localisation updates from https://translatewiki.net.
Change-Id: If0b79b3bcb0f0ffb8c8fdb116d9284b6682c4ac9
2021-07-30 08:27:25 +02:00
Translation updater bot c28ec1a826 Localisation updates from https://translatewiki.net.
Change-Id: I2d64466bde6b5ffc3514f702fdb0518c0b59c3aa
2021-07-27 08:13:14 +02:00
C. Scott Ananian fd3597cd39 Add class alias file to allow swapping in Dodo for DOMDocument
Change-Id: I56c10d2f4283e9e7b57bf722208fefab007cdf45
2021-07-23 12:20:06 -04:00
Translation updater bot 6beb1d25ba Localisation updates from https://translatewiki.net.
Change-Id: I7cb03d491de452ec6285775254c3d3d962d4a67b
2021-07-23 08:08:06 +02:00
libraryupgrader 0af1a039b0 build: Updating mediawiki/mediawiki-codesniffer to 37.0.0
Change-Id: Ia399fafc5280aab1c0cfc129529a822e8d8f8382
2021-07-22 12:34:32 +00:00
Translation updater bot 34dbb86730 Localisation updates from https://translatewiki.net.
Change-Id: I9e1ce120c7fb87350262661a4785a561c26bdad8
2021-07-20 08:20:22 +02:00
Translation updater bot 0219e5b715 Localisation updates from https://translatewiki.net.
Change-Id: Id0d08c66442d0f420a884e899c35b599fe7e019e
2021-07-16 08:43:19 +02:00
Translation updater bot 6b5afb1088 Localisation updates from https://translatewiki.net.
Change-Id: I8b5d1c377d3245d60531893599a47176149949c2
2021-07-12 08:06:14 +02:00
Translation updater bot d435430956 Localisation updates from https://translatewiki.net.
Change-Id: I27fa58c4888cea3b095b082a174ff0b04dc6d5fc
2021-07-08 08:46:33 +02:00
Translation updater bot 28e4d02e10 Localisation updates from https://translatewiki.net.
Change-Id: Ib864ded260d8dd6546f8aea2969b7b0062bbf7cf
2021-07-07 08:07:46 +02:00
Translation updater bot f46eca8c45 Localisation updates from https://translatewiki.net.
Change-Id: I22a48e571903a6ee5b3ff0a526a9061bb1a27a0d
2021-07-06 08:38:18 +02:00
Translation updater bot c9099d5383 Localisation updates from https://translatewiki.net.
Change-Id: Ia331e3fbf3fe129c006395b49b1eb9f80dabe144
2021-07-05 08:06:35 +02:00
Translation updater bot 38e6af7c41 Localisation updates from https://translatewiki.net.
Change-Id: Ia5dcb95a46c67ec5b5e83eab930c8fdf2b4ca69d
2021-06-29 08:13:33 +02:00
Translation updater bot 647842b6ff Localisation updates from https://translatewiki.net.
Change-Id: Ie906c92e1940e848228d3f3c5e0af39717b87904
2021-06-28 09:22:51 +02:00
Translation updater bot 4f266e5aeb Localisation updates from https://translatewiki.net.
Change-Id: I6534f09ddd5b390d03438bf6e17b5a4993eac86d
2021-06-24 08:26:50 +02:00
Translation updater bot 3cfbf69464 Localisation updates from https://translatewiki.net.
Change-Id: I93593aa14530128f3afdd34aa475fe9bfb3aa0a4
2021-06-21 14:11:27 +02:00
Translation updater bot c241590737 Localisation updates from https://translatewiki.net.
Change-Id: Ieab4d5bcf1d5cea1bfe90419221fb250d701c07c
2021-06-18 08:20:35 +02:00
Translation updater bot 30a5b3e5fd Localisation updates from https://translatewiki.net.
Change-Id: Iea7383e6802469716e4adada45c18d3140a3e2d8
2021-06-17 08:20:24 +02:00
anjali041 77a082a96e selenium: Upgrade WebdriverIO to v7
Update npm packages: @wdio/* and webdriverio.

Bug: T274579
Change-Id: I5fc8d2a7f3514e6c70668b0546b057f7de8c551a
2021-06-15 14:02:39 +02:00
Translation updater bot 617724f839 Localisation updates from https://translatewiki.net.
Change-Id: I3ffdf667f6b6a38819f49c4b37e73c6d0dbf9e84
2021-06-10 08:34:07 +02:00
jenkins-bot dbc56f8319 Merge "selenium: Update wdio-mediawiki" 2021-06-09 14:07:19 +00:00
sahil d7ad615e67 selenium: Update wdio-mediawiki
wdio-mediawiki v1.1.1:
- Includes wdio-defaults.conf.js file that vastly simplifies wdio.conf.js.
- Replaces @wdio/spec-reporter with @wdio/dot-reporter.
- Introduces video recording.

Bug: T283597
Change-Id: Ic62db3ca745a94573b2b0500f49a45bb2a0dcd4f
2021-06-09 15:03:58 +02:00
Translation updater bot fc263cf08b Localisation updates from https://translatewiki.net.
Change-Id: I40a6662a2aa0224ec8a5a7c9e243a8016bedbcec
2021-06-08 08:35:45 +02:00
Translation updater bot 0898540621 Localisation updates from https://translatewiki.net.
Change-Id: I622fd7f4e41531b8203c684b9689c2bfebd180e9
2021-06-07 08:41:36 +02:00
jenkins-bot b8e2187f77 Merge "Localisation updates from https://translatewiki.net." 2021-06-04 06:39:44 +00:00
Translation updater bot a8ffbc4191 Localisation updates from https://translatewiki.net.
Change-Id: Ifbd996c3e636cf28bd219b615ca73a663d29b3ef
2021-06-04 08:36:06 +02:00
Ed Sanders 299e5d3655 Avoid exceptions if node teardown happens before setup
Change-Id: I7f55091023a3c0e92ce216e51f24bbc423f136c7
2021-06-03 22:50:44 +01:00
Translation updater bot f4257fadd4 Localisation updates from https://translatewiki.net.
Change-Id: I8001f064b67374fb15bdf7821a72352dd6f335bd
2021-06-02 14:34:54 +02:00
DannyS712 55cc7c2828 Remove documentation that repeats the code
Mostly comments along the lines of "{classname} constructor"
in the doc block for the __construct method.

Change-Id: I67ffe070985dc75a5d817b1b5ac97b529d7ab4b8
2021-06-02 09:57:36 +00:00
jenkins-bot 1c19bb8b90 Merge "More robust property initialization in ReferenceStack" 2021-06-01 23:02:33 +00:00