Commit graph

9805 commits

Author SHA1 Message Date
jenkins-bot
b8ff3aa93b Merge "Pingback: Refactor for dependency injection and cover with tests" 2020-12-22 20:22:45 +00:00
Timo Tijhof
43e3a6460b Pingback: Refactor for dependency injection and cover with tests
* Inject dependencies from the constructor and use those instead.

* Make getSystemInfo() static since its sole purpose is to collect
  global state. This also means it can be safely called from the
  Installer without needing to construct this class and its unsafe
  dependencies as the Installer was doing previously.

* Remove private 'id' member. This cached the fetchOrInsertId()
  return value but was never used.

* Remove selectField() fallback IGNORE-mode insert from fetchOrInsertId().
  This existed to handle concurrent writes, but this isn't possible
  since all this runs inside a DB_MASTER lock.

* Add missing call to $cache->makeKey().
  Avoid passing unformatted strings directly to BagOStuff methods.

Bug: T270540
Change-Id: I984526020ea4d5f0fd6f72b6be527edaf6ab0917
2020-12-22 19:13:53 +00:00
jenkins-bot
9012e138a1 Merge "Cleanup some tests to reduce code duplications" 2020-12-22 17:54:54 +00:00
jenkins-bot
76e9192582 Merge "Remove unneeded GhostFieldAccessTraitTest::setUp" 2020-12-22 07:29:25 +00:00
James D. Forrester
abdc94a3da Swap out uses of User->isLoggedIn() with ->isRegistered()
Bug: T270450
Change-Id: I90ff94a553ebae9a4ef97c25c333f067f19c327d
2020-12-22 03:13:37 +00:00
DannyS712
1fcbf2b7e4 Remove unneeded GhostFieldAccessTraitTest::setUp
Change-Id: If3dce009ba41519322df3b53fa00097df02b1b6f
2020-12-22 01:34:57 +00:00
jenkins-bot
d75edaea7d Merge "Add integration test ApiWatchlistTraitTest" 2020-12-22 01:14:56 +00:00
jenkins-bot
43e21cda75 Merge "Deprecate InterwikiLoadPrefix hook" 2020-12-21 22:51:47 +00:00
David Kamholz
9cb5187944 Implement Balinese language converter
This patch implements the BanConverter class for Balinese. Its purpose is to transliterate Balinese in Balinese script to Latin script. Latin to Balinese is not currently supported, because (1) the Latin transliteration is not fully one-to-one, (2) I'm not aware of any users who currently need Latin to Balinese.

The converter supports three distinct Latin transliteration variants: ban-dharma, ban-palmleaf, and ban-puri-kauhan-ubud. All three variants have been requested by different Balinese community members working with Balinese palm-leaf manuscripts. ban-puri-kauhan-ubud is the default, as it is the most familiar to lontar scholars, but Balinese Wikisource users will be able to select their preferred variant via a user script.

Conversion is accomplished via ICU Rule-Based Transliterators, bindings for which are available through the Intl extension.

This patchset adds the abstract class LanguageConverterIcu and has BanConverter inherit from it (makes future ICU-based LanguageConverters easier).

Bug: T263082
Change-Id: Ic3a46a215fbf020a022726e6b130b1d25496e284
2020-12-21 12:45:41 -08:00
C. Scott Ananian
3d40c43b1f Deprecate InterwikiLoadPrefix hook
The InterwikiLoadPrefix hook isn't compatible with Parsoid, as it is
unidirectional and doesn't support enumerating all valid prefixes
(T270444).  Set/reset $wgInterwikiCache to mock the interwiki table
for parserTests and other unit tests instead.

This is a soft deprecation, as the used-in-production
Extension:Interwiki still uses InterwikiLoadPrefix, although not in a
way that would break Parsoid (since $wgInterwikiCache is set in
production).

Bug: T270444
Change-Id: If2507017c99c4ee42c104a0890bc45a84d7239d5
2020-12-21 19:28:48 +00:00
Umherirrender
1f03065c60 Add integration test ApiWatchlistTraitTest
Change-Id: Ifc3c340cac1799ae0546b2050be3dc327aadff57
2020-12-21 20:27:14 +01:00
DannyS712
3503537452 TitleTest::testIsWatchable should call isWatchable
Instead of ::canHaveTalkPage
Likely a copy-paste error

