This is in preparation of adding more item models and widget types,
and in preparation of switching the notification widget away from being
a select widget.
Change-Id: I518fb3d80f4f67d677c21ca5593638269acfa544
* extract notifications to components/notifications.rb
* wait for the flyout to be loaded before counting
the unread notifications
* remove popup.feature because it is redudant with
notifications.feature and too low-level
for acceptance testing
Change-Id: If0b0286e8e98e379ae1d6d91db8084adda93b3f6
mw_selenium errors out with undefined method `last_session_ids='
when run in jenkins.
Bug: T114368
Change-Id: Ie4d1b15be3b12694d9adba8747f1457f43ead57c
This browser test checks that mentions go to alerts and talk page
messages go to messages popup. This also upgrades the MW-Selenium
version in Echo tests to 1.6.1.
Depends on MW-Selenium version 1.6.1 (See T114061)
Bug: T113081
Change-Id: I40a17500cdfb838420c04dc0b9268ba56515cc2c
The new oouified echo popup makes the tests invalid; this commit
rewrites those tests.
Also by doing this commit we are upgrading to Selenium 1.4.
Change-Id: I26215558768d55be449276c55b4b745c3a458ecb
Split the notifications into 'alert' and 'message' badget with two
different flyouts. Also clean up styling and module behavior.
** Depends on ooui change Id4bbe14ba0bf6c for footers in popups.
** Depends on ooui change Ie93e4d6ed5637c for fixing a bug in
inverted icons.
** MobileFrontend must also be updated to support the new modules
in this patch I168f485d6e54cb4067
In this change:
* Split notifcations into alert and messages and display those in
two different badges.
* Create two separate flyout/popups for each category with their
notifications.
* Create a view-model to control notification state and emit events
for both the popup and the badge to intercept and react to.
* Clean up module load and distribution:
* Create an ext.echo.ui module for javascript-ui support and ooui
widgets.
* Create an ext.echo.nojs module that unifies all base classes that
are needed for both nojs and js support, that the js version
builds upon.
* Create a separate ext.echo.logger module as a singleton that can
be called to perform all logging.
* Clean up style uses
* Move the special page LESS file into nojs module so all styles
load properly even in nojs mode.
* Transfer some of the styling from JS to LESS for consistency.
* Make the 'read more' button load already with the styles it
needs to look like a button, since its behavior is similar in
nojs and js vesions, but before its classes were applied only
by the js, making it inconsistent and also making its appearance
'jump' from a link to a button.
* Delete and clean up all old and unused files.
* Moved 'Help.png' icon from modules/overlay to modules/icons for
later use.
Bug: T108190
Change-Id: I55f440ed9f64c46817f620328a6bb522d44c9ca9
The step formerly know as "I come back from grabbing a cup of coffee"
is replaced by a step that reloads the page a number of times, where
that number may be set by the user. If the notification has arrived,
the polling stops and the test continues.
In practice with a local browser pointed to beta labs, the
notification is arriving in plenty of time for the first page load
and I do not see the page reloading at all.
Change-Id: I95dd77d4f5525645e46244e40bfcd86e9124f3b1
Cucumber Scenario and Feature description are just plain text.
Instead of using comments, it is far better to describe in each
test step what should happen in each test step.
I believe I have described these test steps correctly. Please
advise if they need to be tweaked.
(The test itself seems to be fine, but feel free to review that
also)
Finally, since messages.feature uses the "I have no new notifications"
step, I updated those assertions for modern RSpec syntax
Change-Id: Ie884a85c1fc3f7045773a271a8d76fad6b0b3826
"Then" steps should always contains RSpec assertions. In the
past this meant using some version of the word "should", but
the modern convention in RSpec is to use "expect()" as I
did here.
Change-Id: I1c438a310803e29c0985328a76d2ec08578e0cb0
* 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
* use symbols not strings for element labels
* use double quotes except where single quotes required
Change-Id: I4eef50206c526611da535e529035c076d5bce266
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
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
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
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
* 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