Commit graph

404 commits

Author SHA1 Message Date
Jon Robson b079031b0a Send a toast notification if night mode is not available
Add a skin-night-mode-page-disabled class to the HTML element when
a page was disabled by the new MinervaNightModeOptions configuration
flag.

Bug: T356653
Change-Id: I7a6582ef8f66e78cc6f07da06bc4d2a3277cfcf0
2024-02-14 01:51:23 +00:00
jenkins-bot 8dbb6d0be6 Allow pages to not appear in night mode
- Add config to skin.json
- Add the function in SkinMinerva.php to check exclusion of pages and namespaces.

Bug: T355705
Change-Id: I0fa0eab3bfa57cc6864dbdd2d6aeaa5582767c3c
2024-02-08 21:28:14 +01:00
Steph Toyofuku 573ac59dc5 Query params can set night mode value
Whereas previously, the value of the query param would simply determine
whether or not night mode was enabled, we would like to be able to
control the actual night mode setting off of the query param

Now, it functions as an option to force the user into a particular
setting, be it automatic, night, or day.  If the query param is not set
(if night mode is enabled via config), we will default to the user
option as before

Bug: T355118
Change-Id: I38ed94bfc1b80d0a827c63c6dbdd92eb6f1bf531
2024-02-05 14:45:49 -08:00
Steph Toyofuku ef46f238a7 Set up user option for night mode
Add a new user option, `minerva-night-mode`, and configure it with a
default value of 2 (automatic based on OS).  Rework the code in
`getHtmlElementAttributes` to set the initial class value according to
the user option, which will be set and saved inside of MobileFrontend

Bug: T355118
Change-Id: I4b0d63a186f490ba10b7655b3af4dcb8b64bd400
2024-02-02 13:28:35 -08:00
Steph Toyofuku f614ce6687 Add feature flag for night mode
Adds a config flag, `MinervaNightMode`, and wires it up as a skin option
for enabling/disabling the night mode toggle (sold separately)

Additionally, allow this feature to be enabled via the
`minervanightmode` query param

For now, turning the flag on will result in the class
`skin-nightmode-clientpref-1` being added to the HTML element, but in a
later change this will be updated to switch values based on the
forthcoming client pref

Bug: T355118
Change-Id: I35848ab80ee75d324ceb35d17794e2d3e620cc19
2024-01-31 00:38:51 +00:00
Ed Sanders 8ef144f936 build: Update linters
Change-Id: I5aa3ab891890b52057a5fc855315e5b1b2203037
2024-01-24 22:02:12 +00:00
Umherirrender 1ad05f4a2e Use namespaced classes
Changes to the use statements done automatically via script
Addition of missing use statement done manually

Change-Id: I1eec0823b7af97ea5031ff00b111e0c88b45a155
2024-01-06 16:31:38 +01:00
Steph Toyofuku a0837cd3f5 Add tests for getTabsData and dependencies
I recently put up a change and was informed by jenkins-bot that I had
decreased PHP test coverage :/

As I would like to be the type of person that only  increases  test
coverage, I wrote the corresponding tests for my change, as well as the
member functions it depends on.  From what I can tell, this is the
correct method of writing unit tests, but please do let me know if there
is anything I'm missing!

Change-Id: Id5c4f76ae058d2b0d487245c28b9ccecc2deef8e
2024-01-02 15:15:29 -08:00
Steph Toyofuku 5e35d585cf Fix alignment for nearby and settings items in menu, and correctly hide when JS is disabled
Removes a `display: inherit` that was causing issues with the alignment of these two items in the menu.  In addition, correctly sets display to none for jsonly-specified list items when client js is disabled and rename the class to make it more specific to the menu items

Note: this will have a visual impact as it is fixing what is currently a visual bug.  The jsonly hiding will also not work with cached content, but since it's currently broken we figured this was acceptable

Bug: T346670
Change-Id: I56d2c4fcba09d199a0fd6aad2f1621509bbfaba5
2023-12-14 21:58:39 +00:00
Moh'd Khier Abualruz 41a5ac75c5 Update modules to not use data URIs to reduce bundle size
- Add "useDataURI": false to following modules:
 -- skins.minerva.mainMenu.advanced.icons
 -- skins.minerva.personalMenu.icons
 -- Remove .mw-ui-icon-mf-next-invert old class kept for caching from edit.page.js