Change-Id: I46c0ebd6267f8631907c011bca525572313154c1
2020-12-21 11:44:10 +00:00
DannyS712
1326cb3be5 Cleanup some tests to reduce code duplications
Also fix incorrect order of some other assertions

Change-Id: Idf50f98de7a17311ea8db6f2cae3b101f4c1da89
2020-12-21 10:08:29 +00:00
DannyS712
d464f84182 Fix a typo: matser -> master
Bug: T201491
Change-Id: I2230195439582b1977d0c84295a5e8d9ee07a6cf
2020-12-21 06:38:42 +00:00
Ammar Abdulhamid
2bd536b83a Cleanup SpecialBlockTest
Needs to call parent::tearDown() after the table reset.

Use direct assertion and MediaWikiTestCase abstraction
where possible

Change-Id: Iad00569867e6f9a4579ae93b22fc0f570cde6bd7
2020-12-20 02:54:16 +01:00
Umherirrender
86ea6965d3 Add missing @param/@return to MockHttpTrait
Change-Id: I38cb2e0e7f7a0f6a0199670f7aa56a1522d6628c
2020-12-19 07:21:51 +00:00
jenkins-bot
2fa4152473 Merge "Deprecate a bunch of global functions" 2020-12-18 23:36:21 +00:00
jenkins-bot
9f272a13ba Merge "Fix extraneous indents in ResourceLoaderTestCase" 2020-12-18 22:22:25 +00:00
DannyS712
1567f9bafe Fix extraneous indents in ResourceLoaderTestCase
Change-Id: I5a22337fb1a8098bee526453530c85a8bb18e364
2020-12-18 21:49:07 +00:00
DannyS712
f4e21014ce Deprecate a bunch of global functions
* wfAcceptToPrefs
* wfClearOutputBuffers
* wfConfiguredReadOnlyReason
* wfDebugMem
* wfGetPrecompiledData
* wfNegotiateType

Bug: T264976
Bug: T264979
Bug: T264981
Bug: T264983
Bug: T264984
Bug: T264985
Change-Id: Ia05bc84e4d1be7c8a02472f32e2c009e4bb32032
2020-12-18 21:34:50 +00:00
Umherirrender
0b10c1b039 Add missing @return to FileBackendGroupTestTrait
Change-Id: Ifb9eef6594a9520cd687adc287fcab389c3c977c
2020-12-18 22:08:38 +01:00
jenkins-bot
a166abb115 Merge "Remove MediaWikiIntegrationTestCase::assertType" 2020-12-18 20:26:28 +00:00
Daimona Eaytoy
6f7132cbcf Remove MediaWikiIntegrationTestCase::assertType
Deprecated since 1.35, not compatible with PHPUnit 8. This could've
happened earlier, but here we go.

Unused in known repos (except for the sniff looking for this usage):
https://codesearch.wmcloud.org/search/?q=assertType%5C(&i=nope&files=php&repos=

Bug: T192167
Change-Id: I479cf71d0941c35096d21686077b4d1cbc4f898d
2020-12-18 19:23:14 +00:00
Paladox
0b4c4402e8 Fix infinite recursion with wgAutopromote when using getBlock within checkCondition
The problem was that when using $user->getBlock
within checkCondition (APCOND_BLOCKED) caused a infinite
recursion as calling getBlock eventually leads back to checkCondition.

The fix here is to stop using userHasRight as that is the cause of the recursion.

This also fixes testGetUserAutopromoteBlockedDoesNotRecurse test so it
shouldn't fail.

Bug: T270145
Change-Id: Ic751eba70730de286bbd55772bd7562459fb30b4
2020-12-17 19:57:10 +00:00
Paladox
36e2a458b6 Add test showing that getBlock can recurse if you use Autopromote and use APCOND_BLOCKED
Tests are purposely skipped and will be enabled in a follow up change.

