Commit graph

7042 commits

Author SHA1 Message Date
jenkins-bot 6961fa957c Merge "tests: Remove overlayManager from NotificationBadge params" 2022-03-04 15:45:38 +00:00
Kosta Harlan 4e125c5095 tests: Remove overlayManager from NotificationBadge params
Doesn't seem to be used anymore

Change-Id: I18f2709f000ca7469432a4c4bb919adfa0b3e829
2022-03-04 15:23:13 +00:00
Amir Sarabadani c48b69bdd7 Change use of deprecated getLazyConnectionRef
Bug: T255493
Change-Id: Ic9aa81f70e17a85949beabe9087a7cadcf6b7f7e
2022-03-03 13:23:45 +01:00
Timo Tijhof 5a76489be0 tests: Fix QUnit warnings and resolve complex test_NotificationBadge
== Problem 1 ==

As of I09c27a084100b223,  tests/qunit/index.js or equiv was used to
load test files asynchronously from a using() callback. This was
untracked by RL or QUnit, and thus sometimes ended up finishing after
the test runner was already done executing all tests. In CI this
means the tests are sometimes never loaded and the browser (or Node)
process already killed before they even have a chance to arrive.

Prior to QUnit 2.17, this was no way of detecting this. As of
QUnit 2.17 (core upgraded last week) when running tests manually
the following helpful warnings appear in the console:

> [warning] Unexpected test after runEnd.
> [warning] This is unstable and will fail in QUnit 3.0.
> test	@	qunit.js
> tests/qunit/model/test_mw.echo.dm.SeenTimeModel.js
> require

There were about 1072 instances of this warning, all from Echo.

Fix this problem by removing the async callbacks and specifying the
two modules as normal dependencies instead.

== Problem 2 ==

Class NotificationBadge was being loaded in a strange way out of
bound. This was a violation of module boundaries and should not be
needed other than for a temporary hack or other tech debt. More
generally when a test uses `packageFiles` this is a likely sign of
tech debt or misunderstandings.

Instead, depend on `ext.echo.mobile` and export/import the class
as normal.

After this, the test module can use `scripts` instead.

== Problem 3 ==

The `ext.echo.mobile` uses a Mustache template which the test
was also duplicating a reference to. This is no longer needed now.

Due to the `qunit/index.js` file carefully splitting the operations
between template assignment and file loading, I wondered whether
it was meaning to replace or mock it with something else, but it
simply refers to the same file and only does this because it wasn't
using the module directly. This is now resolved.

If you do need to mock in the future, this can simply be done
by assigning `NotificationBadge.prototype.template` from a
beforeEach() callback in the test suite, or by supporting it
property as a constructor option in NotificationBadge.js and
assigning `this.template` there, which is supported by the
mobile `View` class already it seems and would follow DI patterns
more effectively.

== Problem 4 ==

Most of the Echo tests were ignored sometimes and executed other
times.

The test for `ext.echo.mobile` in particular though was never
executed in CI specifically because:

> Undefined module: 'mobile.startup'

This became a hard error with this patch, which is fixed by
the CI config change with Ie9dabe3269c56fa76db8e51.

Bug: T299780
Change-Id: Ie4a87f3b8085fd6ae53ec586c1782cc266d5288a
2022-03-02 12:52:06 +00:00
Timo Tijhof 1ae60e5977 ext.echo.mobile: Name init function as such for clarity
It is common for internal files to export a single value, e.g.
when a file exports a single class or other special value.

However, this is uncommon for a module's overall export.

* It can create the misunderstanding that the init code is immediately
  executed, when it is in fact delayed.

* This leads to the obscure `require()()` statement that is easy to
  misunderstand.

* The least-effort way to expand this is by adding a statement
  like `module.exports.Foo = Foo` after `module.exports = init`
  which has the sublte behaviour that 1) it only works in this
  order, not reversed as then Foo would be de-referenced by the
  second assignment, and 2) it has the subtle effect of attaching
  Foo to the `init` function as `init.Foo` which is non-obvious,
  and 3) makes the init function unsafe to pass around, wrap,
  stub or otherwise treat as a regular function.

Remedy by naming it as "init" on a regular module export object.

Change-Id: I51065e00f9dcaec075578a46df4de32c7a427df3
2022-03-01 23:11:40 +00:00
Ed Sanders f1602001fd build: Update eslint-config-wikimedia to 0.22.1
Change-Id: Ia9c0532178719f3ff3feee43736893abd0c5e123
2022-02-28 13:59:20 +00:00
Ed Sanders 7fcb7534a9 build: Update stylelint-config-wikimedia to 0.12.2
Change-Id: I4ce41646b338555c51c3269c699c712790af096a
2022-02-28 13:59:02 +00:00
Translation updater bot 0a0fbe6b06 Localisation updates from https://translatewiki.net.
Change-Id: I212a618708a887e9e23c1d4af0582db25cecdcce
2022-02-28 14:28:39 +01:00
Volker E c5c27568a5 build: Update 'svgo' to latest v2.8.0
Updating 'svgo' to v2.8.0 and newest Wikimedia SVG guidelines –
mainly around new whitespace features of SVGO.

