Commit graph

1263 commits

Author SHA1 Message Date
Baha 5d4cc8d15a Allow bucketing anons
* Logged in users bypass bucketing. They keep working as before.
* When Page Previews is configured as a beta feature, logged out users
  won't see the feature.
* If an anonymous user has enabled/disabled the feature using
  the settings cog then they will see or not see the feature
  depending on the value of their setting.
* The other anonymous users are bucketed. By default 90% of these
  users see the feature, the other 10% don't. These numbers can be
  controlled by the config variable `wgPopupsAnonsEnabledSamplingRate`.

Bug: T157700
Change-Id: I5307587b10f4849c4e82d3b064ff759121c2de67
2017-03-01 10:45:32 +00:00
Sam Smith f54f92402c storage: Fix UserSettings#hasIsEnabled
mw.storage#get doesn't take a default value to return if the underlying
storage is disabled or the key is missing. In the former case it'll
return false and in the latter it'll return null, i.e. in neither case
will it return undefined.

Bug: T157700
Change-Id: I3f653c11468e17b64765e85ebb3b8f03e311352a
2017-03-01 10:45:32 +00:00
Translation updater bot e4ea8df42e Localisation updates from https://translatewiki.net.
Change-Id: I8368aec050f5dce8712b0a3412ad65a3cf5a227e
2017-02-28 23:09:29 +01:00
jenkins-bot 3a050ffa6a Merge "Tests: Migrate {integration,actions}.test.js to node qunit" 2017-02-27 22:01:16 +00:00
Translation updater bot 3b839adcb9 Localisation updates from https://translatewiki.net.
Change-Id: I8100875e4ba82e4338bfd9927daa1fdded12e391
2017-02-27 22:31:37 +01:00
joakin 82e315b124 Tests: Migrate {integration,actions}.test.js to node qunit
Because of the globals mw.popups.wait usage and mocking in both actions
and integration, they need to be migrated in a single step, fixing them
both to require wait.js and mock using mock-require instead of the
global variable.

Additional changes:
* Fix FIXMEs about actions.js using the global mw.popups.wait instead of
  the require one.
* Fix the unit tests to use require mocking for wait.js instead of
  global variable mocking in both integration and actions tests
