Tobias Gritschacher has uploaded a new change for review.
https://gerrit.wikimedia.org/r/53382
Change subject: (testing) selenium tests for multiline references (DNM)
......................................................................
(testing) selenium tests for multiline references (DNM)
- first step: checking button behavior
still ongoing work, so DO NOT MERGE
Change-Id: Id55e2f723bfae2b620b3e3b0e95ce51abd700d17
---
M repo/tests/selenium/statements/references_spec.rb
M selenium/lib/modules/reference_module.rb
2 files changed, 79 insertions(+), 6 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/82/53382/1
diff --git a/repo/tests/selenium/statements/references_spec.rb
b/repo/tests/selenium/statements/references_spec.rb
index ab07bef..4bd09a2 100644
--- a/repo/tests/selenium/statements/references_spec.rb
+++ b/repo/tests/selenium/statements/references_spec.rb
@@ -39,6 +39,8 @@
cm_statement_value = "Louisiana 462.svg"
cm_reference_value = "Lousiana Red Kammgarn.jpg"
cm_reference_value_changed = "Denkmal.png"
+# TODO: silly workaround; the tooltip should really not hide any UI elements!
+set_copyright_ack_cookie = "$.cookie( 'wikibase.acknowledgedentitycopyright',
'By clicking \"save\", you agree to the terms of use, and you irrevocably agree
to release your contribution under the [ ].', { 'expires': null, 'path': '/' }
);"
describe "Check references UI" do
before :all do
@@ -56,6 +58,8 @@
end
end
on_page(ItemPage) do |page|
+ # TODO: silly workaround; see other TODO above;
+ @browser.execute_script(set_copyright_ack_cookie)
page.navigate_to items[0]["url"]
page.wait_for_entity_to_load
page.add_statement(properties_cm[0]["label"], cm_statement_value)
@@ -69,43 +73,105 @@
page.wait_for_entity_to_load
page.referenceContainer?.should be_true
page.referenceHeading?.should be_true
+ page.referenceEditHeading?.should be_false
page.addReferenceToFirstClaim?.should be_true
+
page.addReferenceToFirstClaim
+ page.referenceEditHeading?.should be_true
page.addReferenceToFirstClaim?.should be_false
page.saveReference?.should be_false
page.removeReference?.should be_false
page.cancelReference?.should be_true
+ page.addReferenceLine?.should be_false
+ page.entitySelectorInput?.should be_true
+ page.removeReferenceLine1?.should be_true
+ page.removeReferenceLine1
+ page.removeReferenceLine1?.should be_false
+ page.entitySelectorInput?.should be_false
+ # TODO: bug -> add should be true in that case
+ #page.addReferenceLine?.should be_true
page.cancelReference
+ page.addReferenceToFirstClaim
+ # TODO end
+ page.referenceEditHeading?.should be_true
+ page.addReferenceToFirstClaim?.should be_false
+ page.saveReference?.should be_false
+ page.removeReference?.should be_false
+ page.cancelReference?.should be_true
+ page.addReferenceLine?.should be_false
+ page.entitySelectorInput?.should be_true
+ page.removeReferenceLine1?.should be_true
+ page.cancelReference
+
page.addReferenceToFirstClaim?.should be_true
page.saveReference?.should be_false
page.removeReference?.should be_false
page.cancelReference?.should be_false
+ page.addReferenceLine?.should be_false
+ page.removeReferenceLine1?.should be_false
+ page.entitySelectorInput?.should be_false
page.addReferenceToFirstClaim
page.saveReference?.should be_false
page.entitySelectorInput = generate_random_string(10)
page.saveReference?.should be_false
+ page.referenceValueInput?.should be_false
+ page.addReferenceLine?.should be_false
+ page.removeReferenceLine1?.should be_true
+
page.entitySelectorInput_element.clear
page.entitySelectorInput = properties_cm[1]["label"]
ajax_wait
page.wait_for_reference_value_box
- page.referenceValueInput.should be_true
+ page.referenceValueInput?.should be_true
page.saveReference?.should be_false
page.cancelReference?.should be_true
page.removeReference?.should be_false
- page.referenceValueInput = generate_random_string(10)
+ page.addReferenceLine?.should be_false
+ page.removeReferenceLine1?.should be_true
+ random_ref_value = generate_random_string(10)
+ page.referenceValueInput = random_ref_value
page.saveReference?.should be_true
page.cancelReference?.should be_true
+ page.addReferenceLine?.should be_true
+ page.removeReferenceLine1?.should be_true
+ page.addReferenceLine
+ page.removeReferenceLine1?.should be_true
+ page.removeReferenceLine2?.should be_true
+ page.addReferenceLine?.should be_false
+ page.removeReferenceLine2
+ page.removeReferenceLine1?.should be_true
+ page.removeReferenceLine2?.should be_false
+ page.addReferenceLine?.should be_true
+ page.entitySelectorInput?.should be_true
+ page.referenceValueInput?.should be_true
+ page.entitySelectorInput.should == properties_cm[1]["label"]
+ page.referenceValueInput.should == random_ref_value
+
page.entitySelectorInput_element.clear
page.entitySelectorInput = " "
# TODO: this will fail because of bug 44543
- # page.saveReference?.should be_false
+ #page.saveReference?.should be_false
+ #page.addReferenceLine?.should be_false
page.referenceValueInput?.should be_false
page.entitySelectorInput = properties_cm[1]["label"]
ajax_wait
page.wait_for_reference_value_box
+ page.referenceValueInput_element.clear
page.referenceValueInput = generate_random_string(10)
page.saveReference?.should be_true
page.cancelReference?.should be_true
+
+ page.addReferenceLine
+ page.addReferenceLine?.should be_false
+ page.removeReferenceLine1?.should be_true
+ page.removeReferenceLine2?.should be_true
+ page.removeReferenceLine1
+ page.removeReferenceLine1?.should be_true
+ page.removeReferenceLine2?.should be_false
+ page.entitySelectorInput.should == ''
+ page.referenceValueInput?.should be_false
+ page.addReferenceLine?.should be_false
+ page.cancelReference?.should be_true
page.cancelReference
end
end
diff --git a/selenium/lib/modules/reference_module.rb
b/selenium/lib/modules/reference_module.rb
index 3ed9d39..8e72f74 100644
--- a/selenium/lib/modules/reference_module.rb
+++ b/selenium/lib/modules/reference_module.rb
@@ -12,6 +12,7 @@
div(:referenceContainer, :class => "wb-statement-references-container")
div(:referenceHeading, :class => "wb-statement-references-heading")
link(:referenceHeadingToggleLink, :css => ".wb-statement-references-heading
a")
+ div(:referenceEditHeading, :xpath => "//div[contains(@class,
'wb-referenceview')]/div[contains(@class, 'wb-snaklistview-heading')]")
div(:referenceListItems, :xpath => "//div[contains(@class,
'wb-statement-references')]/div[contains(@class, 'wb-listview')]")
div(:reference1Property, :xpath => "//div[contains(@class,
'wb-referenceview')][1]/div[contains(@class,
'wb-listview')]/div[contains(@class, 'wb-snakview')]/div[contains(@class,
'wb-snak-property-container')]/div")
div(:reference2Property, :xpath => "//div[contains(@class,
'wb-referenceview')][2]/div[contains(@class,
'wb-listview')]/div[contains(@class, 'wb-snakview')]/div[contains(@class,
'wb-snak-property-container')]/div")
@@ -22,9 +23,15 @@
div(:reference3Value, :xpath => "//div[contains(@class,
'wb-referenceview')][3]/div[contains(@class,
'wb-listview')]/div[contains(@class, 'wb-snakview')]/div[contains(@class,
'wb-snak-value-container')]/div[contains(@class, 'wb-snak-value')]/div/div")
link(:reference1ValueLink, :xpath => "//div[contains(@class,
'wb-referenceview')][1]/div[contains(@class,
'wb-listview')]/div[contains(@class, 'wb-snakview')]/div[contains(@class,
'wb-snak-value-container')]/div[contains(@class, 'wb-snak-value')]/div/div/a")
text_area(:referenceValueInput, :xpath => "//div[contains(@class,
'valueview-ineditmode')]/div/a/textarea[contains(@class, 'valueview-input')]")
- link(:saveReference, :xpath => "//div[contains(@class,
'wb-snaklistview-toolbar')]/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='save']")
- link(:cancelReference, :xpath => "//div[contains(@class,
'wb-snaklistview-toolbar')]/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='cancel']")
- link(:removeReference, :xpath => "//div[contains(@class,
'wb-snaklistview-toolbar')]/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='remove']")
+ #link(:saveReference, :xpath => "//div[contains(@class,
'wb-snaklistview-toolbar')]/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='save']")
+ #link(:cancelReference, :xpath => "//div[contains(@class,
'wb-snaklistview-toolbar')]/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='cancel']")
+ #link(:removeReference, :xpath => "//div[contains(@class,
'wb-snaklistview-toolbar')]/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='remove']")
+ link(:saveReference, :xpath => "//div[contains(@class,
'wb-referenceview')]/div[contains(@class,
'wb-snaklistview-heading')]/div/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='save']")
+ link(:cancelReference, :xpath => "//div[contains(@class,
'wb-referenceview')]/div[contains(@class,
'wb-snaklistview-heading')]/div/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='cancel']")
+ link(:removeReference, :xpath => "//div[contains(@class,
'wb-referenceview')]/div[contains(@class,
'wb-snaklistview-heading')]/div/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='remove']")
+ link(:removeReferenceLine1, :xpath => "//div[contains(@class,
'wb-referenceview')]/div[contains(@class,
'wb-snaklistview-listview')]/div[contains(@class,
'wb-snakview')][1]/span/div/span/span/a[text()='remove']")
+ link(:removeReferenceLine2, :xpath => "//div[contains(@class,
'wb-referenceview')]/div[contains(@class,
'wb-snaklistview-listview')]/div[contains(@class,
'wb-snakview')][2]/span/div/span/span/a[text()='remove']")
+ link(:addReferenceLine, :xpath => "//div[contains(@class,
'wb-referenceview')]/span[contains(@class,
'wb-ui-toolbar')]/div/span/span/a[text()='add']")
link(:addReferenceToFirstClaim, :xpath => "//div[contains(@class,
'wb-statement-references-container')][1]/div[contains(@class,
'wb-statement-references')]/span[contains(@class,
'wb-ui-toolbar')]/div/span/span/a")
link(:editReference1, :xpath => "//div[contains(@class,
'wb-referenceview')][1]/div[contains(@class,
'wb-snaklistview-heading')]/div[contains(@class,
'wb-snaklistview-toolbar')]/span/span/span/span/a[text()='edit']")
--
To view, visit https://gerrit.wikimedia.org/r/53382
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id55e2f723bfae2b620b3e3b0e95ce51abd700d17
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Tobias Gritschacher <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits