Jakob has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/353972 )

Change subject: Add browser test for adding a grammatical features.
......................................................................

Add browser test for adding a grammatical features.

This adds a test for entering and selecting an item in the grammatical
feature widget and checks whether the selected item is displayed as a
grammatical feature afterwards.

Additional dependencies to the Wikibase browser tests had to be added in
order to make use of item creation steps.

Bug: T163972
Change-Id: Iee8b62103587ab16e55eb10a5982e3b1b978d95b
---
M tests/browser/features/forms.feature
M tests/browser/features/step_definitions/forms_steps.rb
M tests/browser/features/step_definitions/lexeme_steps.rb
M tests/browser/features/support/env.rb
M tests/browser/features/support/pages/lexeme_page.rb
5 files changed, 45 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseLexeme 
refs/changes/72/353972/1

diff --git a/tests/browser/features/forms.feature 
b/tests/browser/features/forms.feature
index 16659fc..eae28b8 100644
--- a/tests/browser/features/forms.feature
+++ b/tests/browser/features/forms.feature
@@ -17,6 +17,15 @@
   Scenario: View Forms grammatical features
     And for each Form there is a grammatical feature list
 
+  Scenario: Add grammatical feature
+    Given I have a Lexeme with a Form
+     And I am on the page of the Lexeme to test
+     And I have an item with label "Plural" and description "Plural"
+    When I click on first Form's edit button
+     And I select "Plural" as the grammatical feature
+     And I save the first Form
+    Then I should see "Plural" in the list of grammatical features
+
   @integration
   Scenario: Add Form
     When I am on a Lexeme page
diff --git a/tests/browser/features/step_definitions/forms_steps.rb 
b/tests/browser/features/step_definitions/forms_steps.rb
index 243bd74..bf9dda3 100644
--- a/tests/browser/features/step_definitions/forms_steps.rb
+++ b/tests/browser/features/step_definitions/forms_steps.rb
@@ -46,7 +46,7 @@
 end
 
 When(/^I save the new Form$/) do
-  on(LexemePage).lexeme_form_save_element.when_visible.click
+  on(LexemePage).lexeme_new_form_save_element.when_visible.click
 end
 
 Then(/^"(.+)" should be displayed as a representation in the list of Forms$/) 
do |representation|
@@ -55,3 +55,29 @@
 
   expect(has_lexeme_form).to be true
 end
+
+Given(/^I have a Lexeme with a Form$/) do
+  step 'I have a Lexeme to test' # TODO: implement once Forms are storable
+end
+
+When(/^I click on first Form's edit button$/) do
+  on(LexemePage).lexeme_first_form_edit_element.when_visible.click
+end
+
+When(/^I select "(.*?)" as the grammatical feature$/) do |feature|
+  on(LexemePage) do |page|
+    page.grammatical_feature_input_element.send_keys(feature)
+    page.grammatical_feature_selection_first_option_element.when_visible.click
+  end
+end
+
+When(/^I save the first Form$/) do
+  on(LexemePage).lexeme_first_form_save_element.when_visible.click
+end
+
+Then(/^I should see "(.*?)" in the list of grammatical features$/) do |feature|
+  Watir::Wait.until(timeout = 5) do
+    on(LexemePage).first_form_grammatical_features_element.text.include? 
feature
+  end
+
+end
diff --git a/tests/browser/features/step_definitions/lexeme_steps.rb 
b/tests/browser/features/step_definitions/lexeme_steps.rb
index 4b0a22d..de6d10b 100644
--- a/tests/browser/features/step_definitions/lexeme_steps.rb
+++ b/tests/browser/features/step_definitions/lexeme_steps.rb
@@ -1,11 +1,3 @@
-Given(/^Anonymous edit warnings are disabled$/) do
-  on(LexemePage).set_noanonymouseditwarning_cookie
-end
-
-Given(/^The copyright warning has been dismissed$/) do
-  on(LexemePage).set_copyright_ack_cookie
-end
-
 Given(/^I am on a Lexeme page$/) do
   step 'I have a Lexeme to test'
   step 'I am on the page of the Lexeme to test'
diff --git a/tests/browser/features/support/env.rb 
b/tests/browser/features/support/env.rb
index dd3513c..f66d030 100644
--- a/tests/browser/features/support/env.rb
+++ b/tests/browser/features/support/env.rb
@@ -11,7 +11,10 @@
       .gsub(%r{index.php/?$}, 'api.php')
 end)
 ENV['LEXEME_NAMESPACE'] = 'Lexeme:'
+ENV['ITEM_NAMESPACE'] = 'Item:'
 ENV['LANGUAGE_CODE'] = lenv.lookup(:language_code, default: -> { 'en' })
 
 require_all File.dirname(__FILE__) + 
'/../../../../../Wikibase/tests/browser/features/support/modules'
+require_all File.dirname(__FILE__) + 
'/../../../../../Wikibase/tests/browser/features/step_definitions'
 require_all File.dirname(__FILE__) + '/pages'
+require File.dirname(__FILE__) + 
'/../../../../../Wikibase/tests/browser/features/support/pages/item_page'
diff --git a/tests/browser/features/support/pages/lexeme_page.rb 
b/tests/browser/features/support/pages/lexeme_page.rb
index c9e4607..3321081 100644
--- a/tests/browser/features/support/pages/lexeme_page.rb
+++ b/tests/browser/features/support/pages/lexeme_page.rb
@@ -23,7 +23,12 @@
   a(:add_lexeme_form, css: '.wikibase-lexeme-forms-section > 
.wikibase-addtoolbar-container a')
   textarea(:lexeme_form_input_field, css: 
'.wikibase-lexemeformview:last-of-type .wikibase-lexeme-form-text > textarea')
   spans(:lexeme_form_representation_text, css: 
'.wikibase-lexeme-form-representation .wikibase-lexeme-form-text')
-  a(:lexeme_form_save, css: '.wikibase-lexemeformview:last-of-type 
.wikibase-toolbar-button-save > a')
+  a(:lexeme_new_form_save, css: '.wikibase-lexemeformview:last-of-type 
.wikibase-toolbar-button-save > a')
+  a(:lexeme_first_form_save, css: '.wikibase-lexeme-form:first-of-type 
.wikibase-toolbar-button-save > a')
+  a(:lexeme_first_form_edit, css: '.wikibase-lexeme-form:first-of-type 
.wikibase-toolbar-button-edit > a')
+  text_field(:grammatical_feature_input, css: 
'.wikibase-lexeme-form-grammatical-features-values input')
+  a(:grammatical_feature_selection_first_option, css: 
'.wikibase-lexeme-form-grammatical-features-values 
.oo-ui-menuOptionWidget:first-of-type a')
+  div(:first_form_grammatical_features, css: 
'.wikibase-lexeme-form:first-of-type 
.wikibase-lexeme-form-grammatical-features-values')
 
   def create_lexeme(lexeme_data)
     wb_api = MediawikiApi::Wikidata::WikidataClient.new URL.repo_api

-- 
To view, visit https://gerrit.wikimedia.org/r/353972
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iee8b62103587ab16e55eb10a5982e3b1b978d95b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Jakob <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to