Change-Id: I63c72634eb2bb7063d71c8c21679f6f2091a4f1f
2022-02-27 02:12:20 -08:00
Translation updater bot 78aaaeb230 Localisation updates from https://translatewiki.net.
Change-Id: I613067d508e635c03fcd39b5d77685dad462d424
2022-02-25 09:43:27 +01:00
Translation updater bot 30bd57d813 Localisation updates from https://translatewiki.net.
Change-Id: I73dd8591db1ad3e1ab5c3236b9c02097c92c22a7
2022-02-23 08:18:53 +01:00
Translation updater bot d0d91056fe Localisation updates from https://translatewiki.net.
Change-Id: I1e85b78e369ba2f79257368ec19d83f23a521eca
2022-02-22 08:11:36 +01:00
Translation updater bot d2744a11e9 Localisation updates from https://translatewiki.net.
Change-Id: I1cd2ce8d43da03ca836e47afec646506f5910ae9
2022-02-21 08:15:39 +01:00
Jack Phoenix 9ed8612642 Make some DiscussionParser methods public instead of private for reusability
Comments has been duplicating these methods for quite some time for no real reason other than that they're private here.
Duplicating these methods appears to be necessary if and when working with extensions where users can be @mentioned but which are
not implemented as ContentHandler subclasses or otherwise related to regular wikitext pages.

Change-Id: I9c097bab9c5eed8f2399c86897b1f8968126c765
2022-02-17 14:21:09 +02:00
Translation updater bot 2f6892fab0 Localisation updates from https://translatewiki.net.
Change-Id: Id0357ab97aec9b123eb53c3538dd77244f56815a
2022-02-17 08:11:42 +01:00
Translation updater bot cd76478258 Localisation updates from https://translatewiki.net.
Change-Id: I9f035377ac5381823268e417afdfbb5f90311966
2022-02-16 08:12:59 +01:00
Translation updater bot df6939dae4 Localisation updates from https://translatewiki.net.
Change-Id: If89090083e591e2ac87ad5a2abad38a13ef9e63f
2022-02-15 08:17:14 +01:00
Translation updater bot b607b7e71e Localisation updates from https://translatewiki.net.
Change-Id: I5eb35eca1f023c2601e698e486bd73848fd707ec
2022-02-14 08:14:11 +01:00
Umherirrender 4eb8fa23e4 Call IDatabase::timestamp before inserting rows
This is needed for proper cross-RDBMS support

Bug: T244898
Change-Id: I46206e0b3a687dff3168a81cf0020e669133e876
2022-02-11 23:22:17 +00:00
Umherirrender 6af1473ca6 Replace deprecated wfReadOnly()
Bug: T283978
Change-Id: I5c796a0473599c71848b6079874bc7a969ee6f88
2022-02-11 23:39:06 +01:00
Umherirrender ffeee975a4 Replace deprecated User::newFromIdentity with UserFactory
Moved the factory deeper into the code right before the one usage it
still needed a full user object

Narrow done method arguments from User to UserIdentity
and use the identity directly

Change-Id: Ic118f23ef504c7fda892480df61ea68c10915f78
2022-02-11 20:35:49 +00:00
Umherirrender f21d2a5088 build: Remove unneeded phan suppression
Bug: T290624
Change-Id: Ie0209c72863aae8ac020a09e625f0c4613decca5
2022-02-11 20:57:34 +01:00
Translation updater bot a104e97882 Localisation updates from https://translatewiki.net.
Change-Id: Idb8b3b3b0bb36cfb55bd48851d8fa0c806bc341e
2022-02-11 08:41:29 +01:00
Translation updater bot 7acf96924f Localisation updates from https://translatewiki.net.
Change-Id: Idcad6d3bb699e3a451c5115257daa4a82c0b9b89
2022-02-10 08:41:32 +01:00
jenkins-bot 7b75d3775c Merge "eslint: Lint Gruntile.js using server rules" 2022-02-10 05:37:23 +00:00
Translation updater bot f056bc9ce8 Localisation updates from https://translatewiki.net.
Change-Id: I4baeb2087e91695285486af51734ac759eb88d59
2022-02-08 08:28:29 +01:00
Ed Sanders ba38b57c83 eslint: Lint Gruntile.js using server rules
Change-Id: Ic7d67098492558fdd6cec292afd22aaf8693a594
2022-02-07 16:30:24 +00:00
Translation updater bot a10814bff4 Localisation updates from https://translatewiki.net.
Change-Id: I8502dfb2a64544e15b1a5e5a6639a54040d83d0d
2022-02-07 08:21:59 +01:00
libraryupgrader 8136e4f0e5 build: Updating dependencies
composer:
* mediawiki/mediawiki-phan-config: 0.11.0 → 0.11.1

