From bcb2dd8b823f3133a2d4bffcffdbfa6b28e86aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Tue, 3 Sep 2013 12:13:41 +0300 Subject: [PATCH] Make more tests pass in sandbox.translatewiki.net * When ULS is in personal, cancel opens the language selector again but apply doesn't. * Created separate steps for testing the ULS trigger in personal position, different behavior with different configuration. Change-Id: Ifb7f101f2bfacd32c11cba69e7f2c01fe9bd9bb7 --- .../features/step_definitions/panel_steps.rb | 8 +++++- .../step_definitions/uls_triggers_steps.rb | 4 +-- .../features/support/pages/panel_page.rb | 3 +++ .../features/support/pages/random_page.rb | 1 - tests/browser/features/uls_triggers.feature | 27 ++++++++++++++++--- tests/browser/tags.txt | 5 ++++ 6 files changed, 40 insertions(+), 8 deletions(-) diff --git a/tests/browser/features/step_definitions/panel_steps.rb b/tests/browser/features/step_definitions/panel_steps.rb index 6737682b..b89c8a1e 100644 --- a/tests/browser/features/step_definitions/panel_steps.rb +++ b/tests/browser/features/step_definitions/panel_steps.rb @@ -43,7 +43,13 @@ When(/^I select "(.*?)" font for the (.*?) language for the live preview$/) do | end When(/^I close the panel to discard the changes$/) do - on(ULSPage).panel_button_close_element.click + on(ULSPage) do |page| + page.panel_button_close_element.click + # Also close the ULS language selection if open + if uls_position() == 'personal' + page.uls_button_close_element.when_visible.click + end + end end Then(/^the active (.*?) font must be the same as font prior to the preview$/) do |type| diff --git a/tests/browser/features/step_definitions/uls_triggers_steps.rb b/tests/browser/features/step_definitions/uls_triggers_steps.rb index 266188e6..7f4cf1d0 100644 --- a/tests/browser/features/step_definitions/uls_triggers_steps.rb +++ b/tests/browser/features/step_definitions/uls_triggers_steps.rb @@ -2,6 +2,6 @@ When(/^I click language selector trigger element$/) do on(RandomPage).uls_trigger end -Then(/^I should see the Language selector$/) do - on(RandomPage).language_settings_dialog_element.should be_visible +Then(/^I should see the language selector$/) do + on(ULSPage).uls_element.should be_visible end diff --git a/tests/browser/features/support/pages/panel_page.rb b/tests/browser/features/support/pages/panel_page.rb index d937b32e..4308964d 100644 --- a/tests/browser/features/support/pages/panel_page.rb +++ b/tests/browser/features/support/pages/panel_page.rb @@ -4,6 +4,9 @@ class ULSPage include URL page_url URL.url('?<%=params[:extra]%>') + div(:uls, class: 'uls-menu') + span(:uls_button_close, id: 'uls-close') + div(:panel_display, id: 'display-settings-block') div(:panel_input, id: 'input-settings-block') button(:panel_fonts, id: 'uls-display-settings-fonts-tab') diff --git a/tests/browser/features/support/pages/random_page.rb b/tests/browser/features/support/pages/random_page.rb index 54ddb242..38de1384 100644 --- a/tests/browser/features/support/pages/random_page.rb +++ b/tests/browser/features/support/pages/random_page.rb @@ -14,7 +14,6 @@ class RandomPage ul(:input_method_language_list, class: 'ime-language-list') div(:input_method_selector_menu, class: 'imeselector-menu') text_field(:language_filter, id: 'languagefilter') - div(:language_settings_dialog, id: 'language-settings-dialog') li(:main_page, id: 'n-mainpage-description') a(:malayalam_link, title: 'Malayalam') a(:more_languages, class: 'ime-selector-more-languages') diff --git a/tests/browser/features/uls_triggers.feature b/tests/browser/features/uls_triggers.feature index 319c803d..6f7b0098 100644 --- a/tests/browser/features/uls_triggers.feature +++ b/tests/browser/features/uls_triggers.feature @@ -1,11 +1,30 @@ @commons.wikimedia.beta.wmflabs.org @en.wikipedia.beta.wmflabs.org Feature: ULS trigger in personal toolbar - @uls-in-personal-only - Scenario: Open language selector - Given I visit a random page + @login @uls-in-personal-only + Scenario: Open language selector when logged in + Given I am logged in When I click language selector trigger element - Then I should see the Language selector + Then I should see the language selector + + @uls-in-personal-only @no-anon-language-selection + Scenario: Open language settings when logged out and language change not allowed + + If the user is logged out, the user will either see the language selector + or the settings panel, depending on whether language selection for + anonymous users is disabled. This and next test cover both cases. + + Given I am at random page + When I click language selector trigger element + Then I see the logged in language settings panel + + @uls-in-personal-only @anon-language-selection + Scenario: Open language selector when logged out + + Given I am at random page + When I click language selector trigger element + Then I should see the language selector + @login @uls-in-sidebar-only Scenario Outline: Opening language settings from sidebar diff --git a/tests/browser/tags.txt b/tests/browser/tags.txt index 20d0698b..bee6854a 100644 --- a/tests/browser/tags.txt +++ b/tests/browser/tags.txt @@ -24,3 +24,8 @@ This file contains the descriptions of the tags we use. @uls-in-sidebar-only These tests will automatically be marked as skipped if ULS configuration is not the one expected for the test. + +@anon-language-selection +@no-anon-language-selection + Depending on the wiki configuration, you should filter out either one of + these tests.