Bug: T346162
Change-Id: I362fdc9c68a7483c182e3540cba6501d9b12959d
2023-12-06 00:24:22 +00:00
jenkins-bot dc3ffae59d Merge "Disable another flakey test" 2023-11-27 20:27:15 +00:00
jenkins-bot ea6cf440cf Merge "Revert "Revert "Disable flakey test""" 2023-11-27 20:07:23 +00:00
Bartosz Dziewoński 8c6067584b Disable another flakey test
Bug: T348539
Change-Id: Icb79bbd404b445a1c42d52b060475250d155490a
2023-11-27 20:48:05 +01:00
Bartosz Dziewoński 7c645549a6 Revert "Revert "Disable flakey test""
This reverts commit 49e2acf2f4.

Bug: T334634
Change-Id: I672e2a6ad31b02118051a21246d808ea94f0a7e4
2023-11-27 19:45:00 +00:00
jenkins-bot 093f4ee01f Merge "Revert "Disable flakey test"" 2023-11-20 23:27:02 +00:00
Bartosz Dziewoński 49e2acf2f4 Revert "Disable flakey test"
This reverts commit be398f8a29.

Reason for revert: The underlying issue should be fixed.
Let's see if this test works better now.

Bug: T334634
Change-Id: I261606edd277935a34588d9695b9024f01a0d3f0
2023-11-20 22:34:01 +00:00
Jdlrobson ca28efc9c7 Drop mw.mobileFrontend references
This restores the previously reverted patchset
If5b76245bf60bfa9cf977cdbf37ee0d6bb65f9d9

Changes since original:
* Added Depends-On to MobileFrontend
* Uses OOUI classes for page issues rather than es6 classes - ES6
classes do not support modifications to class prior to running
super so MobileFrontend's View class is not compatible without
significant refactors.

Depends-On: I24ad75adf8519102ca356d64d99d765ab69180cc
Bug: T348807
Change-Id: I4ff82af0251254c846f2caee330af5af738f6029
2023-11-10 01:30:52 +00:00
jenkins-bot 78a21f8f3b Merge "Revert "Drop mw.mobileFrontend references"" 2023-11-03 19:45:41 +00:00
Jdlrobson 2ee3e27406 Revert "Drop mw.mobileFrontend references"
This reverts commit 19ea6328b0.

Reason for revert: Breaks page issues and image overlay. I
will break this up into smaller less risky patches.

Change-Id: If5b76245bf60bfa9cf977cdbf37ee0d6bb65f9d9
2023-11-03 19:26:16 +00:00
Jon Robson 691d263144 Account for load basic button
When the editor is loading a loading overlay is shown and its not
possible to escape it via the back button. Make sure that the test
waits for this to disappear before continuing.

Bug: T348539
Change-Id: Ib53f9129d2cc89c23142c447e25d727592521ae0
2023-11-01 20:38:14 +00:00
Jon Robson 19ea6328b0 Drop mw.mobileFrontend references
Bug: T348807
Change-Id: Ib71b43005e5788d0e29917a165281faa84926414
2023-10-31 21:54:26 +00:00
David Lynch dfccc816af Selenium tests: broaden the definition of the article page edit link
Bug: T348353
Change-Id: I92f7c2c5f4691bd511219432c53379ddd928eae2
2023-10-06 16:27:49 -05:00
Jon Robson 05231bb254 Support extension of page actions via hook and addPortletLink
This adds support for:
mw.util.addPortletLink('p-views', '#', 'text', 'fooz',null,
  null,'#page-actions-overflow' )

and adding multiple edit icons via hooks.

Depends-On: I655097769620301143140ded1cde4c7a16879ef4
Depends-On: I401805224c0f387ac85b52b50c1f298b83c03a91
Bug: T346944
Change-Id: I3c9d59f49f1b939981a7b2b450448db6736d5958
2023-10-04 22:15:47 +00:00
Jon Robson d407d1054c Remove or document remaining mw-ui-icon usages
Most of these are captured in other bugs
The anon talk message style doesn't do anything.

Bug: T344022
Change-Id: Iba1fce98ea05931fe07b2b20f07c62d198039d1b
2023-09-13 00:03:38 +00:00
Jon Robson dc51175986 Remove wmf-a11y from daily job
It's throwing an error disrupting the build

Change-Id: Icc31316010f57813513ddd4449c74735ca7b63ae
2023-09-11 15:10:51 -05:00
bwang 269bd5bdaf Remove old :before icon selectors and update selectors to not use minerva and wikimedia prefixes
Bug: T344022
Change-Id: I573d7b36513cd0b74f62621cc246f719bcb94256
2023-09-06 13:53:22 -05:00
Jon Robson 952789bc17 Switch Minerva button template to use Codex and remove mw-ui-button
- Removes 'mw-ui-icon-with-label-desktop' as that is now the default behavior for icon only buttons in Minerva
- Removes icon flushing classes, use codex mixins instead

