Commit graph

293 commits

Author SHA1 Message Date
Umherirrender ae03d13735 Use ::class for class name
This works also for non-existing classes,
because it is resolved on compile time

Change-Id: I84a9fc3c9f6c0ed3556b927e02e4ec9a5fef9cc2
2021-04-08 20:58:17 +02:00
vladshapik 6da72c8099 Avoid using User::isIP
Remove using of User::isIP since this method will be hard-deprecated. Now it is soft-deprecated

Bug: T275602
Change-Id: I01a0c2ef4d750cf0e81a9345ee462787d4ee28da
2021-03-02 14:29:58 +02:00
Daimona Eaytoy dff83a4b24 Stop using deprecated Language methods
Change-Id: I46b6e388d96080ef0389601f01e2b2bb20cfd185
2021-02-27 15:59:17 +00:00
Umherirrender 09b331ab83 Improve function and property documentation
Change-Id: I16cc3831cd4c917aa679c7f7c535b97e498291a7
2021-01-16 14:35:10 +01:00
Edward Tadros fbd373b5d7 Selenium: Skip test Wikitext Editor (Makes actual saves)
Bug: T269051
Change-Id: I5680d98d9d3be8238c427f1baf0b1ac78658cbb7
2021-01-14 22:20:24 -08:00
C. Scott Ananian 0d8bad3f9d Avoid using deprecated InterwikiLoadPrefix hook in test setup
Bug: T270444
Change-Id: I42d0474ae6f758207357373ecb6b4f2f5f853a7d
2020-12-22 15:06:29 -05:00
jdlrobson c3b93e14b0 Simplify footer and logo generation
The data already provided by SkinMustache makes the existing
Minerva code redundant.

* html-after-content functionality equivalent to dataAfterContent value
* Rename license and last modified to have html-minerva prefixes and promote
to top level data object. This allows us to distingusih Minerva values from core
values.

Note: previously the logo used srcset to ship a 1x logo but these
were dropped during the desktop improvements work.

Bug: T256083
Change-Id: I7b2cd5181eae67b345f6686e3389a76a12e3b1a1
2020-10-16 23:41:34 +00:00
jenkins-bot aeaa20d88f Merge "watchstar: Add temp-watched css class when expiry is present" 2020-09-25 06:49:42 +00:00
Dayllan Maza 0fc40f71c5 watchstar: Add temp-watched css class when expiry is present
MobileFrontend extension is currently tracking watched/temp-watch
css classes and applying animations to the "watch" event.
This patch starts adding temp-watched accordingly now that the
expiry is part of the event's data.

Note: this patch does not fix the lack of animation when transitioning
from half-star to empty-star or on page-load when the page is
temporarily watched but it fixes the awkward angle the half-star
icon was left in when transitioning from a full-star to a half-star

Bug: T262862
Change-Id: I1c8cb9c33cda76b87b6a9f15e408d88edbf61d93
2020-09-24 12:21:33 -04:00
jdlrobson d4828b200e Skip Minerva selenium test for creating talk topic
For sometime now this test has been intermittently failing for patches
across multiple repositories.

Temporarily skipping it now while debugging continues.

Bug: T262617
Change-Id: I90f23c57db22f878b6674296b83827c2ee4242e6
2020-09-24 12:38:37 +00:00
jenkins-bot 6acb34d566 Merge "QA: Restore nested reference test" 2020-09-02 23:17:09 +00:00
Jdlrobson 74838b2fa2 Revert "ServiceWiring: Avoid usage of deprecated Title::getSubjectPage()"
This reverts commit ae8e3ad58b.

Reason for revert: This led to T260155 as the internal class uses
isSubPage which is not available on LinkTarget

Bug: T260155
Change-Id: I783f41e70cf1cf3b91737bce9cbf9ac729a778df
2020-08-11 15:50:44 +00:00
Derick A ae8e3ad58b ServiceWiring: Avoid usage of deprecated Title::getSubjectPage()
SkinUserPageHelper::__construct() should be able to consume a LinkTarget
too as NamespaceInfo::getSubjectPage() method returns a LinkTarget and
the Title::getSubjectPage() is deprecated.

Change-Id: I08bfc9bb21772b450798b6354bee2ab09d5dba4d
2020-08-08 14:07:48 +01:00
jdlrobson 7408d87465 Run bundlesize tests on every commit
It was added in 7340485014
but for some reason never enabled.

This was supposed to be protecting us from performance regressions
by monitoring the size of modules in the repo. It appears to be
broken both locally and on Jenkins when run on the due to some changes
in Phabricator.

Since then we've added bundle size tests to Vector using a different
more foolproof method. I think that method is more preferable as it
also provides coverage for JS and icons so the
associated script is copied over and used in Minerva
and activated on all commits.

