Commit graph

65 commits

Author SHA1 Message Date
Jon Robson e5431a1c0b Limit RelatedArticles feature to ES6 browsers
We currently require support for IntersectionObserver.
which is supported on Edge >= 15 (15 has partial support),
Firefox >55, Chrome >58, Safari 12.1, Opera >=38,
iOS Safari >=12.2, Android 100

Full ES6 is supported in Edge >=15, Firefox >=54, Chrome >=51,
Safari >=10, Opera >=38, iOS Safari >=10, so such a change
would only drop support for Edge 15 and Firefox 54.

CSS.escape is guaranteed in all these browsers according to
caniuse, with the only discrepancy being the Edge browser (versions
16-18) so it is also suggested we remove support for those browsers.

Firefox 54 accounts for 0.0026% of page views
Edge 15-18 accounts for 0.069% of page views

Bug: T306355
Change-Id: Id2987e3456607b610c38da9ee157a026d1d00ada
2022-04-27 15:45:42 +00:00
Jon Robson b528100f3d Add jest testing infrastructure
Adds a test for  resources/ext.relatedArticles.readMore/index.js

Change-Id: Icf8a5afca2489308e2bcaa611c0fe27ed9f46f3a
2022-04-19 18:51:58 +00:00
Jon Robson 911d78e8ee [organization] organize file by module
Follow up to I9442b0336e22ca795cc06f76068215266fe81271

Bug: T306228
Change-Id: Ifb1f1937009b098999471cfa5e820a063dc5a4a0
2022-04-18 08:37:22 -07:00
Jon Robson df1ff38877 [Maintenance] Reduce related articles to two modules
1) Merge ext.relatedArticles.readMore and ext.relatedArticles.cards modules

These are always loaded together. No need to have them in separate modules.
In process switch to packagefiles

2) Merge ext.relatedArticles.readMore.bootstrap and ext.relatedArticles.readMore.gateway

Always loaded together.

Bug: T306228
Change-Id: I9442b0336e22ca795cc06f76068215266fe81271
2022-04-14 17:48:37 -07:00
osamaahmed17 078cfb2347 selenium: Refactor WebdriverIO tests from sync to async mode
WebdriverIO has dropped support of sync mode due to breaking changes in Chromium, hence all tests have been changed to async.

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

Remove npm package: @wdio/sync.

Bug: T300797
Change-Id: Ia2a857eb46dbd613a10f48c686bcf6b2fdc3e202
2022-02-09 16:15:05 +00:00
jdlrobson f318d3acd2 Skip Selenium tests
Discussed with Edward, and there seems to be some problems with
these Selenium tests that are being surfaced in
Ie7cfa3e2b19d22086bfa1ba9c64e17760eb29ad2. Skipping on the short term.

Change-Id: Id9dc0b3bf6a619bec73e0e18915c184fe20936d5
2021-09-07 19:08:43 +00:00
sahil 0512e508db selenium: Update wdio-mediawiki
wdio-mediawiki v1.1.1:
- Includes wdio-defaults.conf.js file that vastly simplifies wdio.conf.js.
- Replaces @wdio/spec-reporter with @wdio/dot-reporter.
- Introduces video recording.

Bug: T283597
Change-Id: I35a7b000de1f0b55d8e797e0ff35b0b3590460e7
2021-06-21 20:46:30 +05:30
sahil 2578a87e28 selenium: Update README.md file
Bug: T282237
Change-Id: Ia14349e8630e7a075e5f3ce8dea1572027309ef3
2021-05-24 18:00:35 +00:00
Željko Filipin edeb38fc58 selenium: Add JUnit reporter
JUnit reporter is required to create the XML file that Jenkins uses to
create Test Result Trend chart for selenium-daily-beta-RelatedArticles
job.

Bug: T214686
Change-Id: I6d950630a85def4987118d107c15f7c7f309488c
2021-04-29 17:02:37 +02:00
Reedy 2715c27bbe Rename RelatedArticlesFooterWhitelistedSkins to RelatedArticlesFooterAllowedSkins
Bug: T277958
Change-Id: I468a38df92347cc764e0457d4598bedfc4d92efa
2021-04-20 19:00:26 +01:00
Željko Filipin 75faab3cf4 Selenium: run only 'ReadMore is present in Minerva' test when targeting the Beta Cluster
'ReadMore is not present on Vector' test works fine in CI but it is failing when targeting the Beta Cluster.

Bug: T255053
Change-Id: I80d35829601ade7df9d2cd886df6320a05430e44
2020-07-14 11:55:27 +02:00
Ed Sanders ebecd9c144 build: Update eslint-config-wikimedia to 0.16.2
Change-Id: Ib6681e7d5fb03f4fa54823bf0d37e16d37be3416
2020-06-23 20:30:43 +01:00
vidhi-mody e4f2b070c1 Selenium: Update to WebdriverIO v5
Update NPM packages: webdriverio, wdio-mediawiki.
Update ESlint configuration.

