Mobile/QA Test Audit March 2014

The purpose of this page is to audit MobileFrontend's browser test and check what needs additional coverage.

Article page features

 * This page has issues
 * Editing lead section
 * Clicking edit button when anonymous shows CTA [covered in header.feature]
 * Clicking back button from preview takes you back to editor
 * Clicking back button from edit overlay closes overlay.
 * Clicking submit saves my edit and reloads the page with my change. [Covered indirectly by the diff.feature]
 * Editing a subsequent section
 * Uploading
 * Trying to upload a lead image to a page which doesn't need one [covered in badly named header_logged_in.feature]
 * Clicking upload when anonymous shows CTA [covered in header.feature]
 * Watching
 * Clicking watch star when anonymous shows CTA [covered in header.feature]
 * Clicking watch star adds page to watchlist
 * Clicking a watch star on a watched page removes page from watchlist
 * Clicking language button shows list of available languages [covered twice by language.feature and language_logged_in.feature]
 * ...and I can see variants where available [NOT covered]
 * and I can close the language overlay [covered in language.feature]
 * Searching
 * Searching shows me results
 * I can do a full text search
 * I can watch articles from search [NOT covered]
 * Viewing talk page topics
 * Adding new talk page topic
 * Replying to existing talk page topic
 * Accessing left nav
 * Notifications
 * Switching to desktop
 * Viewing a reference
 * Toggling a section
 * I can toggle open a section [Covered by external_links.feature]
 * I can close a section

Special pages

 * Nearby page in vector skin
 * Giving location so that I can view pages near me
 * Nearby page in mobile skin
 * Giving location so that I can view pages near me
 * Refresh results
 * Random page
 * Watchlist page
 * When anon takes me to login page
 * Switching to modified view
 * Switching to list view
 * more link
 * apply namespace filter on modified view
 * Page shows latest diff [Covered by diff.feature]
 * Diff page renders correctly [Covered by diff.feature]
 * Thank user
 * Uploads page
 * When anon takes me to login page [covered by login_required_uploads.feature]
 * Infinite scroll
 * Uploading an image
 * Settings page
 * Opt into beta
 * Opt into alpha
 * Disable images
 * Login
 * See message when already logged in [covered by login.feature]
 * Error when logging in
 * I am able to create an account [covered since we use this for editing as a new user]
 * I can refresh captcha [covered]
 * I get an error when I have an issue creating an account [Covered]
 * Invalid captcha [Covered]
 * password mismatch [covered]
 * existing username [not covered]
 * I am able to logout

Unclear
The purpose of these features is not really clear: create_article.feature [ doesn't seem to test anything]

In need of refactoring
pages/home_page.rb

Big mess which duplicates functionality/steps in article_page - should inherit from ArticlePage

login_required_watchlist.feature

Given statement seems a bit too much :) - Given that I am using Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

header.feature

Badly named should probably rename to anonctas.feature or even better split into watchstar, edit and upload features.

header_logged_in.feature

Badly named. Scenario "Uploading Image" is confusing. It actually checks you cannot upload lead photos to the home page.

Redundant tests
The following tests don't really make sense:

external_links.feature

It's not clear why we would want to check that an external link goes to the right place. This also creates an unnecessary dependency on having a Barack Obama page with a specific link.

footer.feature

Not clear to me why we want to check that links in the footer resolve. Checking for the existence of these links seems like a better test?

image_resolves.feature

Again not clear why we need to check that clicking an image takes you to it's file page. Also adds this dependency on the Barack Obama page which seems unnecessary.

language_logged_in.feature

Doesn't seem to add any value on top of language.feature

menu_opens_page.feature

Again .. why we need to check that these URL's all resolve to the correct place? Seems redundant. Also the tests aren't really true "my URL should be set to the Watchlist Page" for example resolves to true when you are on the login page with a redirect set to the watchlist page.