80 Visual changes relating to minor icon/button subpixel changes in the heading, edit section links, and page actions

Bug: T319260
Change-Id: I503b643d33e43196483af4b5f9dd312237322ac8
2023-08-24 15:57:01 -05:00
gerritbot fd2fe83a0c Replace some moved Title class uses, now MediaWiki\Title\Title
Bug: T321681
Change-Id: I236a14b07bd78141f82e86d7ea872d24b6cd88eb
2023-08-19 19:36:46 +02:00
Jon Robson d342cb32ef [Icons] Use Button template in PageActionsMenu.
Use the Button.mustache partial in the
PageActionsMenu.mustache template.

This converts the page actions menu to use the Button
template in a way that doesn't change the existing HTML.
The mw-ui-icon-element and mw-ui-icon-with-label-desktop
classes are placed onto the Button.mustache markup.

Bug: T342908
Change-Id: Ib5dadd929eea2e72a24e061c4174348615890617
2023-08-10 19:27:44 +00:00
jenkins-bot 0c69779b73 Merge "Echo uses Button template" 2023-08-08 17:44:22 +00:00
Jon Robson ded6430b47 Echo uses Button template
Changes
* Update FIXME in userMenu.less to merge selectors
* We replace minerva-user-notifications class with minerva-notifications
to short-circuit Echo's code so that it no longer replaces the Minerva
notification badge with its own.
* We update resources/skins.minerva.scripts/initMobile.js to introduce
our own wire up code - this is responsible for opening Echo overlay
and reseting the counter. The code in Echo will be removed in a follow
up (see <I2f923e509d24524a2375ffbe6b3ef336487574bb>)
* We update skinStyles/ext.echo.styles.badge.less with styles from Vector 2022
so that Minerva desktop remains consistent with desktop Vector 2022 experience.
* We clearly mark technical debt relating to the special mobile version.

Testing:
* Pixel.js has a group echo that covers all the different variants.
Make sure to update to latest main branch before running these.
* Desktop should behave the same for Minerva as Echo.
* On mobile only when a user has unseen notifications a red circle
is shown. Otherwise a bell icon is shown, never with number.
* On mobile a single button is visible that combines alert and count
numbers.
* With Echo disabled a bell shows that links to the user talk page

Visual changes:
* Previously the red circle became a transparent/gray circle on click. Now
it will always be red.
* Minor aligment changes to red circle and bell icon are expected as
the change prevents MobileFrontend/Echo updating the icon to use
Codex.

Bug: T342907
Change-Id: I55c18cf723a32f80b93a01dd0687e005162c4e93
2023-08-08 15:44:38 +00:00
Jan Drewniak 3020e58eaa [Icons] Use IconLegacy template in menuGroup and ToggleListItem
Updates the menuGroup.mustache and ToggleListItem.mustache
templates to include the IconLegacy.mustache template partial.

These templates are used by the main menu and dropdown menus
(logged-in user menu and advanced mobile contributions 'more' menu).

This should result in no visual or HTML changes.

Bug: T342908
Change-Id: Idfad10b48c9ee9e833509e3c4063c6a4b014a31b
2023-08-03 13:11:16 +02:00
Daimona Eaytoy b84487b6f4 Avoid DB access in non-database tests
Bug: T155147
Change-Id: I812e9695f3db0db7e8b0d1001478adc90d35652b
2023-08-01 20:04:24 +02:00
Jon Robson be398f8a29 Disable flakey test
Noticed this today.

Apparently was reported a long time ago so let's disable this for
now.

Bug: T334634
Change-Id: Id46a8a7d4b9a22ed5d1bd5df5d5f9b03df1f72b0
2023-07-27 09:45:57 -07:00
Daimona Eaytoy 731c0b5703 Avoid accessing the database in SkinUserPageHelperTest
TestUser's are created for real in the test database, but this test
doesn't need that, especially because it's not in the Database group.

Change-Id: I8261b7e8130f0698df4f1684da767f312504c307
2023-07-17 18:11:32 +00:00
Daimona Eaytoy e9e3095a10 Convert MinervaPagePermissions to Authority
Move away from User, and use Authority instead. The only exception is
isBlockedFrom, which still requires a User object, so inject a
UserFactory for that.