Replace NPM packages:
- wdio-mocha-framework with @wdio/mocha-framework.
- wdio-spec-reporter with @wdio/spec-reporter.

New NPM packages: @wdio/cli, @wdio/local-runner, @wdio/sync.

Replace:
- `browser.element` with `$`.
- `chromeOptions` with `'goog:chromeOptions'`.
- `password` with `mwPwd`.
- `username` with `mwUser`.
- `isVisible()` with `isDisplayed()`.

Bug: T250685
Change-Id: Ic8b49974c05f88a2010c118198b49ee10c175c68
2020-05-27 23:05:51 +05:30
libraryupgrader dfb3995a90 build: Updating dependencies
composer:
* mediawiki/mediawiki-codesniffer: 28.0.0 → 29.0.0
  The following sniffs are failing and were disabled:
  * MediaWiki.Commenting.FunctionComment.MissingParamTag

npm:
* eslint-config-wikimedia: 0.11.0 → 0.15.0
  The following rules are failing and were disabled:
  * no-jquery/no-parse-html-literal

* grunt-eslint: 21.0.0 → 22.0.0
* grunt-stylelint: 0.10.1 → 0.13.0
* stylelint-config-wikimedia: 0.6.0 → 0.8.0

Additional changes:
* Also sorted "composer fix" command to run phpcbf last.
* Removing manual reportUnusedDisableDirectives for eslint.

Change-Id: Iab538420d73bbbebfd05cf815ab06773f16da8da
2020-01-15 06:11:54 +00:00
Jan Drewniak fcd4d1a272 Hygiene: Followup from 191fc2a
pass a collection of jQuery objects to `.append` instead of
and array.

Use `.css` instead of `.attr` to set thumbnail background image.

Change a unit to reflect the escaping pattern of the `.css` method

Bug: T219846
Change-Id: I6359be2db6c7c7a8e4b52296e0801d4ded921b46
2019-05-01 22:28:47 +02:00
Ed Sanders 26b15d19b9 build: Update eslint-config-wikimedia to 0.10.1
Change-Id: I01388bfdda108e9e80b32d68983e1d826d0db784
2019-02-10 16:46:48 +00:00
Ed Sanders 7b0c26ba59 build: Update devDependencies
eslint-config-wikimedia      0.5.0  →   0.8.1
 grunt-eslint                20.1.0  →  21.0.0
 grunt-stylelint              0.9.0  →  0.10.1
 stylelint                    8.2.0  →   9.2.0
 stylelint-config-wikimedia   0.4.2  →   0.4.3

Add "eslint-plugin-qunit"

Change-Id: I4761b12a9c3d4cb35bb891a7f999a84be46f543e
2018-11-12 22:24:07 +00:00
jdlrobson 6b49ddff1b Remove EventLogging/A-B test code from RelatedArticles
With RelatedArticlesEnabledBucketSize now removed, installation of this
extension will turn it on for 100% users without any mechanism to turn
it off.

Additional changes:
* Bump version
* Add Readers team to contributors

Bug: T202306
Change-Id: I7dc270a06dd3afd4e894c8298165d6d6d4fda8d6
2018-09-20 11:13:13 -07:00
Jan Drewniak 6856ef8b5e Renaming QUnit test files from "test_" to "test.js"
Updates QUnit test files from starting with "test_" to ending with
"test.js" in accordance with the Readers Wed coding conventions.

https://www.mediawiki.org/wiki/Reading/Web/Coding_conventions

Bug: T197884
Change-Id: I3c15385d22d308b8b465985ca55e8b802d72dae4
2018-09-19 14:54:48 +02:00
Fomafix 00405b0309 Remove mediaWiki and jQuery from eslint globals
Remove all mappings in the closures like in
I7cf2426cde597259e8c6f3f6f615a1a81a0ca82b in core.

Change-Id: Ie9a2fadb8e276774784a4937bb5c3ec11f213352
2018-09-15 17:54:03 +00:00
Fomafix 969ae7c05f Remove unused jshint comment
Change-Id: If1db410a48a754a4f892b6164f6a4997bed3bec4
2018-08-17 14:06:24 +02:00
Fomafix 0fa064728f Use native JavaScript instead of jQuery
Replace
* $.each( array, function ( index, value ) { ... } ) by
  array.forEach( function ( value ) { ... } )

* $.map( array, function ( value ) { ... } ) by
  array.map( function ( value ) { ... } )

* $.isArray( var ) by
  Array.isArray( var )

* $.isFunction( var ) by
  typeof var === 'function'