Bug: T270145
Change-Id: I7f28bd9f5644d0f4b90927525ab93e2fac2f9d8f
2020-12-17 17:21:51 +00:00
jenkins-bot
2697ba639e Merge "WikiPage: add interim replacement for WikiPage::doEditContent() requiring $user" 2020-12-17 15:11:00 +00:00
Petr Pchelko
0eef0a6a3a Article: view from old revision cache - set correct revId.
Bug: T270361
Change-Id: Ice99038df450bb6892a5064b67f3d35f3255267b
2020-12-17 07:22:35 -06:00
jenkins-bot
491492ef5a Merge "Fix hang of ApiMainTest" 2020-12-16 23:26:43 +00:00
jenkins-bot
f438ebcd7f Merge "FeedUtils: Update regex to match classes appropriately, and test" 2020-12-16 18:15:42 +00:00
jenkins-bot
fe8779ebf9 Merge "Parser tests: Update TestFileReader to the latest reader from Parsoid" 2020-12-16 17:45:01 +00:00
jenkins-bot
add80561d2 Merge "ParserOptions: Deprecate fallback to $wgUser" 2020-12-16 15:17:05 +00:00
Petr Pchelko
71bb51ed55 ParserCache: general code cleanup, abstracted expiration checks.
Change-Id: I7374f30d582064236b8f782e6a2528eb692e3010
2020-12-16 12:09:55 +00:00
DannyS712
25db391d53 ParserOptions: Deprecate fallback to $wgUser
Emit deprecation notices in the constructor
if falling back to $wgUser, and fix core
calls

Bug: T246861
Depends-On: I51117931d527a3bdda468b48de577a7faafbcd69
Change-Id: Ibd0a8ffd0494c17a378cc43e6b6164166130adf4
2020-12-16 09:03:29 +00:00
jenkins-bot
02342b9065 Merge "Don't access $wgRequest from User" 2020-12-16 05:06:16 +00:00
Tim Starling
8212527dfe Fix hang of ApiMainTest
If I try to run ApiMainTest with GlobalPreferences enabled, it takes
forever (or at least some number of minutes) to run. This is because
when @depends is used to transfer data from one test to another via
the return value, PHPUnit runs Enumerator::enumerate() on the data. When
it contains a reference to the active TestCase, PHPUnit ends up
iterating through its internal data structures, which takes a long time.

My conclusion is that @depends with a return value should be considered
harmful. Stop doing it in ApiMainTest. Stop recommending it in
SampleTest.

Change-Id: I63e94f2886a4ee4b3fd0ea6b19cd2fb67ba912de
2020-12-16 15:39:19 +11:00
Tim Starling
6b2a52181f Don't access $wgRequest from User
Some User methods fail if they are called before $wgRequest is
set. But according to the Setup.php comment, it is only set for b/c.
The global request object can be lazy-initialised at any time.

This is sufficient to avoid T263911 (loss/obfuscation of the $wgServer
error message).

In tests, try to keep $wgRequest and RequestContext::$request in sync.
Introduce MediaWikiIntegrationTestCase::setRequest() which sets both at
once, and use that instead of setMwGlobals() or direct assignment.

BlockManagerTest was accidentally exploiting the fact that the global
context request and $wgRequest were separate objects. Making them the
same causes session cookies to appear in the response, breaking the
cookie counts. Use a new response for the test.

Bug: T263911
Bug: T245940
Change-Id: I2be99f7251a837bc6b62be0b152038157dec10f2
2020-12-16 12:21:00 +11:00
jenkins-bot
f0d9e5e182 Merge "Implement caching for old revision HTML endpoint" 2020-12-16 00:41:27 +00:00
daniel
637f630fe9 Implement caching for old revision HTML endpoint
Bug: T269663
Change-Id: I2d17ec37d25f3a6e1c4836c05576bf0fabb7d429
2020-12-15 23:40:08 +01:00
Bartosz Dziewoński
245aa6e34c Fix error message mentioning the removed $wgEnableWriteAPI config
Change-Id: Idee35e7d37ea17f0a6bdbdc70b45822ec7c89b71
2020-12-15 23:38:03 +01:00
jenkins-bot
e1e1e6e5a5 Merge "LanguageConverterTest: reduce direct references to $wgUser" 2020-12-15 20:31:40 +00:00
jenkins-bot
37a29d3dde Merge "DumpTestCase - stop writing to $wgUser" 2020-12-15 20:31:32 +00:00
Subin Siby
8922c83875 FeedUtils: Update regex to match classes appropriately, and test
Not all classes are matched correctly in feed output because of
regex used. Fixed it by updating regex and adding unit tests