* Change tests that use deferreds and promises to be async qunit tests
  (Deferreds are asynchronous with jQuery in node, apparently they
  weren't in the browser)
* Change integration.test.js to use require on Redux and ReduxThunk

Change-Id: I8e3e87b158bd11c9620e77d0a73e611cf9e82183
2017-02-27 18:17:28 +01:00
jenkins-bot 7a54c13ec4 Merge "truncation: Fix fade direction for RTL previews" 2017-02-27 17:12:14 +00:00
Sam Smith 938a4b85d4 Hygiene: Remove checkin instrumentation
The "checkin" part of the Popups schema was superseded by the
ReadingDepth schema, the implementation of which is tracked by T155639.

As well as removing all checkin-related code, update the Popups schema
to the latest version - the version that doesn't have the checkin
property.

Bug: T155639
Depends-On: I762ec3fc91decf3cffa869dbd783faf62f01329a
Change-Id: If764917b6e121e1f9db980a4efa30c0f7a166197
2017-02-27 14:48:47 +00:00
Sam Smith 84a60c4db7 truncation: Fix fade direction for RTL previews
CSSJanus v1.1.3 doesn't appear to flip the "to right" argument for the
linear-gradient CSS function. As with the position of the truncating
element in I0d50a8b5, the direction of the gradient doesn't vary with
the text direction of the current page but that of the target page.

Bug: T158858
Change-Id: I4b6fcf68bdf57722348513f12c7b19f80b2545c4
2017-02-27 11:51:40 +00:00
Ebrahim Byagowi b64260b1cc i18n: Fix popups fade on RTL
Bug: T158858
Change-Id: I0d50a8b55ebdfb8167e36ba520fd6e7cfd4be717
2017-02-27 08:59:53 +00:00
Translation updater bot 367cfb6cf4 Localisation updates from https://translatewiki.net.
Change-Id: I5ebfcd0f1bed264d7552be64b52271b7cec63fd3
2017-02-25 22:35:18 +01:00
Translation updater bot 566d40627f Localisation updates from https://translatewiki.net.
Change-Id: I7002d1548d934f1579909d203f082d9de6dcf77d
2017-02-24 22:38:42 +01:00
Translation updater bot bbf47538c9 Localisation updates from https://translatewiki.net.
Change-Id: I724c1274f31cc1ae7fa983bb4451e38bbc09be1e
2017-02-23 23:00:27 +01:00
jenkins-bot 3d61accb81 Merge "Tests: Migrate previewBehavior.test.js to node qunit" 2017-02-23 09:49:07 +00:00
jenkins-bot eb4950c200 Merge "Tests: Migrate settingsDialog.test.js to node qunit" 2017-02-23 09:46:54 +00:00
jenkins-bot 1e834083f3 Merge "Tests: Migrate gateway/rest.test.js to node qunit" 2017-02-23 09:45:48 +00:00
jenkins-bot 4502c257a4 Merge "Tests: Migrate changeListeners/render.test.js to node-qunit" 2017-02-23 09:45:48 +00:00
jenkins-bot a29cae6539 Merge "Tests: Migrate changeListeners/syncUserSettings.test.js to node-qunit" 2017-02-23 09:45:47 +00:00
jenkins-bot 922a9f94a9 Merge "Tests: Migrate changeListeners/linkTitle.test.js to node-qunit" 2017-02-23 09:42:12 +00:00
jenkins-bot 178d429679 Merge "Tests: Migrate changeListeners/footerLink.test.js to node-qunit" 2017-02-23 09:39:23 +00:00
jenkins-bot c47d5ce48c Merge "Tests: Migrate gateway/mediawiki.test.js to node-qunit" 2017-02-22 23:18:52 +00:00
jenkins-bot 1797f4eb7e Merge "Test: Migrate wait.test.js to node-qunit" 2017-02-22 23:18:52 +00:00
jenkins-bot 9883cd8fc7 Merge "Tests: Up the min version of the node qunit runner" 2017-02-22 23:13:10 +00:00
Translation updater bot bdafa3c686 Localisation updates from https://translatewiki.net.
Change-Id: I75686f684797eda5e4bf77438ac752f3b0d4fa2b
2017-02-22 22:44:38 +01:00
Sam Smith 61b4e70dea tests: Actually run QUnit tests
I225019b8 introduced a regression where empty Resource Loader modules,
i.e. modules without any scripts, were being added in the
ResourceLoaderTestModules handler because the base directory wasn't
being calculated properly.

Change-Id: I25b01b2b5a4fe78e5c784eeba25bdaec37198abf
2017-02-22 12:01:12 +00:00
joakin 8e78005b30 Tests: Migrate previewBehavior.test.js to node qunit
Additional changes:
* Mock global usage of mw.Title.newFromText().getUrl

Change-Id: Idcabea0f996f481194d1b6ecbea6f9f63b253bc6
2017-02-22 12:14:07 +01:00
joakin fb4649d469 Tests: Migrate settingsDialog.test.js to node qunit
Additional changes:
* Mock usage of global mw.{msg,template,config}

Change-Id: I67e5cdd5bb275b9083eae0df80af2195c41a7f8e
2017-02-22 12:14:07 +01:00
joakin 4f71f6f740 Tests: Migrate gateway/rest.test.js to node qunit
Additional changes:
* Fix eslint errors in the test file
* Mock global mw.Title usage in the test

Change-Id: Ia2778457239184639150d03ab0f0a1ca597a862e
2017-02-22 12:14:07 +01:00
joakin 2ca5fed3ee Tests: Migrate changeListeners/render.test.js to node-qunit
The render change listener is hard coupled to the renderer file, so in
order to migrate the test, instead of stubbing a global variable, we had
to either inject the renderer into the change listener factory as done
everywhere else, or mock the require call.

In order to do one thing per commit, we're mocking the require call
here to get the migration done, but added a FIXME to use dependency
injection instead in a future change.

Change-Id: I50f82cdc9664d34b8a8ccc1ff368f7209404159d
2017-02-22 12:14:05 +01:00
joakin 4e0c054a19 Tests: Migrate changeListeners/syncUserSettings.test.js to node-qunit
Change-Id: I3bf86e0452557e938fe7066978e553d583d974f7
2017-02-22 12:13:38 +01:00
joakin 715389443c Tests: Migrate changeListeners/linkTitle.test.js to node-qunit
Change-Id: I714b8737d61ce3db35852ceb977449c709002537
2017-02-22 12:13:38 +01:00
joakin 010502b9b1 Tests: Migrate changeListeners/footerLink.test.js to node-qunit
Given this is a jsdom environment assertions using jQuery's :visible
have been changed to check the display property for visibility.

See https://github.com/tmpvar/jsdom/issues/1048

Change-Id: Ifad8067c0b50053a94ac977ee1f1f5a3066bfa16
2017-02-22 12:13:37 +01:00
joakin 48988e30da Tests: Migrate gateway/mediawiki.test.js to node-qunit
Change-Id: Ia47b0f793430b355eb2e39d74a05e72ea55de0b1
2017-02-22 12:13:37 +01:00
joakin 30550e2670 Test: Migrate wait.test.js to node-qunit
Don't use fake timers for now because of some problems with other async
tests.

Change-Id: If48a8c7390416938d50c9c0c39539fe4a6a9a6af
2017-02-22 12:13:37 +01:00
joakin 8a2f19d593 Tests: Up the min version of the node qunit runner
It has important improvements, and we don't want dev to use a previous
version.

List of changes on the runner:
* 1.0.6 Add globals to window too
* 1.0.5 Don't reorder or run tests in parallel
* 1.0.4 Don't autostart the tests, they are manually started
* 1.0.3 Invoke sandbox restore after hooks have been called
* 1.0.2 Default fake timers and server to false

See https://github.com/joakin/mw-node-qunit/commits/master

Change-Id: Ic3283c99eb374bc9f85c703ef0b55f875d527e0b
2017-02-22 12:13:34 +01:00
jenkins-bot e9012c1fcd Merge "Add Factories ADR" 2017-02-22 10:50:45 +00:00
Sam Smith 58ab7345fb Add Factories ADR
During the review of I71a8a848, it was noted that there was no
documentation/ADR about the use of factories over classes.

Change-Id: I29ab44b3f9c680c81fbddebc7844bd05e26f18df
2017-02-22 11:46:45 +01:00
Translation updater bot c5559d971c Localisation updates from https://translatewiki.net.
Change-Id: I1321997e0335d3f72b83b537c74a326c0a2c4887
2017-02-21 22:49:34 +01:00
jenkins-bot e885755f8e Merge "Test: Migrate changeListeners/settings.test.js to node-qunit" 2017-02-21 20:41:33 +00:00
jenkins-bot 68cd0a330d Merge "Test: Migrate eventLoggingChangeListener.test.js to node-qunit" 2017-02-21 20:41:22 +00:00
jenkins-bot c6ccf9dddf Merge "Test: Migrate changeListener.test.js to node-qunit" 2017-02-21 20:39:29 +00:00
jenkins-bot 0971543bde Merge "Test: Migrate isEnabled.test.js to node-qunit" 2017-02-21 20:37:13 +00:00
jenkins-bot 1b367df9ae Merge "Test: Migrate preview/model.test.js to node-qunit" 2017-02-21 20:36:02 +00:00
jenkins-bot d19c5701f9 Merge "Test: Migrate reducers/eventLogging.test.js to node-qunit" 2017-02-21 20:33:28 +00:00
jenkins-bot 51f39da9d3 Merge "Test: Migrate reducers/preview.test.js to node-qunit" 2017-02-21 20:30:21 +00:00
jenkins-bot 5e12cdaece Merge "Set up qunit running in node to migrate tests to commonjs" 2017-02-21 20:19:23 +00:00
Piotr Miazga 6a1948d729 Hygiene: Use CommonJS in gateway/rest.js
Changes:
 - removed unnecessary IIFE closure

Change-Id: Ic91c29d9d5e09573145c8667a6a941233b91b3fd
2017-02-21 17:57:08 +00:00
Translation updater bot b190a17cea Localisation updates from https://translatewiki.net.
Change-Id: I9ae6fcaa253b91aef70633abae4e9011cbce7c0a
2017-02-20 23:52:18 +01:00
joakin 620c97c53d Test: Migrate changeListeners/settings.test.js to node-qunit
Change-Id: Ic7651133ee2ac6eee68d30b3c7069c26da1abf8b
2017-02-20 20:01:01 +01:00
joakin 600b21182d Test: Migrate eventLoggingChangeListener.test.js to node-qunit
And on the way there actually put it in a changeListeners/ folder and
rename it to eventLogging.test.js

Change-Id: I60685021841b44f606f39b07bf7f5262344262f4
2017-02-20 20:01:01 +01:00