Change-Id: I450f5a75eb9c3fe20517da02986b0a491ebca67a
2018-08-17 12:45:12 +02:00
Željko Filipin 5c8571317b Selenium: add selenium-daily NPM script
The script is needed to run the new Docker-based Jenkins job that runs daily and targets beta cluster.
selenium-test script, NPM packages and wdio.conf.js files are dependencies.

Change-Id: Ic0fb26cfdd07225260b6ef70ce81a49ee73af331
Job: RelatedArticles-npm-browser-run-selenium-daily-node-6-docker
Bug: T188742
2018-08-10 08:32:24 -05:00
jdlrobson 993c4e227e Use wdio-mediawiki in selenium tests
Change-Id: If48e0a885acdf4bca73ec2a9d613fe2f0403dd61
2018-06-20 10:23:11 -05:00
Željko Filipin 0a482c7e5c Update README file for Selenium tests
Bug: T187862
Change-Id: I20a3f0b87b5940c81c227d236262f036a17528d3
2018-02-27 14:06:27 +01:00
Željko Filipin 265a1c5f8f Clean up ESLint configuration
parserOptions is redundant sice env is already set to es6.

Bug: T164024
Change-Id: Iec58f229352446d95fef111b659d5e32b9bdb523
2017-12-22 16:15:44 +01:00
Željko Filipin cf04eaa480 Fix location of LocalSettings.php
It used to be in tests/browser, now it's in tests/selenium.

Bug: T164024
Change-Id: Ie05744fa18c983458f7f50a42d2f120e84b99c54
2017-12-19 13:46:53 +01:00
Ed Sanders 10de1deaf4 build: Update eslint and stylelint
Change-Id: I82bfb5fbfea4997f3048305574d2ff7d28ecd1b8
2017-10-09 15:37:28 +01:00
jdlrobson 3ec5e91e00 Make RelatedArticles tests QUnit 2 compatible
Bug: T174598
Change-Id: Ib5a8a46253beed60e77de34263504bb12146641e
2017-09-01 11:16:31 -04:00
Željko Filipin 9d2a46fbda For Selenium tests, click the link to switch to mobile view
Clicking `Mobile view` link works on both MediaWiki-Vagrant and beta cluster. Appending `&mobileaction=toggle_view_mobile` to URL works only on  MediaWiki-Vagrant.

Bug: T171847
Change-Id: Iff47a5e3b25ee3af15a4843ca7efe550c334c3b7
2017-08-22 13:22:26 +02:00
jdlrobson daa7281381 QA: Move LocalSettings to folder with other browser tests
Depends-On: Ib069004f8dcb76550fe96a6544f2846d4a7af1b9
Bug: T164024
Change-Id: Iaae9709b7407738850cdfc47c7ff56cc6eb2b1ca
2017-08-14 15:33:36 +02:00
jenkins-bot 70787d2d70 Merge "Breaking change: Remove Sidebar code from RelatedArticles" 2017-08-10 18:26:08 +00:00
jdlrobson 94ecc2d917 Breaking change: Remove Sidebar code from RelatedArticles
RelatedArticles will now only render related articles in the footer of
skins.

Bump version to 3.0.0

Bug: T165991
Change-Id: Ia4e28c0ed76b3aff37c0aea8eb713923312ba23c
2017-08-10 12:44:58 -05:00
jdlrobson b7f7d9c351 Having 2 folders for browser tests is confusing.
This patch removes all unnecessary artifacts from the old Ruby tests.
LocalSettings is needed for CI purposes and can be removed once CI
has updated.

Bug: T164024
Change-Id: Ifec8bf2b3cd7d4db105c254248cdfcdf773472ef
2017-08-02 07:42:08 -07:00
Željko Filipin a40cfcb134 Replace Ruby Related pages browser tests with node js version
Additional changes:
* Remove all Ruby artifacts
* Update eslint to allow es6 in tests