Bug: T36801
Change-Id: I6e7a883caee2a36c11966991b19ba93c229683cf
2020-12-15 07:35:10 +00:00
Taavi Väänänen
0ffed5799d WikiPage: add interim replacement for WikiPage::doEditContent() requiring $user
This patch adds a method named WikiPage::doUserEditContent() as an interim
replacement to existing deprecated ::doEditContent() method. The new
method requires $user to be passed as a parameter and no longer supports
passing in the unused $serialFormat parameter. The new method otherwise
behaves identically compared to the old doEditContent() method.

Bug: T255507
Change-Id: Ibc0052b27a6d3cda3eb9663b95b4f45116dcc9f1
2020-12-15 08:59:57 +02:00
jenkins-bot
030a38065f Merge "ResourceLoaderSkinModule defines the order of feature styles" 2020-12-15 02:35:40 +00:00
jdlrobson
4a287f9217 ResourceLoaderSkinModule defines the order of feature styles
Previously, the order of styles outputted by this module was
arbitrary, based on the order of the feature files passed in.

This was not how it was intended to work - the ResourceLoaderSkinModule
should be aware of the correct ordering.

In the case of normalize for example - it should always be the first
file output.

The implementation is adapted to check for valid features once in
the constructor and to also consider a DEFAULT_FEATURES value has been
set.

We  use the FEATURE_FILES constant to determine
the order of CSS output.

This is all documented in the class.

Bug: T269618
Change-Id: Iecbf11b5f09882e55d694651210d6d132d3cd412
2020-12-15 02:11:22 +00:00
jenkins-bot
f3e1a5aa22 Merge "api: Use GetLinkColours hook to export CSS classes in page info" 2020-12-15 00:27:48 +00:00
C. Scott Ananian
02ec9de651 Parser tests: Update TestFileReader to the latest reader from Parsoid
This replaces the 'requirements' from parser tests (hooks and
functionhooks) with a more flexible 'options' clause to allow
additional file-level requirements/options to support running parser
tests in multiple modes.  (For example, with the legacy parser or in
one of two parsoid modes.)

Bug: T254181
Depends-On: I636bd1f2c8aee327acbbd1636e2ac76355f1d80e
Change-Id: I58373d135c3a804f4ce9967112c338435f5cd4b6
2020-12-14 18:49:11 -05:00
C. Scott Ananian
f9433de05e api: Use GetLinkColours hook to export CSS classes in page info
Several important extensions (Disambiguator, ProofreadPage, and
SoftRedirector) use the GetLinkColours hook to add additional CSS
classes to links on article pages. Parsoid previously relied on
backdoor knowledge of the way Disambiguator used the page property
table to support these, but they should be exported properly from the
API.

Bug: T237538
Change-Id: I945940aa872541d7e01f1e543ca854231c857fe2
2020-12-14 17:51:50 -05:00
DannyS712
3fcb2ec73f DumpTestCase - stop writing to $wgUser
Shouldn't be needed anymore

Bug: T243708
Change-Id: If3c934c2146927a5564a75fa48c5d213cfe40722
2020-12-14 22:19:42 +00:00
DannyS712
9c47a99639 LanguageConverterTest: reduce direct references to $wgUser
Should be a no-op, doesn't actually reduce the places where $wgUser
is set, just reduces the number of hits in codesearch and makes the
future migration of LanguageConverter to not use $wgUser a bit
easier

Bug: T243708
Change-Id: Ieb04b0e760dd37e037a95408ef429ac5c510f1d9
2020-12-14 21:24:17 +00:00