This uses a new three-part form to allow the features of manually typing
an expiry (i.e. "31 hours") but allowing to do so for non-English users,
who previously didn't have this capability unless it was set in
MediaWiki:Ipboptions. The ability to use MediaWiki:Ipb-default-expiry to
set a default expiry is still supported, assuming it is either a valid
option in MediaWiki:Ipboptions or in the new "Custom duration" field
(i.e. "31 hours"). See https://w.wiki/B65S for more, though this
functionality doesn't appear to be used anywhere on the WMF cluster.
"Expiration" is renamed in the code to "Expiry" to match the naming of
other MW components (ExpiryDef), but the user-facing message is still
"Expiration".
No validation is done yet, but will be added in a future patch.
Similarly, pre-supplying values via URL params is saved for T368583.
Bug: T359684
Change-Id: Iffb6fa3f539d29ed25802a19f4c13c627208259c
They doesn't seem to be used anywhere, let's get rid of them.
There is a reference of ajax-loader.gif in WebInstallerPage.php but
that should refer to mw-config/images/ajax-loader.gif rather than
mediawiki.skinning one.
Change-Id: I27c2b0d8cff6b6094c818ce4e184a195e40352a0
Why:
* The LoggedUpdateMaintenance class is not tested and testing it
will help avoid regressions/bugs.
What:
* Create LoggedUpdateMaintenanceTest
Bug: T371167
Change-Id: I84f5399bf67cc98d7c731d75ee668481ce0817b2
The $mStripState and $mVarCache properties have been private since
3056737420 and a5afda55bf respectively, so other code is
unable to create a reference directly. The getStripState() method
does not return a reference, and the hooks called by Parser do not
do not receive references to these properties either.
MessageCache also no longer clones Parser since 937ebeb585.
This reverts commit 8eeb906f93.
Change-Id: Ia71424bf984fdec23e5cd599bf48e0e7454eab9a
Avoid own teardown as MediaWikiIntegrationTestCase tracks the file and
delete the file on teardown
Remove unused tempnam (added unused in 3db119428a)
Change-Id: Ic53398c89c885f1c263dfcdbc59f6129f605f5a7
It is already supported via `npm run qunit`, but now supported in the
GUI as well, e.g. /index.php/Special:JavaScriptTest?component=EventLogging
Bug: T250045
Change-Id: Id0c00352ed0d5420f218c0567c43236673e2a998
Use an empty object, which is fast to create, instead of deep clone
that preserves and restores the initial server response for mw.messages
On mediawiki-wmf-quibble with 2000 tests, reduces newMwEnvironment_beforeEach
from 3.7s to 0.7s, saving 3 whole seconds on the CI run.
The total for QUnit is ~37s after this, down from ~40s.
ResourceLoader runs tests with lang=qqx so tests shouldn't rely on
these anyway since all mw.messages contains is thousands of key-value
pairs with qqx placeholder data like `{"foo":"(foo)"}`.
== Changes ==
* Fix qqx mode to work for non-existent messages,
for consistency with how MediaWiki does this in PHP.
Otherwise, tests that expect "(foo)" or "(foo: abc)" as part of
an assertion, would start to fail. As of writing, no frontend tests
in MediaWiki core assert data containing localisation messages, but
there are 27 tests in bundled/WMF-deployed extensions that do so,
including CheckUser (ext.checkUser.checkuser.getUsersBlockForm),
Wikibase (jquery.wikibase.descriptionview),
and VisualEditor (ve.ui.MWAddParameterPage).
* Document why this code checks for "(foo)",
which was added in I3f2a6ceb24 (616b6176db, T222944).
Bug: T225730
Bug: T250045
Depends-On: I6348e5ae00776c2c01d91fa90a431b6ffe3da25d
Change-Id: I3a4024ccf90e50558152d4ee012e492f49e14a0e