Bug: T164024
Change-Id: If6c8d32df042b831d52440963606a47c8ce7b552
2017-07-26 11:41:07 +00:00
jenkins-bot 38ac4650e0 Merge "Make number of RelatedArticles configurable" 2017-07-06 21:09:06 +00:00
jdlrobson 9126c7d0ef Make number of RelatedArticles configurable
Wikivoyage pages have more than 3 related articles as they make use
of the {{#related:}}  magic word.

After speaking with Nirzar we should allow this project to show more than 3.
This change allows this while keeping the existing behaviour on other wikis and
will pave the way for removing a bunch of code from this extension.

Additional changes:
* Cleanup skinStyles definitions
* Limit cards to 30% maximum width and give margin top to account for
situations where the number of cards are multiple of 3
** In Minerva hardcode the max-width to pixels.
* Margins are switched from hardcoded 10px to percentage based. Yes
this changes the right margin slightly but is more maintable and visually
the same.

Bug: T164765
Change-Id: I41119de3228c2df799f740d4bd00082101c21b97
2017-07-06 11:17:47 -07:00
Sam Smith f4c82d3a33 Hygiene: SamplingRate -> BucketSize
In order to avoid further confusion, clarify that we're bucketing users
for experiments.

Bug: T167236
Depends-On: I752cdf068ca25bffb38229380785e7da1a208049
Change-Id: I6508ab8fa3d436ae295eb047e170fdc5417d25fc
2017-06-20 05:26:29 +01:00
jdlrobson 4598d9b567 Remove CardsGateway (unused)
Bug: T167647
Change-Id: I7e2a7777a5f28991d77deab520a55d3bd242104b
2017-06-14 13:10:01 -07:00
jdlrobson 6dee0147f4 Migrate Cards code to RelatedArticles
* Move across all files
* Rename ext-card- prefix to ext-related-articles- prefix
** Since all code using these prefixes is JS
  we do not have to worry about cached HTML

Bug: T137021
Change-Id: I784fd132c36329fa0dcc49fe2804460061940347
2017-06-07 08:35:53 -07:00
Timo Tijhof 1b6c46d7dd tests: Don't assume synchronous jQuery.Deferred
Bug: T124742
Change-Id: I8289d88fa61447ba31e7b767727775ead411987e
2017-04-14 18:12:55 -07:00
jdlrobson dbb73c389d Remove Related Articles from desktop beta features
This change removes RelatedArticles from beta features.
It repurposes the BlacklistSkins config to be a whitelist that describes
when related pages should be shown in the footer.

To avoid enabling related pages on desktop, this depends on a config
change that makes use of the new configuration option.

Simplify browser tests to reflect the new status quo.

Bug: T146436
Bug: T160076
Depends-On: I522e0182d1c3d9261bd0561c3ec0c789b6431c7a
Change-Id: I84da1fb33a901a6365375d00d192af35422ff0b0
2017-04-04 23:01:36 +00:00
jdlrobson 0e5eef27ce Don't run the test for minerva stable against the beta cluster
On the beta cluster, the browser test should pass.
Add a new test to reflect the two different states.

Bug: T157165
Change-Id: I2a777436dfa3a14d58855449c39cc144b7149a62
2017-02-03 12:23:56 -08:00
jdlrobson c6bc8f804d Update browser test to run on desktop
This previously passed with a false positive as it replicated
the scenario `ReadMore is not present in minerva stable` by running
on the mobile domain.

This change makes it run on the desktop domain and pass (it now
fails given it runs on Minerva skin)

Bug: T157165
Change-Id: Idb2002b0f2d378cc0b6df73ad1381bfee32448c9
2017-02-03 12:22:30 -08:00
Baha 1bc4b5c1b3 Fix browser tests
The ReadMore checkbox on the beta preferences page doesn't have an ID
anymore. It has a name though, which is used from now on.

The regression was introduced in I8636f32330e23814ba3b4c0f5e22e55aaf77883e.

Bug: T148856
Change-Id: Ieb20c8d9e97d53e6afae3a9fc99ce4dea471b0b5
2016-10-24 15:27:53 -04:00
jenkins-bot ec0fbca920 Merge "Allow blacklisting skins for showing ReadMore in footer" 2016-09-26 15:31:04 +00:00
Baha 9c1404ce99 Allow blacklisting skins for showing ReadMore in footer
Introduce a new config variable `RelatedArticlesFooterBlacklistedSkins`
to control skins that are allowed to show ReadMore in the footer.
As before Minerva beta mode is always allowed to show.

Depends-on: I366c8656a0f14a7069053b2e6199caac20471ea4
Depends-on: Ie4ac3c11e81eeea9f5b4a7161a64477cb5d60f07
Bug: T144047
Change-Id: I1663ab25083d9d907f288e60d506831bebb67945
2016-09-26 15:26:03 +00:00
Željko Filipin 316073e6ff Fix MediawikiApi::HttpError in Selenium tests
Use https (instead of http) in mediawiki_url environment variable.

Bug: T145799
Change-Id: Ie4d7188a2f3a11f1eaa5163ffd83544e9828e136
2016-09-16 17:02:14 +02:00
jdlrobson f09f7a717d Beta should be available to test suite.
This old classic returns again.
A browser test fails when this is not enabled as it asserts that
the user is in beta.

Bug: T120715
Change-Id: I2c5339ba959318a3b995a28e22f3df375ae53103
2016-09-12 21:33:58 +00:00
Kunal Mehta a4c4f6700f Remove uncessary ParserClearState hook
The ParserOutput object is already reset when state is reset, so there's no
point in setting or unsetting properties on it.

And since the only unit test was deleted, remove the hook for that too.

Change-Id: Idf12365e8c4b14e527d923edc1086bdaf349df32
2016-07-28 15:55:02 -07:00