Bug: T259080
Change-Id: I9ba2dcc060ec09d91814c947d5be3f71b055a66e
2020-07-28 23:43:38 +00:00
jdlrobson 065b6e52b2 QA: Restore nested reference test
References clicks should now apply to the `sup` element not `a`
as the `a` element can contain spans.

Depends-On: I0d5bb398e99465ade357743dd3ff34ae551243c5
Bug: T258096
Change-Id: I5d8cae5f465a86282796b3fdc6bc658f6c836432
2020-07-28 21:53:19 +00:00
Edward Tadros 6f1fb87414 Selenium: Skip nested reference test.
BUG: T258096
Change-Id: Ie16eb622384a48ad2b060a720ea3e8e6abfb1fa2
2020-07-28 13:55:36 -07:00
Edward Tadros 49c8c0f0e1 Selenium: Update WebdriverIO to version 6
Bug: T255447
Change-Id: I51daa462187983462d7f6529e5f76f47b21e5ef2
2020-07-13 07:38:36 -07:00
Edward Tadros c8ce9608c0 Selenium: Update WebdriverIO to version 5
Bug: T255447
Change-Id: I4cdde3070a6dc4e742ea37a78a17dfd556103dd6
2020-06-30 08:27:05 -07:00
jdlrobson 2e450e104e Donate link should be in a separate group in main menu
Bug: T219793
Change-Id: I7501c87eaa799e4c8a9052f5e3f650a89f376d1b
2020-06-29 14:38:34 -07:00
jenkins-bot 83da1b00e5 Merge "build: Update eslint-config-wikimedia to 0.16.0" 2020-06-04 19:38:17 +00:00
jenkins-bot 95086b5bcb Merge "Privacy->Privacy policy" 2020-06-04 19:37:14 +00:00
Ed Sanders a32999e641 build: Update eslint-config-wikimedia to 0.16.0
Change-Id: Icabf6e065ed5685207731262db72faf848a0a04d
2020-06-04 08:39:32 -07:00
jdlrobson d69911854e Privacy->Privacy policy
The link label has changed to reflect the label and link used by
the desktop site.
If wanted we can change the label via hook however this doesn't
seem worthy of that added complexity.

Change-Id: Ifd0754f8189a3bfd5a508b0981c82b246d3f6e40
2020-06-04 08:38:03 -07:00
Edward Tadros 02bd59ca73 Selenium: Increase mochaOpts timeout for debugging
Change-Id: I64606304ddd5e7fb116cd4a1a9958b8703617b27
2020-06-04 14:59:04 +00:00
Reedy 2d7150125c Fix PSR12.Properties.ConstantVisibility.NotFound
Bug: T253169
Change-Id: I35b646522df6f0ec14ca8fee718937cc8cf44ce9
2020-05-19 22:59:27 +00:00
Reedy 01f824f684 Fix namespace of SkinUserPageHelper
Allows autoloading of file

Change-Id: Ife276b5802e3cdcfd5789a7a91684317c81d5bb3
2020-05-01 02:29:54 +01:00
Edward Tadros b12fe5d5cc Fixed search_loggedin.js Selenium browser test
Fixed the search_loggedin.js test by updating watched watchstar methods.

Bug: T174018
Change-Id: I521279d97bc0b264062296cf318f4f56cebee2aa
2020-04-17 08:02:11 -07:00
Željko Filipin fafc41afd4 Selenium: update README.md file
Simplify, update and fix a few typos in README.md.

Bug: T210726
Change-Id: Iab666e1de50f3a0a00faef65e4ea42adb2b1d1ee
2020-04-16 17:52:00 +02:00
Ed Sanders 2a52e7f15c build: Update linters
Change-Id: Iaf0c760d5a69bc41505b782ab9f05864c37c7196
2020-04-13 16:05:10 +01:00
Daimona Eaytoy edaa6715a0 tests: Avoid calls to Title::__construct
Change-Id: Ib41a016c1deb70daf4ccc302631d70ca7e006503
2020-03-13 14:01:04 +00:00
Željko Filipin 9d0ffdd867 Selenium: record videos of all tests
Works only on Linux. It works in our CI, since it uses Linux.
For instructions on how to test it on a Linux machine see:
https://www.mediawiki.org/wiki/Selenium/Node.js/Inside_MediaWiki-Vagrant