npm:
* grunt: 1.4.0 → 1.4.1

Change-Id: I00ebb19da234d2254115c75fbc7ecf270a9d7785
2022-02-06 09:37:32 +00:00
Translation updater bot 082a27c6f6 Localisation updates from https://translatewiki.net.
Change-Id: Id58398666e52aed435e37520608a80612c503501
2022-02-03 08:43:59 +01:00
Translation updater bot 83e9b50493 Localisation updates from https://translatewiki.net.
Change-Id: I0ab9b442fd72a63194e3444ddef788f0379c9024
2022-02-02 08:19:58 +01:00
jenkins-bot 3608b51f78 Merge "selenium: Delete invisible unicode characters" 2022-01-31 09:20:34 +00:00
osamaahmed17 020b44c43a selenium: Delete invisible unicode characters
Bug: T300386
Change-Id: I7c5db54247dc5b4566996afcbfab70b5fd4696a8
2022-01-31 09:02:09 +00:00
jenkins-bot e3e8e5cc58 Merge "Exclude dynamic namespaces for page-linked-title muted list" 2022-01-31 08:49:37 +00:00
Translation updater bot 72ad59ff88 Localisation updates from https://translatewiki.net.
Change-Id: I2ba886ad1226ccf2d6395102a825312c9be43fd9
2022-01-31 08:21:56 +01:00
Siddharth VP d983f99f49 Exclude dynamic namespaces for page-linked-title muted list
The form UI currently allows selecting Special/Media pages, even though these notifications are not applicable on those pages.

Also:
- Update some comments regarding LoadUserOptions hook
- Remove $titleFactory as MultiTitleFilter doesn't require it any longer

Change-Id: I74f7b0091cb5f47c34a54958656e2bce20a394ec
2022-01-29 04:51:06 +00:00
Translation updater bot 87771e2d23 Localisation updates from https://translatewiki.net.
Change-Id: Ic91c884b1dc6bbe3ec32db8f0494cb4c31f428e3
2022-01-28 08:33:52 +01:00
Translation updater bot ab2f9421ba Localisation updates from https://translatewiki.net.
Change-Id: I3e834953cca6b7cb7cff8c36bb151cc84a2246ba
2022-01-27 08:38:41 +01:00
jenkins-bot f260651071 Merge "Replace deprecated JobQueueGroup::singleton()" 2022-01-27 04:10:06 +00:00
jenkins-bot c18b14ea51 Merge "selenium: Upgrade WebdriverIO to v7" 2022-01-26 16:56:54 +00:00
osamaahmed17 eb854a675f selenium: Upgrade WebdriverIO to v7
Update npm packages: @wdio/* and webdriverio.

Bug: T274579
Bug: T271281
Change-Id: I0d1ccf8238fd9552aaa6da9f3c5a0b17b0247d27
2022-01-27 03:30:03 +11:00
Translation updater bot a130c0e6f1 Localisation updates from https://translatewiki.net.
Change-Id: I3a2809cb620078e06f8c6e65f603c549f3face50
2022-01-26 08:24:55 +01:00
Umherirrender 9bf6ceb738 Replace deprecated JobQueueGroup::singleton()
Change-Id: I298d8507f4ec706c235087b726b7b230ed5e9ac6
2022-01-25 22:24:53 +01:00
jenkins-bot c9f4e7224f Merge "Prevent welcome message partially truncated" 2022-01-25 11:54:58 +00:00
Translation updater bot 52f687ca50 Localisation updates from https://translatewiki.net.
Change-Id: I59cf61ab4eb1f4b47ca43961ad67c148b43dbdb1
2022-01-25 08:32:36 +01:00
Sergio Gimeno c815bc64e4 Prevent welcome message partially truncated
Bug: T291100
Change-Id: Ia7d349bd81b45c99eb421b8e69ccdadb3135a67f
2022-01-24 21:44:47 +01:00
jenkins-bot a8af58f362 Merge "Parse section titles in notifs as if they weren't at the start of line" 2022-01-24 05:43:44 +00:00
jenkins-bot 302d272480 Merge "Allow overriding section title presentation in subclasses" 2022-01-24 05:42:12 +00:00
jenkins-bot ef3c4ff4e3 Merge "Avoid double-escaping in notification watch links" 2022-01-21 17:08:30 +00:00
jenkins-bot cc111b95bf Merge "Make JsonSerializable PHP 8.1 compatible" 2022-01-21 13:01:50 +00:00