Commit graph

97 commits

Author SHA1 Message Date
Cmcmahon b3df4d0814 QA: Refactoring and making the nojs test dtrt
* add @custom_browser tag so we don't create an extra browser instance
* remove @chrome tag because this only works in Firefox
* alphabetize within G/W/T buckets in commons_steps.rb
* alphabetize flyout_steps.rb
* bring env.rb up to date with the modern situation
* make assertions about the URL and heading on the final destination page
* update Ruby gems, especially mediawiki-selenium with a @custom_browser improvement
** use modern RSpec assert syntax
*** we're going to have to update all the repos for this soon

Change-Id: I6cb20126a662bd2a20e2b4bbebe91e8f3b04c7df
2014-09-23 13:35:50 -07:00
Cmcmahon 50790b2965 QA: refactor for consistent Ruby practice
* use symbols not strings for element labels
* use double quotes except where single quotes required

Change-Id: I4eef50206c526611da535e529035c076d5bce266
2014-09-17 16:27:24 -07:00
S Page a1864d71c8 QA: Update selenium-webdriver so Firefox 32 works
I did `bundle update`.
Without this, browser tests on Firefox 32 fail with
`unable to obtain stable firefox connection in 60 seconds
(127.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError)`

Change I26190cca06ee gave Flow the same update, this Gemfile.lock is
identical except Echo has a "chunky_png" gem.

Change-Id: I0b62134d38f3262b734af83cc58b644040857645
2014-09-16 17:49:38 -07:00
Cmcmahon 7eacda1306 QA: get messages test to pass properly
This is lieu of

https://gerrit.wikimedia.org/r/#/c/159685/

If we merge this patch, we should abandon 159685

Change-Id: I84e0a1df6076a68ee7e97feb929195da9937c412
2014-09-15 11:07:45 -07:00
Matthias Mullie adfb235de0 Switch the order of Alerts and Messages tabs
Change-Id: I864d45336c23331543ff6aaea8ec6512d4fba0c3
2014-09-10 15:31:09 +00:00
S Page b634890634 QA: Fix missing "Given I am logged in as a new user"
Echo browser tests pass, but are skipping
  Scenario: New user gets a sign up notification
because a step definition is missing.

I simply adapted
  ^I am logged in as a new user with no notifications$
and the scenario passes in chrome.

Change-Id: I9f2bd10d05b689eaacbf2890913786eb157d6af9
2014-09-10 15:26:53 +00:00
jdlrobson 2cacf82efa Restore QUnit tests to reflect alert as default tab
This reverts the tests and amends them after the
application of commit 5da9eac08a.

Luckily nothing appears to be broken.

Change-Id: I67acfe5dc74ef750d5443dd619dbb114623ee233
2014-09-09 13:23:37 -07:00
bsitu 9c55aa0fc8 Colors are backwards for flyout section link
Also make active section link not clickable

Change-Id: I7f391929382489e8bad5ab56fea9f2ef7b2978b0
2014-09-09 16:31:23 +02:00
Erik Bernhardson 5da9eac08a Default to alerts tab
The only exception is when there are new message notifications but no new
alert notifications.

Bug: 70461
Change-Id: I06daa3f7d526beeb878eb343c169e01acd49e71f
2014-09-08 13:18:51 -07:00
Erik Bernhardson 584394fcde Hygiene: Give ApiStub modes names instead of numbers
Change-Id: Ia01ba14a1b2ab179454f14e5a1595ff468c46fc5
2014-09-05 16:52:42 -07:00
Cmcmahon 76665c552a QA: make Feature names easy to read
Don't duplicate "Notification types" Feature between tests. I
guess this was a copy/paste issue.

Change-Id: I032130024113bb326f0cfbbe09cd7455bdaf7ab5
2014-09-02 10:26:59 -07:00
jdlrobson d8702e46b4 QA: Add browser test for user rights change
Change-Id: I9cb453d1107d0fe961abb32d358a4c00bb9f40c8
2014-08-28 13:57:03 -07:00
Cmcmahon c982b0a4fa QA: update to fix deprecated API token call
Change-Id: I8046af1add07e26e40fc000a9feeab65b75e4b68
2014-08-27 08:57:45 -07:00
jenkins-bot d807d9f62e Merge "Hygiene: Move notification type detection to method" 2014-08-25 22:06:17 +00:00
bsitu f29f7303d1 Make timestamp in consistent format after loaded from database
Notification timestamp is generated in MW format (YYYYMMDDHHMMSS)
inside the model and saved to the database in db specific format,
We need to convert it back to MW format when loading the data
from the database, it just happens that MW format is the same
as MySQL timestamp format