Bug: T245250
Change-Id: Ic4d909304b498c56f155bcade40a99f95ed72bcb
2020-03-11 21:03:56 +00:00
James D. Forrester 0892d190b6 Drop support for $wgMinervaCustomLogos being set
Bug: T232140
Change-Id: I56dc8ac8d394ad7561ea09e67da6c51db2bc90f9
2020-03-10 20:40:32 +00:00
jenkins-bot e838fcec22 Merge "Deprecate wgMinervaCustomLogos in favor of $wgLogos" 2020-02-20 00:29:22 +00:00
jdlrobson 51a348097d Deprecate wgMinervaCustomLogos in favor of $wgLogos
Testing:
```
// Start with no Minerva config and no wgLogos defined in LocalSettings.php

// Set $wgMinervaCustomLogos
// Should trigger deprecation warning.
$wgMinervaCustomLogos = [
	'copyright' => 'https://en.m.wikipedia.org/static/images/mobile/copyright/wikipedia-wordmark-fr.svg',
	'copyright-height' => 40,
	'copyright-width' => 120,
];

// Set wgLogos without wordmark
// Should trigger deprecation warning as $wgMinervaCustomLogos is still
// defined.
$wgLogos = [
	'1x' => 'https://en.wikipedia.beta.wmflabs.org/static/images/project-logos/enwiki.png'
];


// Set wgLogos['wordmark']
// No deprecation warning. $wgMinervaCustomLogos will now be ignored
// in favor of the new wordmark key.
$wgLogos = [
	'1x' => 'https://en.wikipedia.beta.wmflabs.org/static/images/project-logos/enwiki.png',
	'wordmark' => [
		'src' => 'https://en.m.wikipedia.org/static/images/mobile/copyright/wikipedia-wordmark-fr.svg',
		'height' => 40,
		'width' => 120,
	],
];

// You can now safely drop $wgMinervaCustomLogos.

```
Depends-On: I66a971631c623cc94b58eb0e5e5bad804789bf1c
Bug: T232140
Change-Id: I013bd0904fe8c55efa49d14e84cf06ec1412896f
2020-02-19 23:59:28 +00:00
Nicholas Ray 46ab5b9c36 Prevent our 'no-restricted-properties' from clobbering eslint-config-wikimedia
Our eslintrc extends from 'wikimedia/client' which includes a
'no-restricted-properties' ruleset from the 'not-es5.js' file [1].

However, we were also including our own 'no-restricted-properties'
rules.

ESLint handle this duplication by clobbering instead of merging
so eslint-config-wikimedia's no-restricted-properties where not taking
effect and we were losing out on some guards against using es6.

This commit corrects that and makes both no-restricted-properties
rulesets merge instead of clobber as already done in MobileFrontend [2]

[1] 07320f16ae/language/not-es5.js (L5)
[2] https://github.com/wikimedia/mediawiki-extensions-MobileFrontend/blob/master/.eslintshared.js

Bug: T239269
Change-Id: Ibc2c144be51719d71a4c1d5828486253a5d4bf5d
2020-02-11 17:04:14 -07:00
Bartosz Dziewoński 700b1c43e9 Allow passing context to MinervaPagePermissions
Previously it always used the global context RequestContext::getMain(),
which is basically equivalent to using $wgTitle or $wgUser, and will
not produce the correct results when used in other situations than
regular web requests (e.g. API requests or jobs).

MinervaPagePermissions is required to parse pages (due to the custom
section edit links in SkinMinerva::doEditSectionLink), which is often
done in API requests or jobs.

Pass the appropriate context in SkinMinerva::getPermissions(). This
fixes T234868. Note that MinervaPagePermissions is also used elsewhere
and I am not fixing those cases.

Depends-On: Iaa83e5f801c7776bf8218d8ce7484e2485b227d4
Bug: T234868
Change-Id: I2d6fd525f20a0b6beeeaa731f6b8caa471b8529d
2020-01-29 10:33:36 -08:00
Umherirrender 5b0a4f30b2 build: Updating mediawiki/mediawiki-codesniffer to 29.0.0
Change-Id: I529c6a67eeb5eb012031b69ef63f4338f3685178
2020-01-26 20:26:31 +01:00
jdlrobson 46f28730e1 Do not add the navigation-enabled class to body tag for drawers
This class is used for the main menu exclusively. Applying it
will reveal 2 transparent shields on top of each other when is
not desired

Bug: T214049
Change-Id: I8ddcc7082c3c602a78084157c2d613366a8016c7
2020-01-14 01:20:40 +00:00
jdlrobson ff687da5c2 Categories browser test only runs if the feature is enabled
Remove some Ruby code which was causing lots of confusion.

Bug: T237290
Change-Id: I2c0ae965e4ee094c1b4edc3817c1bf66dc3fa694
2020-01-13 22:09:07 +00:00
jenkins-bot 357c9599ab Merge "CtaDrawers no longer stay behind in DOM" 2019-12-19 20:59:01 +00:00
jdlrobson 48adb2c5bf CtaDrawers no longer stay behind in DOM
A new controller is added - drawers.js with methods for controlling
display and removal of drawers. The existing code in references is
moved there and extended to support scroll to hide behaviour