Simplify the test accordingly, and also remove implicit assumptions as
to what certain user groups are or aren't allowed to do (e.g., watch
pages).

Also avoid using TestUser as it needs a DB connection.

Change-Id: Idfff8fd00f7b01df1dc6ec509dfc0cbd10ce7ce0
2023-07-17 20:11:23 +02:00
Umherirrender 32c1ebd3cc tests: Make PHPUnit data provider static
Initally used a new sniff with autofix (T333745)

Bug: T332865
Change-Id: Ie3edbdce0d5eae5b09236675469f32719cee558d
2023-05-20 10:58:18 +02:00
Umherirrender b24107fbcf build: Updating eslint-config-wikimedia to 0.25.0
Change-Id: I3280de17d1dbd2da5980ea87cf29f420a99b457b
2023-05-16 00:02:49 +02:00
Umherirrender 69dd6f1c5b build: Convert resources/.eslintrc.js to json file
No javascript code in the file

Follow-Up: If778a8176b8a18cc9a5501f7147cc39fc0a48d45
Change-Id: I556d34a0f9e880cd4a0b97d7ef3e0831e2fef5eb
2023-04-11 19:06:04 +02:00
Vaughn Walters 677ce50b24 selenium: Refactor WebdriverIO tests from sync to async mode
WebdriverIO has dropped support of sync mode, hence changed to async.

Update npm packages: @wdio/*, wdio-mediawiki
because async mode needs at least @wdio v7.9.

Remove npm packages: @wdio/dot-reporter and @wdio/sync.

Bug: T293084
Change-Id: I5babbdadf21e9f951f69de93bfca5213a50965aa
2023-04-08 16:18:28 -05:00
Umherirrender b21e4a98bc Avoid use of deprecated User::idFromName
Use a UserFactory instead of getting an id and the user objects on
second request

Also replace another deprecated User class and use the injected factory

Bug: T325687
Change-Id: Id610ee39e0ef865b97f7ae8506188eea04a86ac5
2022-12-21 22:35:49 +01:00
Željko Filipin da92d66df1 selenium: Skip flaky test
"Wikitext Editor.Closing editor (overlay button)" is breaking CI in core.

Bug: T313775
Change-Id: I3dd3d196a09d7a62faf78d31239e3c8d00141704
2022-12-07 15:47:58 +01:00
Željko Filipin e4abf9c0fb selenium: Delete failing test
"Wikitext Editor (Makes actual saves).Broken redirects" is constantly
breaking CI in core.

I have enabled it in
b9a92ef717
but it isn't as stable as I thought.

Bug: T280652
Change-Id: I667f65a27fd420a3a70f39fb5e1606907e465897
2022-11-30 18:57:21 +01:00
jenkins-bot 16bcb0e716 Merge "selenium: Enable one skipped test, delete one failing test" 2022-11-28 22:07:04 +00:00
Umherirrender 7346ac5494 tests: Replace assertEmpty with assertSame
assertSame avoids use of loose comparisons and
allows to check the expected type

Change-Id: Icd903f3b4397896380e2a087d0e8029920d7be92
2022-11-24 22:51:26 +01:00
Željko Filipin b9a92ef717 selenium: Enable one skipped test, delete one failing test
'Broken redirects' was disabled in 69a100cb45
'should be creatable' was disabled in 5e0dd88af0

'should be creatable' is failing so it is deleted.
'Broken redirects' is passing so it is enabled.

To be sure that the passing test is not flaky, the CI has ran it 100
times, it never failed.

Bug: T280652
Change-Id: I34a863dcbd126c2da8a98624e6ba1fa916eac0cf
2022-11-24 12:31:34 +00:00
Moh'd Khier Abualruz 9c94cb9b52 Special contribute Selenium Test
Fix Beta tests on Minerva, to accept both cases of enabled and disabled contribute special page.

Change-Id: Ic538655d63347a432029e7d637e9251662d560aa
2022-11-15 09:49:31 +01:00
bwang 43d32233d1 Fix a11y logged in test case on beta
Change-Id: I2baa60a512522525163758b454d8826e5f0fa63d
2022-10-21 17:35:40 +00:00
bwang 130ca9c54d Disable headless puppeteer for a11y testing
Change-Id: I33b0fcb1f132ae62824b48511c3a02a3d95e9c55
2022-10-07 14:59:14 -05:00
jenkins-bot 401683288d Merge "Add automated a11y test coverage to Minerva" 2022-10-06 16:37:18 +00:00