Change-Id: Ie881b66c8c24d57a8933c0153e9e7db5fe6aa017
2014-08-22 15:53:51 -07:00
Erik Bernhardson ae3b1f2944 Hygiene: Move notification type detection to method
* Moved most of the content from notify to getEventNotifyTypes
* Added phpunit test verifying per-event config overrides defaults
* Remove special-snowflake welcome handling with proper configuration

Change-Id: Ic1aae11d37f23f2b7b8abe3c1edaa414e29be021
2014-08-22 14:05:47 -07:00
bsitu 092127726b Hygiene: Echo/tests/phpunit/ directory structure should mimic Echo/
Change-Id: I4867d09bb815d621f9feaaf7b8a541e5d817e0d2
2014-08-21 22:58:27 +00:00
jdlrobson 5c73416b4c QA: Add missing browser test steps
Change-Id: I3a54902ae1cf2d2b7263243722bb0b7f57bcba95
2014-08-21 00:02:42 -07:00
jenkins-bot 51dda5473c Merge "[2] Add title local cache holder objects" 2014-08-19 17:57:22 +00:00
bsitu 1270da19e8 [2] Add title local cache holder objects
Core titleCache doesn't do what I expect it to do, issuing
Title::newFromId( 1 ) mulitple times would issue multiple
idential queries to the database. It doesn't return what's
already in the cache.

The goal of this patch is to batch load titles via newFromIDs,
and save the number of mysql queries

Change-Id: I8fe767ac2669e67bdf7d17eecccfc0dcb6b5fc7d
2014-08-18 13:52:40 -07:00
Cmcmahon 37812e4bab QA: add test2 tag for Jenkins builds
Change-Id: I3d5195e58ac4f617baa358624543ffdfdc8fb7bd
2014-08-18 10:44:00 -07:00
jenkins-bot a3449bfb67 Merge "Hygiene: Stop using id for footer" 2014-08-18 17:27:00 +00:00
jenkins-bot 7fac1c3ee8 Merge "Use batch queries for users-watching-title" 2014-08-18 08:33:13 +00:00
Cmcmahon 2b472785ef QA: add @login tag for Jenkins build
Change-Id: I0f2aa8f2f42c2fbb986a14e7ab50d6ccbe814b48
2014-08-15 13:13:15 -07:00
jenkins-bot 124cbbd036 Merge "Auto mark notification as read if it doesn't have target page" 2014-08-15 18:35:27 +00:00
Erik Bernhardson 1667e25854 Use batch queries for users-watching-title
The new locateUsersWatchingTitle implementation could end up returning
thousands of users, currently on enwiki there are 25 titles with more
than 10k subscribed users and aprox 550 titles with more than 1k subscribed
users.

This switches the user collection to an iterator based implementation so that
we no longer need to have the entire users list at any one time.

Change-Id: I3d3fa9328f348bb48682d3658622952ce82d3925
2014-08-15 10:44:55 -07:00
jdlrobson 965a8b8a2f Hygiene: Stop using id for footer
No need. Class works perfectly fine here.

Change-Id: I8188e759ad3eed971d5847b23d49b333d80b509f
2014-08-15 17:43:56 +00:00
bsitu 61fea56641 Create TargetPage data if specified by EchoEvent
Change-Id: I71039eb03b4b7e617ce03d515a6d51c4f3666ab8
2014-08-15 00:16:41 +00:00
bsitu 7be9d68219 Auto mark notification as read if it doesn't have target page
The special page will now not auto mark a notification as read if
it has a target url. Currently no notifications have target urls
but this will be changed in a later patch...

Change-Id: I9bd71d59391189d5d761ab5f1c84af0bc3554be0
2014-08-15 00:11:57 +00:00
bsitu cac4050990 Mark notification as read upon visiting a page
Change-Id: I84493fbf742acd90645d484d42f049796a5e48ee
2014-08-14 14:10:55 -07:00
jenkins-bot f001382328 Merge "Add TargetPage model and mapper to notifications" 2014-08-14 20:18:44 +00:00
jenkins-bot 6c19cf53c2 Merge "Merge remote-tracking branch 'gerrit/two_tabs'" 2014-08-14 18:52:56 +00:00
Erik Bernhardson 4deca8b9d8 Merge remote-tracking branch 'gerrit/two_tabs'
Change-Id: Ie2c7abd1df09c501e86c6ef4c22fd8670163de4c
2014-08-14 11:51:43 -07:00
jenkins-bot d3d39ef55c Merge "Add support to mark all as read for "sections"" 2014-08-14 18:51:03 +00:00
jenkins-bot 1510733291 Merge "Revert "Revert "Merge remote-tracking branch 'gerrit/master' into two_tabs""" 2014-08-14 18:47:40 +00:00
Bsitu 483e7e80d5 Revert "Revert "Merge remote-tracking branch 'gerrit/master' into two_tabs""
This reverts commit b9574748a4.