Console warnings will disappear with this change.

Additional changes:
* Standardise the page issues element selector - should be the container
not a link inside it (was a red link so triggering wrong behaviour)

Bug: T214045
Change-Id: Id4719b5209dd7647775e2959e46dbae0c3dde3ac
2019-12-19 19:56:02 +00:00
Jan Drewniak f5bef2ea5c Main menu button works without JS
Converts the main menu button to work without JS using the CSS-only
"checkbox" hack, using the ToggleList module from the dropdown menus.

Bug: T225213
Change-Id: I0eff0439f7284ec74f6304324fab409e8a1b6245
2019-12-19 19:55:39 +00:00
jenkins-bot 280e2fd96c Merge "QA: Update selector tagName" 2019-12-19 19:47:51 +00:00
jdlrobson 9a90b22c3f QA: Update selector tagName
Follow up to Id032df3a420d577e42572ab128ca89a006b67ffe
where the tag name changed from div to section

Change-Id: I9b40102c9e7a3e85003432759e3a5e3208fcddc4
2019-12-19 11:33:20 -08:00
jdlrobson 428047087a QA: Move reference browser test to Node.js suite
Ruby is not supported. The test often flakes.

Change-Id: I883cf283ea5307cdc0daebf41f20928d1adb309a
2019-12-18 00:40:27 +00:00
Nicholas Ray ec93d34370 Resemble AMC mode for all users on user pages & user talk pages
This commit:

* Removes the blue secondary action links found on User pages

* Modifies ToolbarBuilder to add the contributions
icon into the toolbar when on a user page/user talk page.

* Turns on HISTORY_IN_PAGE_ACTIONS, TOOLBAR_SUBMENU,
TALK_AT_TOP skin options for all users on user pages / user talk pages.

* Languages icon is moved to overflow menu

* Remove $userPageHelper param from UserNamespaceOverflowBuilder as
it isn't using it and it is confusing to pass it in

Bug: T232653
Bug: T235681
Depends-On: I2138472e68d8cab1c50cbb42807bd5b79e7e2749
Change-Id: I940e5cf7638ff38686eeca3d41554b8a22d35615
2019-12-13 14:10:43 -08:00
Piotr Miazga e703f00655 Add History icon and Article/Talk tabs to default loggedin experience
Additional change:
Drop the feature file - no value in having to keep talk.js and talk.feature
in sync

Bug: T232594
Bug: T232652
Change-Id: Id8d05b1358f81845d70142ceebf193d8b192ee0a
2019-12-13 21:04:36 +00:00
Ammar Abdulhamid 898b048d1c Discontinue back-to-top feature
Bug: T237290
Change-Id: I06a6823bd3d1985a1d76384bb65c9d2ddf334a21
2019-12-11 05:12:43 +00:00
Nicholas Ray 2d579183c9 Render talk page as a tab instead of an overlay
Following up on Jon's POC, this will get rid of the talk board component in
favor of linking to the server rendered talk page.

Additional Changes:

* Cleaned up talk selenium tests. Removed talk_steps.rb which doesn't appear
to be used anymore.

* Changed talk add button classes to a single class

* Moved "Add discussion" button to postheadinghtml per design mock

* Added  "...talk-explained", "...talk-explained-empty" messages to
postheadinghtml per design mock

* Due to undesirable jumps in window scroll caused by the section anchor
& Toggler.js code when opening the TalkSectionOverlay (read fixme in
code), a Promise is always returned from OverlayManager route to reset
the scroll position to the top when the section overlay is opened.

* Moved
"mobile-frontend-talk-fullpage",
"mobile-frontend-talk-reply-success",
"mobile-frontend-talk-topic-feedback",
"mobile-frontend-talk-explained"
"mobile-frontend-talk-explained-empty"
messages to minerva as minerva is
the one who initiates those messages now.

* Limited $talk selector to only `.talk` elements since amc talk tab
does not need to be targeted

* After saving a reply from TalkSectionOverlay, the DOM that is not
part of the overlay becomes out of sync since a new reply was created.
To get around this, an `onSaveComplete` callback was passed (similar to
the TalkSectionAddOverlay) to execute a full page refresh. Although this
is clunky, it is the easiest way to resync.

Bug: T230695
Depends-On: I80201394fd7015db6700446142b0b4b20829f12e
Change-Id: I243f1193bce0da9fa710fc3b5379f90b2d079680
2019-11-05 09:51:43 -07:00
jdlrobson 916fe079b6 QA: Update watchstar browser test selector
Follow up to I1141d570cf17d659a943659e8f44ebcdd166ca3c
Change-Id: I2728c0eeb0c68c29fa786bec2d00d72ba5d2dfbd
2019-10-29 12:49:28 -07:00