Change-Id: I8a8334db446dd6a2d5363a1f6ab12369b813b026
2014-08-14 18:46:26 +00:00
jenkins-bot ec9fda274a Merge "Revert "Merge remote-tracking branch 'gerrit/master' into two_tabs"" 2014-08-14 18:32:38 +00:00
EBernhardson b9574748a4 Revert "Merge remote-tracking branch 'gerrit/master' into two_tabs"
This was supposed to merge master into the two_tabs branch, but it was accidently done against master instead

This reverts commit 06ee936e92.

Change-Id: I98da735b7d5c103399a2478286d1420243df6ba4
2014-08-14 18:27:19 +00:00
Cmcmahon ebc7192684 QA: committing Gemfile.lock
need to update mediawiki-api gem

Change-Id: Ifd682db5c73a6eda2f085364808bf6c1be21b98a
2014-08-14 08:52:30 -07:00
bsitu ff0784e7da Add support to mark all as read for "sections"
This also updates the way how mark all as read works

Change-Id: Ifb7b1b7b7feb4a5af65c79bb16b91a5a9c70166c
2014-08-13 17:16:19 -07:00
jdlrobson 92ee69b92d E2f: mark all as read behaviour
Also adds browser tests for the behaviour of the mark all as read button
to ensure it only clears message notifications.

Dependency:  Ifb7b1b7b7feb4a5af65c79bb16b91a5a9c70166c
Change-Id: I46e1de229e32d705e67cebde678ecea3f3633906
2014-08-13 17:08:16 -07:00
Erik Bernhardson 06ee936e92 Merge remote-tracking branch 'gerrit/master' into two_tabs
Change-Id: I92c94bd13bea02f43fa10aa3a05d671fe2e75116
2014-08-13 17:06:39 -07:00
jenkins-bot 7739dbedf0 Merge "Add method for fetching unread notifications" 2014-08-13 23:59:14 +00:00
Spage 8755b2e8cc Merge "QA: Browser tests for Echo notifications" 2014-08-13 21:10:34 +00:00
jdlrobson def2e070f7 QA: Browser tests for Echo notifications
* Someone links to my page
* Someone mentions me
* Someone writes on my talk page (if it's not a Flow board)
* When I register

Change-Id: I12d1c6867d996c19fbd836658e87acd418e03527
2014-08-13 13:16:37 -07:00
bsitu a7fbb53584 Add method for fetching unread notifications
* This will be used for the unread notifications in message overlay

* This will be used to "mark all as read" based on sections ( event types ),
  since we can't do updateJoin.  We could set a max update limit like 3000,
  and use this to do "mark all as read", this would handle majority "mark all as read"
  use cases. This would also prevent updating big amount of data on a web request

Change-Id: I2a9103a73d0aa91a52d5c0233e946a0ef979f96d
2014-08-13 13:10:38 -07:00
jdlrobson bee2fe3af1 Fix issue with tab visibility
Danny noticed a bug where if both tabs have unread notifications,
then when opening the overlay and clicking on the alerts tab, the user
would be reverted back to the messages tab.

Test stops this from happening again.

Change-Id: I6bbbbf61251957336de8856201412fa3569ab22d
2014-08-13 10:11:06 -07:00
bsitu 029668423d Add TargetPage model and mapper to notifications
This will be used for marking a notificaiton as read when
a user visits a target page. The new table should keep the
volume as low as possible for fast data loopup. records
should be removed from the table once it's marked as read.

Change-Id: I605cbc79adfc12d22bd889c5bb513d05c479fe6e
2014-08-13 00:48:07 +00:00
bsitu ad691fb838 Use array_merge_resursive when merging based on array keys
When two array have the same keys, we want to merge them into one array
rather than one overwriting another one

This was preventing count and rawcount from appearing inside the messages
and alerts object returned by the API.

Change-Id: I989b9b0994a33925faf52c6d99d8c46920e62cd6
2014-08-13 00:42:07 +00:00
jdlrobson 24e8a34c50 E2e: Show the correct value of unread messages in the tabs.
Change-Id: I976937cfe184f37abe78904e6f2cdc81f8190e80
2014-08-13 00:39:15 +00:00