Delete Ruby Selenium tests

Tests are broken most of the time. Ruby framework will be deprecated next month. Selenium tests
that are needed should be implemented in Node.js.

Bug: T164479
Change-Id: I8ec1d9b19b9538936c508daf2b50249a705b3170
This commit is contained in:
Željko Filipin 2017-09-29 16:36:01 +02:00
parent dc500697e1
commit fe09c22e33
43 changed files with 1 additions and 2026 deletions

View file

@ -1,6 +1,5 @@
source 'https://rubygems.org'
gem 'commons_upload', '~> 1.0', '>= 1.0.1'
gem 'mediawiki_selenium', '~> 1.8'
gem 'rake', '~> 10.4', '>= 10.4.2'
gem 'rubocop', '~> 0.32.1', require: false

View file

@ -4,25 +4,10 @@ GEM
ast (2.3.0)
astrolabe (1.3.1)
parser (~> 2.2)
builder (3.2.3)
childprocess (0.6.2)
ffi (~> 1.0, >= 1.0.11)
commons_upload (1.0.1)
mediawiki_api (~> 0.7.0)
cucumber (1.3.20)
builder (>= 2.1.2)
diff-lcs (>= 1.1.3)
gherkin (~> 2.12)
multi_json (>= 1.7.5, < 2.0)
multi_test (>= 0.1.2)
data_magic (1.0)
faker (>= 1.1.2)
yml_reader (>= 0.6)
diff-lcs (1.3)
domain_name (0.5.20160615)
unf (>= 0.0.5, < 1.0.0)
faker (1.7.3)
i18n (~> 0.5)
faraday (0.9.2)
multipart-post (>= 1.2, < 3)
faraday-cookie_jar (0.0.6)
@ -30,55 +15,18 @@ GEM
http-cookie (~> 1.0.0)
faraday_middleware (0.10.0)
faraday (>= 0.7.4, < 0.10)
ffi (1.9.17)
gherkin (2.12.2)
multi_json (~> 1.3)
headless (2.3.1)
http-cookie (1.0.2)
domain_name (~> 0.5)
i18n (0.8.1)
json (2.0.3)
mediawiki_api (0.7.0)
faraday (~> 0.9, >= 0.9.0)
faraday-cookie_jar (~> 0.0, >= 0.0.6)
faraday_middleware (~> 0.10, >= 0.10.0)
mediawiki_selenium (1.8.0)
cucumber (~> 1.3, >= 1.3.20)
headless (~> 2.0, >= 2.1.0)
json (~> 2.0, >= 2.0.2)
mediawiki_api (~> 0.7, >= 0.7.0)
page-object (~> 2.0)
rest-client (~> 1.6, >= 1.6.7)
rspec-core (~> 2.14, >= 2.14.4)
rspec-expectations (~> 2.14, >= 2.14.4)
selenium-webdriver (~> 3.1.0)
syntax (~> 1.2, >= 1.2.0)
thor (~> 0.19, >= 0.19.1)
mime-types (2.99.3)
multi_json (1.12.1)
multi_test (0.1.2)
multipart-post (2.0.0)
net-http-persistent (2.9.4)
netrc (0.11.0)
page-object (2.0.0)
net-http-persistent (~> 2.9.4)
page_navigation (>= 0.9)
selenium-webdriver (~> 3.0)
watir (~> 6.0)
page_navigation (0.10)
data_magic (>= 0.22)
parser (2.3.1.2)
ast (~> 2.2)
powerpack (0.1.1)
rainbow (2.1.0)
rake (10.5.0)
rest-client (1.8.0)
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 3.0)
netrc (~> 0.7)
rspec-core (2.99.2)
rspec-expectations (2.99.2)
diff-lcs (>= 1.1.3, < 2.0)
rubocop (0.32.1)
astrolabe (~> 1.3)
parser (>= 2.2.2.5, < 3.0)
@ -86,29 +34,17 @@ GEM
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.4)
ruby-progressbar (1.8.1)
rubyzip (1.2.1)
selenium-webdriver (3.1.0)
childprocess (~> 0.5)
rubyzip (~> 1.0)
websocket (~> 1.0)
syntax (1.2.1)
thor (0.19.4)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.2)
watir (6.2.0)
selenium-webdriver (~> 3.0)
websocket (1.2.4)
yml_reader (0.7)
PLATFORMS
ruby
DEPENDENCIES
commons_upload (~> 1.0, >= 1.0.1)
mediawiki_selenium (~> 1.8)
rake (~> 10.4, >= 10.4.2)
rubocop (~> 0.32.1)
BUNDLED WITH
1.14.5
1.15.4

View file

@ -8,9 +8,6 @@ RuboCop::RakeTask.new(:rubocop) do |task|
task.options = ['-c', '.rubocop.yml']
end
require 'mediawiki_selenium/rake_task'
MediawikiSelenium::RakeTask.new(test_dir: 'modules/ve-mw/tests/browser')
task default: [:test]
desc 'Run all build/tests commands (CI entry point)'

View file

@ -1,4 +0,0 @@
# Puppet-managed dependencies for browser tests
.bundle
.gem
.ruby-version

View file

@ -1 +0,0 @@
Please see https://github.com/wikimedia/mediawiki-selenium for instructions on how to run tests.

View file

@ -1,8 +0,0 @@
BROWSER:
- firefox
MEDIAWIKI_ENVIRONMENT:
- beta
PLATFORM:
- Linux

View file

@ -1,39 +0,0 @@
# Customize this configuration as necessary to provide defaults for various
# test environments.
#
# The set of defaults to use is determined by the MEDIAWIKI_ENVIRONMENT
# environment variable.
#
# export MEDIAWIKI_ENVIRONMENT=mw-vagrant-host
# bundle exec cucumber
#
# Additional variables set by the environment will override the corresponding
# defaults defined here.
#
# export MEDIAWIKI_ENVIRONMENT=mw-vagrant-host
# export MEDIAWIKI_USER=Selenium_user2
# bundle exec cucumber
#
mw-vagrant-host: &default
user_factory: true
mediawiki_url: http://127.0.0.1:8080/wiki/
mw-vagrant-guest:
user_factory: true
mediawiki_url: http://127.0.0.1/wiki/
beta:
mediawiki_url: https://en.wikipedia.beta.wmflabs.org/wiki/
mediawiki_user: Selenium_user
# mediawiki_password: SET THIS IN THE ENVIRONMENT!
test2:
mediawiki_url: https://test2.wikipedia.org/wiki/
mediawiki_user: Selenium_user
# mediawiki_password: SET THIS IN THE ENVIRONMENT!
integration:
user_factory: true
# mediawiki_url: THIS WILL BE SET BY JENKINS
default: *default

View file

@ -1,14 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor
Scenario: Basic edit
Given I go to the "Anonymous Edit Test" page with content "Anonymous Edit Test"
When I edit the page with Editing with
And I see the IP warning signs
And I click Save page
And I do not see This is a minor edit
And I click Review your changes
And I click Return to save form
And I edit the description of the change
And I click Save page the second time
Then Page text should contain Editing with

View file

@ -1,43 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor Bullets, Numbering
Background:
Given I go to the "Bullets VisualEditor Test" page with content "Bullets VisualEditor Test"
And I make the text "Bullets VisualEditor Test" be selected
Scenario Outline: check strings for bullets and numbering
When I click <control>
And I click Save page
And I click Review your changes
Then a <character> is added in front of input string in the diff view
And I can click the X on the save box
Examples:
| control | character |
| Numbering | # |
| Bullets | * |
Scenario Outline: check increase indent for bullets and numbering
When I click <control>
And I click Increase indentation
And I click Save page
And I click Review your changes
Then a <character> is added in front of input string in the diff view
And I can click the X on the save box
And I can click Cancel save
And I click Decrease indentation
Examples:
| control | character |
| Numbering | ## |
| Bullets | ** |
Scenario Outline: check decrease indent for bullets and numbering
When I click <control>
And I click Decrease indentation
And I click Save page
And I click Review your changes
Then nothing is added in front of input string in the diff view
And I can click the X on the save box
Examples:
| control |
| Numbering |
| Bullets |

View file

@ -1,101 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor Cite
Background:
Given I go to the "Cite VisualEditor Test" page with content "Cite VisualEditor Test"
And I click in the editable part
And I open the Cite menu
Scenario: Website
When I click Website
And I fill in the first textarea with "http://en.wikipedia.org/"
And I fill in the second textarea with "Website Source title"
And I fill in the third textarea with "Website Source date 28 July 2014"
And I fill in the fourth textarea with "28 July 2014"
And I fill in the fifth textarea with "Website title"
And I fill in the sixth textarea with "Website publisher"
And I fill in the seventh textarea with "Website Last name"
And I fill in the eighth textarea with "Website First name"
And the Website input field titles are in the correct order
And I click Add more information
And I see Show more fields
And I type in a field name "New website field"
And I click the new field label
And I fill in the new field "New website field contents"
And I click Insert Citation
And I click Save page
And I click Review your changes
Then diff view should show the Website citation added
Scenario: Book
When I click Book
And I fill in the first textarea with "Book title"
And I fill in the second textarea with "Book author last name"
And I fill in the third textarea with "Book author first name"
And I fill in the fourth textarea with "Book publisher"
And I fill in the fifth textarea with "2014"
And I fill in the sixth textarea with "9780743273565"
And I fill in the seventh textarea with "Location of publication"
And I fill in the eighth textarea with "123"
And the Book input field titles are in the correct order
And I click Add more information
And I type in a field name "New book field"
And I click the new field label
And I fill in the new field "New book field contents"
And I click Insert Citation
And I click Save page
And I click Review your changes
Then diff view should show the Book citation added
Scenario: News
When I click News
And I fill in the first textarea with "News URL"
And I fill in the second textarea with "News Source title"
And I fill in the third textarea with "News Last name"
And I fill in the fourth textarea with "News First name"
And I fill in the fifth textarea with "News Source date"
And I fill in the sixth textarea with "News Work"
And I fill in the seventh textarea with "News URL access date"
And the News input field titles are in the correct order
And I click Insert Citation
And I click Save page
And I click Review your changes
Then diff view should show the News citation added
Scenario: Journal
When I click Journal
And I fill in the first textarea with "Journal title"
And I fill in the second textarea with "Journal Source date"
And I fill in the third textarea with "Journal Last Name"
And I fill in the fourth textarea with "Journal First Name"
And I fill in the fifth textarea with "Journal Source Date"
And I fill in the sixth textarea with "Journal Journal"
And I fill in the seventh textarea with "Journal Access Date"
And I fill in the eighth textarea with "Journal DOI"
And the Journal input field titles are in the correct order
And I click Insert Citation
And I click Save page
And I click Review your changes
Then diff view should show the Journal citation added
Scenario: Basic
When I click Basic
Then I should see the VisualEditor interface
And I should see the Options use this group text
And I should see the General references
#And I fill in General references
Scenario: Error message for required field not present
When I click Journal
And I fill in the first textarea with "Journal title"
And I click Insert Citation
Then I should see a Required parameters missing error
And I should see a Go back button
And I should see a Continue anyway button
Scenario: Reusing an existing reference
Given I go to a page that has references
When I edit the page with Some content related to existing reference
And I create a reference using existing reference
Then first link to reference should be visible
And second link to reference should be visible

View file

@ -1,25 +0,0 @@
# encoding: UTF-8
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor
Background:
Given I am logged in
And I go to the browser specific edit page page
Scenario Outline: Edit with strings
When I edit the page with <input_string>
And I click Save page
And I click This is a minor edit
And I click Review your changes
And I click Return to save form
And I edit the description of the change
And I click Save page the second time
Then Page text should contain <output_string>
Examples:
| input_string | output_string |
| Editing with | Editing with |
| Editing with ÀÈÌÒÙ | Editing with ÀÈÌÒÙ |
| Editing with ÄËÏÖÜ | Editing with ÄËÏÖÜ |
| Editing with ÂÊÎÔÛ | Editing with ÂÊÎÔÛ |
| Editing with áéíóú | Editing with áéíóú |
| Editing with Déjà vu <tag "OK" "end" | Editing with Déjà vu <tag "OK" "end" |

View file

@ -1,34 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor general text markup features
Background:
Given I go to the "General Markup VisualEditor Test" page with content "General Markup VisualEditor Test"
And I make the text "General Markup VisualEditor Test" be selected
Scenario Outline: VisualEditor general markup
When I click the text style menu
And I click the <type_of_markup> menu option
And I click Save page
And I click Review your changes
Then <expected_markup_text> should appear in the diff view
And I can click the X on the save box
Examples:
| type_of_markup | expected_markup_text |
| Bold | '''General Markup VisualEditor Test''' |
| Italics | ''General Markup VisualEditor Test'' |
Scenario Outline: VisualEditor more general markup
When I click the text style menu
And I click the More option
And I click the <type_of_markup> menu option
And I click Save page
And I click Review your changes
Then <expected_markup_text> should appear in the diff view
And I can click the X on the save box
Examples:
| type_of_markup | expected_markup_text |
| Computer Code | <code>General Markup VisualEditor Test</code> |
| Strikethrough | <s>General Markup VisualEditor Test</s> |
| Subscript | <sub>General Markup VisualEditor Test</sub> |
| Superscript | <sup>General Markup VisualEditor Test</sup> |
| Underline | <u>General Markup VisualEditor Test</u> |

View file

@ -1,23 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor Headings
Background:
Given I go to the "Headings VisualEditor Test" page with content "Headings VisualEditor Test"
And I make the text "Headings VisualEditor Test" be selected
Scenario Outline: Cycle through headings values
When I click the down arrow on the Headings menu
And I click <headings_interface_name>
And I click Save page
And I click Review your changes
Then <headings_string> should appear in the diff view
And I can click the X on the save box
Examples:
| headings_interface_name | headings_string |
| Heading | "^== Headings VisualEditor Test" |
| Subheading1 | "^=== Headings VisualEditor Test" |
| Subheading2 | "^==== Headings VisualEditor Test" |
| Subheading3 | "^===== Headings VisualEditor Test" |
| Subheading4 | "^====== Headings VisualEditor Test" |
| Preformatted | " Headings VisualEditor Test" |
| Page title | "^= Headings VisualEditor Test" |

View file

@ -1,22 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox
Feature: VisualEditor Indent, Outdent
Background:
Given I go to the "Indent Outdent VisualEditor Test" page with content "Indent Outdent VisualEditor Test"
And I make the text "Indent Outdent" be selected
Scenario: Check indentation controls disabled by default
Then Decrease indentation should be disabled
And Increase indentation should be disabled
Scenario Outline: check indent and outdent enable and disable
When I click <control>
Then Decrease indentation should be <initial_state>
And Increase indentation should be <initial_state>
And I undo <control>
And Decrease indentation should be <final_state>
And Increase indentation should be <final_state>
Examples:
| control | initial_state | final_state |
| Bullets | enabled | disabled |
| Numbering | enabled | disabled |

View file

@ -1,29 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor Links
Background:
Given I go to the "Links VisualEditor Test" page with content "Links VisualEditor Test"
And I click in the editable part
And I click the Link button
And I can see the Link User Inteface
Scenario: Enter external link
When I enter external link http://www.example.com into link Content box
And I click Done to close Link User Interface
And I click Save page
And I click Review your changes
Then an external link appears in the diff view
Scenario: Enter internal link
When I enter internal link Main Page into link Content box
And I click Done to close Link User Interface
And I click Save page
And I click Review your changes
Then an internal link appears in the diff view
Scenario: Enter non-existing link
When I enter non existing link DoesNotExist into link Content box
And I click Done to close Link User Interface
And I click Save page
And I click Review your changes
Then a non-existing link appears in the diff view

View file

@ -1,18 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor Media Interface
Background:
Given I go to the "Media Interface VisualEditor Test" page with content "Media Interface VisualEditor Test"
And I click in the editable part
Scenario: VisualEditor insert new media
Given I click Media
And I enter Apollo 11 bootprint into media Search box
And I select an Image
And I click Use this image
And I fill up the Caption field with "caption"
And I fill up the Alternative text with "alt text"
And I click Insert
And I click Save page
And I click Review your changes
Then diff view should show media file with caption and alt text

View file

@ -1,19 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor Media Interface
Background:
Given I go to the "Media Interface VisualEditor Test" page with content "Media Interface VisualEditor Test"
And I click in the editable part
Scenario Outline: VisualEditor insert new media
Given I click Media
And I enter <search_term> into media Search box
And I select an Image
And I click Use this image
And I click Insert
And I click Save page
And I click Review your changes
Then diff view should show correct markup
Examples:
| search_term |
| Apollo 11 bootprint |

View file

@ -1,18 +0,0 @@
# encoding: UTF-8
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor multi-edit workflow
Goal of the test is to make sure the "Save" and "Review Changes"
workflows are consistent even where a user makes multiple page
edits in the same session. See this bug ticket:
https://bugzilla.wikimedia.org/show_bug.cgi?id=57654
Not implemented as a Scenario outline since the goal is
to test multiple page edits within a single session.
Scenario: Make multiple edits to the same article
Given I am on the Multiple edits page
And I enter and save the first edit
And I enter and save a second edit
And I enter and save a third edit
Then the saved page should contain all three edits.

View file

@ -1,55 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox
Feature: VisualEditor Options
Background:
Given I go to the "Options VisualEditor Test" page with content "Options VisualEditor Test"
And I click in the editable part
And I click the hamburger menu
Scenario: Options
When I click Options
Then I should see the options overlay
@skip
Scenario: Advanced Settings
When I click Advanced Settings
Then I should see the options overlay
And the options overlay should display Advanced Settings
@skip
Scenario: Page Settings
When I click Page Settings
Then I should see the options overlay
And the options overlay should display Page Settings
@skip
Scenario: Categories
When I click Categories
Then I should see the options overlay
And the options overlay should display Categories
@skip
Scenario: Advanced Settings setting fields
When I click Advanced Settings
And I click Yes for Indexed by Search Engines
And I click Yes for showing tab for adding new section
And I check the option for Enable display title
And I type "automated test" for display title textbox
And I click Apply Changes button
And I click Save page
And I click Review your changes
Then the options set in Advanced Settings panel should appear in diff view
@skip
Scenario: Setting the fields in Page Settings
When I click Page Settings
And I check the option for Redirect this page to
And I type "Linux" for redirect page
And I check the option for Prevent this redirect being updated when target page is moved
And I select the option Always for showing Table of Contents
And I check the option for Disable edit links next to each heading on this page
And I check the option for This is a Disambiguation page
And I click Apply Changes button
And I click Save page
And I click Review your changes
Then the options set in Page Settings panel should appear in diff view

View file

@ -1,12 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor References
Background:
Given I go to a page that has references
And I click in the editable part
Scenario: Creating References list
Given I click Reference
And I can see the References User Interface
When I click Insert references list
Then link to Insert menu should be visible

View file

@ -1,98 +0,0 @@
When(/^I click Bullets$/) do
on(VisualEditorPage) do |page|
page.bullet_number_selector_element.when_present.click
page.ve_bullets_element.when_present.click
end
end
When(/^I click Decrease indentation$/) do
on(VisualEditorPage) do |page|
step 'I click in the editable part'
page.bullet_number_selector_element.when_present.click
page.decrease_indentation_element.when_present.click
end
end
When(/^I click Increase indentation$/) do
on(VisualEditorPage) do |page|
page.bullet_number_selector_element.when_present.click
page.increase_indentation_element.when_present.click
end
end
When(/^I click Numbering$/) do
on(VisualEditorPage) do |page|
page.bullet_number_selector_element.when_present.click
page.ve_numbering_element.when_present.click
end
end
When(/^I undo Bullets$/) do
on(VisualEditorPage) do |page|
page.bullet_number_selector_element.when_present.click
page.ve_bullets_element.when_present.click
end
end
When(/^I undo Numbering$/) do
on(VisualEditorPage) do |page|
page.bullet_number_selector_element.when_present.click
page.ve_numbering_element.when_present.click
end
end
Then(/^a \# is added in front of input string in the diff view$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
page.diff_view.include? "# #{@wikitext}"
end
expect(page.diff_view).to match(/^\# #{@wikitext}/)
end
end
Then(/^a \* is added in front of input string in the diff view$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
page.diff_view.include? "* #{@wikitext}"
end
expect(page.diff_view).to match(/^\* #{@wikitext}/)
end
end
Then(/^a \#\# is added in front of input string in the diff view$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
page.diff_view.include? "## #{@wikitext}"
end
expect(page.diff_view).to match(/^\#\# #{@wikitext}/)
end
end
Then(/^a \*\* is added in front of input string in the diff view$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
page.diff_view.include? "** #{@wikitext}"
end
expect(page.diff_view).to match(/^\*\* #{@wikitext}/)
end
end
Then(/^Decrease indentation should be enabled$/) do
expect(on(VisualEditorPage).decrease_indentation_element.class_name).not_to match(/disabled/)
end
Then(/^Decrease indentation should be disabled$/) do
expect(on(VisualEditorPage).decrease_indentation_element).not_to be_visible
end
Then(/^Increase indentation should be enabled$/) do
expect(on(VisualEditorPage).increase_indentation_element.class_name).not_to match(/disabled/)
end
Then(/^Increase indentation should be disabled$/) do
expect(on(VisualEditorPage).increase_indentation_element).to_not be_visible
end
Then(/^nothing is added in front of input string in the diff view$/) do
expect(on(VisualEditorPage).review_failed_element.when_present).to be_visible
end

View file

@ -1,159 +0,0 @@
Given(/^I open the Cite menu$/) do
on(VisualEditorPage).cite_menu_element.when_present.click
end
When(/^I click Add more information$/) do
on(VisualEditorPage).cite_add_more_information_button_element.when_present.click
end
When(/^I click Basic$/) do
on(VisualEditorPage).cite_basic_reference_element.when_present.click
end
When(/^I click Book$/) do
on(VisualEditorPage).cite_book_element.when_present.click
end
When(/^I click Insert Citation$/) do
on(VisualEditorPage).insert_citation_element.when_present.click
end
When(/^I click Journal$/) do
on(VisualEditorPage).cite_journal_element.when_present.click
end
When(/^I click News$/) do
on(VisualEditorPage).cite_news_element.when_present.click
end
When(/^I click the new field label$/) do
on(VisualEditorPage).cite_new_field_label_element.when_present.click
end
When(/^I click Website$/) do
on(VisualEditorPage).cite_website_element.when_present.click
end
When(/^I fill in the first textarea with "(.*?)"$/) do |first_string|
on(VisualEditorPage).cite_first_textarea_element.when_present.send_keys first_string
end
When(/^I fill in the second textarea with "(.*?)"$/) do |second_string|
on(VisualEditorPage).cite_second_textarea_element.when_present.send_keys second_string
end
When(/^I fill in the third textarea with "(.*?)"$/) do |third_string|
on(VisualEditorPage).cite_third_textarea_element.when_present.send_keys third_string
end
When(/^I fill in the fourth textarea with "(.*?)"$/) do |fourth_string|
on(VisualEditorPage).cite_fourth_textarea_element.when_present.send_keys fourth_string
end
When(/^I fill in the fifth textarea with "(.*?)"$/) do |fifth_string|
on(VisualEditorPage).cite_fifth_textarea_element.when_present.send_keys fifth_string
end
When(/^I fill in the sixth textarea with "(.*?)"$/) do |sixth_string|
on(VisualEditorPage).cite_sixth_textarea_element.when_present.send_keys sixth_string
end
When(/^I fill in the seventh textarea with "(.*?)"$/) do |seventh_string|
on(VisualEditorPage).cite_seventh_textarea_element.when_present.send_keys seventh_string
end
When(/^I fill in the eighth textarea with "(.*?)"$/) do |eighth_string|
on(VisualEditorPage).cite_eighth_textarea_element.when_present.send_keys eighth_string
end
When(/^I fill in the new field "(.*?)"$/) do |new_field_text|
on(VisualEditorPage).cite_new_website_field_element.when_present.send_keys new_field_text
end
When(/^I see Show more fields$/) do
on(VisualEditorPage).cite_show_more_fields_element.when_present
end
When(/^I type in a field name "(.*?)"$/) do |custom_field|
on(VisualEditorPage).cite_custom_field_name_element.when_present.send_keys custom_field
end
Then(/^diff view should show the Book citation added$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
sleep 1
page.diff_view.include? 'Cite VisualEditor Test'
end
expect(page.diff_view).to match '<ref>{{Cite book|title = Book title|last = Book author last name|first = Book author first name|publisher = Book publisher|year = 2014|isbn = 9780743273565|location = Location of publication|pages = 123|New book field = New book field contents}}</ref>Cite VisualEditor Test'
end
end
Then(/^diff view should show the Journal citation added$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
sleep 1
page.diff_view.include? 'Cite VisualEditor Test'
end
expect(page.diff_view).to match '<ref>{{Cite journal|url = Journal title|title = Journal Source date|last = Journal Last Name|first = Journal First Name|date = Journal Source Date|journal = Journal Journal|accessdate = Journal Access Date|doi = Journal DOI}}</ref>Cite VisualEditor Test'
end
end
Then(/^diff view should show the News citation added$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
sleep 1
page.diff_view.include? 'Cite VisualEditor Test'
end
expect(page.diff_view).to match '<ref>{{Cite news|url = News URL|title = News Source title|last = News Last name|first = News First name|date = News Source date|work = News Work|accessdate = News URL access date}}</ref>Cite VisualEditor Test'
end
end
Then(/^diff view should show the Website citation added$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
sleep 1
page.diff_view.include? 'Cite VisualEditor Test'
end
expect(page.diff_view).to match '<ref>{{Cite web|url = http://en.wikipedia.org/|title = Website Source title|date = Website Source date 28 July 2014|accessdate = {{CURRENTMONTHNAME}} {{CURRENTYEAR}}28 July 2014|website = Website title|publisher = Website publisher|last = Website Last name|first = Website First name|New website field = New website field contents}}</ref>Cite VisualEditor Test'
end
end
Then(/^I should see a Continue anyway button$/) do
expect(on(VisualEditorPage).required_parameters_continue_anyway_element.when_present).to be_visible
end
Then(/^I should see a Go back button$/) do
expect(on(VisualEditorPage).required_parameters_go_back_element.when_present).to be_visible
end
Then(/^I should see a Required parameters missing error$/) do
expect(on(VisualEditorPage).required_parameters_missing_message_element.when_present).to be_visible
end
Then(/^I should see the General references$/) do
expect(on(VisualEditorPage).cite_group_name_textarea_element).to be_visible
end
Then(/^I should see the Options use this group text$/) do
expect(on(VisualEditorPage).cite_basic_options_area_element.text).to match(/Options.+Use this group/m)
end
Then(/^I should see the VisualEditor interface$/) do
expect(on(VisualEditorPage).cite_visualeditor_user_interface_element).to be_visible
end
Then(/^the Book input field titles are in the correct order$/) do
expect(on(VisualEditorPage).cite_ui).to match(/Title.+Last name.+First name.+Publisher.+Year of publication.+ISBN.+Location of publication.+Page/m)
end
Then(/^the Journal input field titles are in the correct order$/) do
expect(on(VisualEditorPage).cite_ui).to match(/Title.+Source date/m)
end
Then(/^the News input field titles are in the correct order$/) do
expect(on(VisualEditorPage).cite_ui).to match(/URL.+Source title.+Last name.+First name.+Source date.+Work.+URL access date/m)
end
Then(/^the Website input field titles are in the correct order$/) do
expect(on(VisualEditorPage).cite_ui).to match(/URL.+Source title.+Source date.+URL access date.+Website title.+Publisher.+Last name.+First name/m)
end

View file

@ -1,35 +0,0 @@
When(/^I click the Bold menu option$/) do
on(VisualEditorPage).ve_bold_text_element.when_present.click
end
When(/^I click the Computer Code menu option$/) do
on(VisualEditorPage).ve_computer_code_element.when_present(15).click
end
When(/^I click the Italics menu option$/) do
on(VisualEditorPage).ve_italics_element.when_present.click
end
When(/^I click the More option$/) do
on(VisualEditorPage).ve_more_markup_options_element.when_present(15).click
end
When(/^I click the Strikethrough menu option$/) do
on(VisualEditorPage).ve_strikethrough_element.when_present(15).click
end
When(/^I click the Subscript menu option$/) do
on(VisualEditorPage).ve_subscript_element.when_present(15).click
end
When(/^I click the Superscript menu option$/) do
on(VisualEditorPage).ve_superscript_element.when_present(15).click
end
When(/^I click the text style menu$/) do
on(VisualEditorPage).ve_text_style_element.when_present(15).click
end
When(/^I click the Underline menu option$/) do
on(VisualEditorPage).ve_underline_element.when_present(15).click
end

View file

@ -1,35 +0,0 @@
When(/^I click Heading$/) do
on(VisualEditorPage).heading_element.when_present.click
end
When(/^I click Page title$/) do
on(VisualEditorPage).page_title_element.when_present.click
end
When(/^I click Paragraph$/) do
on(VisualEditorPage).paragraph_element.when_present.click
end
When(/^I click Preformatted$/) do
on(VisualEditorPage).preformatted_element.when_present.click
end
When(/^I click Subheading1$/) do
on(VisualEditorPage).subheading1_element.when_present.click
end
When(/^I click Subheading2$/) do
on(VisualEditorPage).subheading2_element.when_present.click
end
When(/^I click Subheading3$/) do
on(VisualEditorPage).subheading3_element.when_present.click
end
When(/^I click Subheading4$/) do
on(VisualEditorPage).subheading4_element.when_present.click
end
When(/^I click the down arrow on the Headings menu$/) do
on(VisualEditorPage).format_indicator_down_element.when_present.click
end

View file

@ -1,61 +0,0 @@
Given(/^I can see the Link User Inteface$/) do
on(VisualEditorPage).ve_link_ui_element.when_present
end
When(/^I click Done to close Link User Interface$/) do
on(VisualEditorPage).links_done_element.when_present.click
end
When(/^I click the Link button$/) do
on(VisualEditorPage).ve_link_icon_element.when_present.click
end
When(/^I enter external link (.+) into link Content box$/) do |link_content|
on(VisualEditorPage) do |page|
page.link_textfield_element.when_present
page.link_textfield_element.send_keys(link_content)
end
end
When(/^I enter internal link (.+) into link Content box$/) do |link_content|
on(VisualEditorPage) do |page|
page.link_textfield_element.when_present
page.link_textfield_element.send_keys(link_content)
page.link_overlay_wiki_page_element.when_present
end
end
When(/^I enter non existing link (.+) into link Content box$/) do |link_content|
on(VisualEditorPage) do |page|
page.link_textfield_element.when_present
page.link_textfield_element.send_keys(link_content)
page.link_overlay_does_not_exist_element.when_present
end
end
Then(/^a non\-existing link appears in the diff view$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
page.diff_view.include? 'DoesNotExist'
end
expect(page.diff_view).to match '[[DoesNotExist|Links]]'
end
end
Then(/^an external link appears in the diff view$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
page.diff_view.include? 'example.com'
end
expect(page.diff_view).to match '[http://www.example.com Links]'
end
end
Then(/^an internal link appears in the diff view$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
page.diff_view.include? 'Main Page'
end
expect(page.diff_view).to match '[[Main Page|Links]]'
end
end

View file

@ -1,16 +0,0 @@
Given(/^I fill up the Caption field with "(.*?)"$/) do |caption_text|
on(VisualEditorPage).caption_element.when_present.send_keys caption_text
end
Given(/^I fill up the Alternative text with "(.*?)"$/) do |alt_text|
on(VisualEditorPage).alternative_text_element.when_present.send_keys alt_text
end
Then(/^diff view should show media file with caption and alt text$/) do
on(VisualEditorPage) do |page|
page.wait_until(15) do
page.diff_view_element.exists?
end
expect(page.diff_view).to match(/\[\[File:Apollo 11 bootprint.jpg\|alt=alt text\|thumb\|caption\]\]/)
end
end

View file

@ -1,34 +0,0 @@
When(/^I click Media$/) do
on(VisualEditorPage) do |page|
page.insert_indicator_down_element.when_present.click
page.ve_media_menu_element.when_present.click
end
end
When(/^I enter (.+) into media Search box$/) do |content|
on(VisualEditorPage) do |page|
sleep 1
page.media_search_element.when_present.send_keys(content)
end
end
When(/^I select an Image$/) do
on(VisualEditorPage).media_select_element.when_present(20).click
end
When(/^I click Use this image/) do
on(VisualEditorPage).use_image_button_element.when_present.click
end
When(/^I click Insert$/) do
on(VisualEditorPage).media_insert_button_element.when_present.click
end
Then(/^diff view should show correct markup$/) do
on(VisualEditorPage) do |page|
page.wait_until(15) do
page.diff_view_element.exists?
end
expect(page.diff_view).to match(/\[\[File:Apollo 11 bootprint.jpg\|thumb\]\]/)
end
end

View file

@ -1,27 +0,0 @@
When(/^I enter and save the first edit$/) do
@first_edit_text = 'Editing with ' + Random.rand.to_s
step "I insert the text #{@first_edit_text}"
step 'I click Save page'
step 'I click This is a minor edit'
step 'I click Review your changes'
step 'I click Return to save form'
step 'I click Save page the second time'
end
When(/^I enter and save a (.+) edit$/) do |count|
on(VisualEditorPage).medium_dialog_element.when_not_visible(10)
edit_text = 'Editing with ' + Random.rand.to_s
instance_variable_set("@#{count}_edit_text", edit_text)
step 'I click Edit for VisualEditor'
step "I insert the text #{edit_text}"
step 'I click Save page'
step 'I click Save page the second time'
end
When(/^I insert the text (.*?)$/) do |input_string|
on(VisualEditorPage).content_element.when_present(10).send_keys(input_string)
end
Then(/^the saved page should contain all three edits\.$/) do
expect(on(VisualEditorPage).page_text_element.when_present(10).text).to match "#{@third_edit_text}#{@second_edit_text}Editing with #{@random_string} #{@first_edit_text}"
end

View file

@ -1,101 +0,0 @@
When(/^I check the option for Enable display title$/) do
on(VisualEditorPage).check_option_to_enable_display_title
end
When(/^I check the option for Disable edit links next to each heading on this page$/) do
on(VisualEditorPage).check_option_to_disable_edit_links
end
When(/^I check the option for Prevent this redirect being updated when target page is moved$/) do
on(VisualEditorPage).check_option_to_prevent_redirect_being_updated
end
When(/^I check the option for Redirect this page to$/) do
on(VisualEditorPage).check_option_to_redirect_the_page
end
When(/^I check the option for This is a Disambiguation page$/) do
on(VisualEditorPage).check_option_to_refer_as_disambiguation_page
end
When(/^I click Advanced Settings$/) do
on(VisualEditorPage).option_advanced_settings_element.when_present.click
end
When(/^I click Apply Changes button$/) do
on(VisualEditorPage).apply_changes_button_element.when_present.click
end
When(/^I click Categories$/) do
on(VisualEditorPage).options_categories_element.when_present.click
end
When(/^I click Options$/) do
on(VisualEditorPage).options_in_hamburger_element.when_present.click
end
When(/^I click Page Settings$/) do
on(VisualEditorPage).option_page_settings_element.when_present.click
end
When(/^I click the hamburger menu$/) do
on(VisualEditorPage).hamburger_menu_element.when_present.click
end
When(/^I click Yes for Indexed by Search Engines$/) do
on(VisualEditorPage).option_to_set_index_by_search_element.when_present.click
end
When(/^I click Yes for showing tab for adding new section$/) do
on(VisualEditorPage).option_to_show_new_section_tab_element.when_present.click
end
When(/^I see options overlay$/) do
on(VisualEditorPage).options_page_title_element.when_present
end
When(/^I select the option Always for showing Table of Contents$/) do
on(VisualEditorPage).option_to_always_show_TOC_element.when_present.click
end
When(/^I type "(.*?)" for display title textbox$/) do |display_title_text|
on(VisualEditorPage).display_title_textbox_element.when_present.send_keys(display_title_text)
end
When(/^I type "(.*?)" for redirect page$/) do |redirect_page_name|
on(VisualEditorPage).redirect_page_name_textbox_element.when_present.send_keys(redirect_page_name)
end
Then(/^I should see the options overlay$/) do
expect(on(VisualEditorPage).options_page_title_element.when_present).to be_visible
end
Then(/^the options overlay should display Advanced Settings$/) do
expect(on(VisualEditorPage).options_settings_content_advanced_element).to be_visible
end
Then(/^the options overlay should display Categories$/) do
expect(on(VisualEditorPage).options_settings_content_categories_element).to be_visible
end
Then(/^the options overlay should display Page Settings$/) do
expect(on(VisualEditorPage).options_settings_content_page_settings_element).to be_visible
end
Then(/^the options set in Advanced Settings panel should appear in diff view$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
page.diff_view.include? 'automated test'
end
expect(page.diff_view).to match(/{{DISPLAYTITLE:automated test}}.+Options VisualEditor Test.+__INDEX__.+__NEWSECTIONLINK__/m)
end
end
Then(/^the options set in Page Settings panel should appear in diff view$/) do
on(VisualEditorPage) do |page|
page.wait_until(10) do
page.diff_view.include? 'Linux'
end
expect(page.diff_view).to match(/#REDIRECT \[\[Linux\]\].+Options VisualEditor Test.+__FORCETOC__.+__STATICREDIRECT__.+__NOEDITSECTION__.+__DISAMBIG__/m)
end
end

View file

@ -1,55 +0,0 @@
Given(/^I go to a page that has references$/) do
wikitext = "VisualEditor is a MediaWiki extension.<ref>[http://www.mediawiki.org/wiki/Extension:VisualEditor Extension:VisualEditor]</ref>
==References==
<references />"
api.create_page 'Reference VisualEditor Test', wikitext
step 'I am on the Reference VisualEditor Test page'
end
Given(/^I can see the References User Interface$/) do
on(VisualEditorPage).references_title_element.when_present
end
When(/^I click Insert references list$/) do
on(VisualEditorPage).insert_element.when_present.click
end
When(/^I click Reference$/) do
on(VisualEditorPage) do |page|
page.insert_indicator_down_element.when_present.click
page.ve_more_references_options_element.when_present.click
page.ve_references_element.when_present.click
end
end
When(/^I click use an existing reference button in References User Interface$/) do
on(VisualEditorPage).cite_reuse_existing_reference_element.when_present.click
end
When(/^I click on Extension:VisualEditor reference$/) do
on(VisualEditorPage).extension_reference_element.when_present.click
end
When(/^I create a reference using existing reference$/) do
step('I open the Cite menu')
step('I click use an existing reference button in References User Interface')
step('I click on Extension:VisualEditor reference')
end
Then(/^first link to reference should be visible$/) do
expect(on(VisualEditorPage).first_reference_element.when_present).to be_visible
end
Then(/^second link to reference should be visible$/) do
expect(on(VisualEditorPage).second_reference_element.when_present).to be_visible
end
Then(/^I should see Insert reference button enabled$/) do
expect(on(VisualEditorPage).insert_reference_element).to be_visible
end
Then(/^link to Insert menu should be visible$/) do
expect(on(VisualEditorPage).insert_indicator_element).to be_visible
end

View file

@ -1,109 +0,0 @@
Given(/^I am on the (.+) page$/) do |article|
article = article.gsub(/ /, '_')
visit(ZtargetPage, using_params: { article_name: article })
end
Given(/^I click in the editable part$/) do
on(VisualEditorPage).content_element.when_present.send_keys('')
end
Given(/^I go to the browser specific edit page page$/) do
page_title = 'Edit page for ' + browser_name
page_content = 'Edit page for ' + browser_name
api.create_page page_title, page_content
step "I am on the #{page_title} page"
end
Given(/^I go to the "(.+)" page with content "(.+)"$/) do |page_title, page_content|
@wikitext = page_content
api.create_page page_title, page_content
step "I am on the #{page_title} page"
end
Given(/^I make the text "(.*?)" be selected$/) do |select_text|
on(VisualEditorPage) do |page|
page.content_element.when_present.click
require 'watir/extensions/select_text'
page.content_element.when_present.select_text select_text
end
end
When(/^I click Edit for VisualEditor$/) do
on(VisualEditorPage) do |page|
page.edit_ve_element.when_present.click
page.content_element.when_present.click
end
end
When(/^I click Return to save form$/) do
on(VisualEditorPage) do |page|
page.diff_view_element.when_present(10)
page.return_to_save_element.when_present(10).click
end
end
When(/^I click Review your changes$/) do
on(VisualEditorPage).review_changes_element.when_present(10).click
end
When(/^I click Save page$/) do
on(VisualEditorPage) do |page|
page.save_page_element.when_present.click
end
end
When(/^I click Save page the second time$/) do
on(VisualEditorPage) do |page|
page.second_save_page_element.when_present.click
page.second_save_page_element.when_not_present
end
end
When(/^I click This is a minor edit$/) do
on(VisualEditorPage).minor_edit_element.when_present.click
end
When(/^I do not see This is a minor edit$/) do
on(VisualEditorPage).minor_edit_element.when_not_present
end
When(/^I edit the description of the change$/) do
on(VisualEditorPage).describe_change_element.when_visible.send_keys("Describing with #{@random_string}")
end
When(/^I edit the page with (.+)$/) do |input_string|
on(VisualEditorPage) do |page|
page.page_text_element.when_not_visible
page.content_element.when_present(10).send_keys(input_string + " #{@random_string} ")
end
end
When(/^I see the IP warning signs$/) do
on(VisualEditorPage).ip_warning_element.when_present
end
Then(/^I can click Cancel save$/) do
on(VisualEditorPage).confirm_switch_cancel_element.when_present.click
end
Then(/^I can click the X on the save box$/) do
on(VisualEditorPage).ex_element.when_present.click
end
Then(/^Page text should contain (.+)$/) do |output_string|
expect(on(VisualEditorPage).page_text_element.when_present.text).to match Regexp.escape(output_string + " #{@random_string}")
end
Then(/^(.+) should appear in the diff view$/) do |headings_string|
on(VisualEditorPage) do |page|
# Contents pulled from the Cucumber tables in the .feature are escaped regexes.
# In this case we want unescaped regexes (and in one case a leading space)
# So we put single quotes around the entries in the .feature file and strip them here to get unescaped regexes.
headings_string = headings_string.gsub(/"/, '')
page.wait_until(10) do
page.diff_view.include? 'Your text'
end
expect(page.diff_view).to match headings_string
end
end

View file

@ -1,67 +0,0 @@
When(/^I clear the confirm dialog by clicking Keep changes$/) do
on(VisualEditorPage).confirm_switch_element.when_present.click
end
When(/^I click Edit for VisualEditor from this page$/) do
on(VisualEditorPage) do |page|
page.alert do
page.edit_ve_element.when_present.click
end
end
end
When(/^I click the Switch to source editing menu option$/) do
on(VisualEditorPage) do |page|
page.alert do
page.tools_menu_element.when_present.click
page.switch_to_source_editing_element.when_present.click
end
end
end
When(/^I enter the wikitext editor$/) do
on(VisualEditorPage) do |page|
page.edit_wikitext_element.when_present.click
step 'I clear the confirm dialog by clicking Keep changes'
page.wikitext_editor_element.when_present
end
end
When(/^I see the Cancel option$/) do
on(VisualEditorPage).confirm_switch_cancel_on_switch_element.when_present
end
When(/^I see the Discard option$/) do
on(VisualEditorPage).confirm_switch_discard_element.when_present
end
When(/^I see the wikitext editor$/) do
on(VisualEditorPage).wikitext_editor_element.when_present(10)
end
Then(/^I should be in Visual Editor editing alternate mode$/) do
on(VisualEditorPage) do |page|
page.wait_until(15) do
page.text.include? 'Edit page for'
end
expect(page.content_element.when_present).to be_visible
end
end
Then(/^I should be in Visual Editor editing mode$/) do
on(VisualEditorPage) do |page|
page.wait_until(15) do
page.text.include? 'Edit page for'
end
end
expect(browser.url).to match(%r{w/index\.php\?title=Edit_page_for_#{browser_name}&veaction=edit})
end
Then(/^I should be in wikitext editing mode$/) do
on(VisualEditorPage) do |page|
page.wait_until(15) do
page.text.include? 'Editing Edit page for'
end
end
expect(browser.url).to eq(wiki_url("Edit page for #{browser_name}?action=submit"))
end

View file

@ -1,14 +0,0 @@
Given(/^I am editing an empty page$/) do
visit(VisualEditorPage)
end
When(/^I click the insert table toolbar element$/) do
on(VisualEditorPage) do |page|
page.insert_menu_element.when_present.click
page.insert_table_element.click
end
end
Then(/^the table should appear$/) do
expect(on(VisualEditorPage).table_element).to be_visible
end

View file

@ -1,49 +0,0 @@
Given(/^I can see the Transclusion User Interface$/) do
on(VisualEditorPage).add_a_template_title_element.when_present
end
Given(/^I click the Add template button$/) do
on(VisualEditorPage).add_template_element.when_present.click
end
Given(/^I click the parameter representation containing q$/) do
on(VisualEditorPage).parameter_icon_element.when_present.click
end
Given(/^I click Transclusion$/) do
on(VisualEditorPage) do |page|
page.insert_indicator_down_element.when_present.click
page.transclusion_element.when_present.click
end
end
Given(/^I see a list of template suggestions$/) do
on(VisualEditorPage).suggestion_list_element.when_present
end
Given(/^I see an input text area$/) do
on(VisualEditorPage).transclusion_description_element.when_present
end
When(/^I click Remove parameter$/) do
on(VisualEditorPage).remove_parameter_element.when_present.click
end
When(/^I enter (.+) in the parameter box$/) do |param_value|
on(VisualEditorPage) do |page|
page.no_unused_fields_element.when_present
page.transclusion_description_element.when_present.send_keys(param_value)
end
end
When(/^I enter (.+) into transclusion Content box$/) do |content|
on(VisualEditorPage).transclusion_description_element.when_present.send_keys(content)
end
Then(/^I should see a list of template suggestions$/) do
expect(on(VisualEditorPage).suggestion_list_element.when_present).to be_visible
end
Then(/^I should see the Insert template button$/) do
expect(on(VisualEditorPage).insert_element.when_present).to be_visible
end

View file

@ -1,12 +0,0 @@
When(/^I visit a non-existent page at (.+)$/) do |site|
visit(DummyPage, using_params: { site: site })
end
Then(/^I should see the Visual Editor editing surface$/) do
on(DummyPage) do |page|
page.wait_until(10) do
page.ve_editing_surface_element.exists?
end
expect(on(DummyPage).ve_editing_toolbar_element).to exist
end
end

View file

@ -1,3 +0,0 @@
require 'mediawiki_selenium/cucumber'
require 'mediawiki_selenium/pages'
require 'mediawiki_selenium/step_definitions'

View file

@ -1,9 +0,0 @@
# This is used in the verify_production_wikis test
class DummyPage
include PageObject
page_url 'http://<%=params[:site]%>/wiki/asdfdgfghlkj?veaction=edit'
div(:ve_editing_surface, class: 've-ui-surface ve-init-mw-target-surface')
div(:ve_editing_toolbar, class: 'oo-ui-toolbar-bar')
end

View file

@ -1,229 +0,0 @@
# This is the main page for VisualEditor
class VisualEditorPage
include PageObject
page_url 'User:<%= env.user %>/<%= env.browser_name %>?vehidebetadialog=true&veaction=edit'
div(:add_a_template_title, class: 'oo-ui-processDialog-location', text: /Add a template/)
text_field(:add_category, css: 'div.ve-ui-mwCategoryInputWidget > input')
span(:add_template, text: 'Add template')
span(:apply_changes_button, text: 'Apply changes')
span(:basic_reference, class: 'oo-ui-iconElement-icon oo-ui-icon-reference')
span(:bullet_number_selector, class: 'oo-ui-iconElement-icon oo-ui-icon-listBullet')
div(:category_add_area, css: 'div.oo-ui-pageLayout-active > div.oo-ui-fieldsetLayout')
a(:category_first, css: 'div.ve-ui-mwCategoryItemWidget > a.oo-ui-buttonElement-button')
span(:category_link, class: 'oo-ui-iconElement-icon oo-ui-icon-tag')
div(:category_popup, css: 'div.ve-ui-mwCategoryPopupWidget > div.oo-ui-popupWidget-popup')
span(:category_item, class: 'oo-ui-tool-name-categories')
div(:category_recommendation, class: 've-ui-mwCategoryInputWidget-menu')
a(:category_remove, css: 'div.ve-ui-mwCategoryPopupWidget-removeButton > a.oo-ui-buttonElement-button')
text_area(:cite_first_textarea, index: 0)
text_area(:cite_second_textarea, index: 2)
text_area(:cite_third_textarea, index: 4)
text_area(:cite_fourth_textarea, index: 6)
text_area(:cite_fifth_textarea, index: 8)
text_area(:cite_sixth_textarea, index: 10)
text_area(:cite_seventh_textarea, index: 12)
text_area(:cite_eighth_textarea, index: 14)
a(:cite_add_more_information_button, css: '.ve-ui-mwParameterPage-more a', index: 7)
div(:cite_basic_options_area, class: 'oo-ui-layout oo-ui-iconElement oo-ui-labelElement oo-ui-fieldsetLayout')
span(:cite_basic_reference, css: '.oo-ui-tool-name-reference > a:nth-child(1) > span:nth-child(1)')
a(:cite_book, css: '.oo-ui-tool-name-cite-book > a:nth-child(1)')
div(:cite_button, class: 've-test-toolbar-cite')
text_field(:cite_custom_field_name, css: '.oo-ui-searchWidget-query > div:nth-child(1) > input:nth-child(1)')
text_field(:cite_group_name_textarea, css: 'div.oo-ui-indicatorElement:nth-child(1) > input:nth-child(1)')
a(:cite_journal, css: '.oo-ui-tool-name-cite-journal > a:nth-child(1)')
span(:cite_indicator_down, css: '.ve-test-toolbar-cite .oo-ui-indicator-down')
span(:cite_menu, css: '.ve-test-toolbar-cite > span:nth-child(1) > span:nth-child(3)')
div(:cite_new_field_label, css: '.oo-ui-optionWidget')
text_area(:cite_new_website_field, css: 'div.oo-ui-layout:nth-child(10) > div:nth-child(3) > div:nth-child(1) > textarea:nth-child(1)')
a(:cite_news, css: '.oo-ui-tool-name-cite-news > a:nth-child(1)')
div(:cite_pull_down, css: '.ve-test-toolbar-cite .oo-ui-clippableElement-clippable')
span(:cite_reuse_existing_reference, css: '.oo-ui-icon-reference-existing')
div(:cite_show_more_fields, class: 've-ui-mwMoreParametersResultWidget-label')
div(:cite_ui, class: 'oo-ui-window-frame')
div(:cite_visualeditor_user_interface, css: 'div.ve-ui-surface:nth-child(2)')
span(:cite_website, css: '.oo-ui-icon-ref-cite-web')
span(:confirm_switch, text: 'Keep changes')
span(:confirm_switch_cancel, text: 'Resume editing')
span(:confirm_switch_cancel_on_switch, text: 'Cancel')
span(:confirm_switch_discard, text: 'Discard changes')
span(:option_to_always_show_TOC, css: 'div.oo-ui-fieldLayout-align-top:nth-child(4) > div:nth-child(2) > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > a:nth-child(1) > span:nth-child(2)')
span(:decrease_indentation, class: 'oo-ui-iconElement-icon oo-ui-icon-outdent')
text_area(:describe_change, index: 0)
div(:diff_view, class: 've-ui-mwSaveDialog-viewer')
div(:disabled_save_button, css: 'div.ve-init-mw-desktopArticleTarget-toolbar .oo-ui-toolbar-actions > div.oo-ui-flaggedElement-progressive.oo-ui-widget-disabled')
text_field(:display_title_textbox, css: 'div.oo-ui-fieldLayout-align-inline:nth-child(4) > label:nth-child(1) > div:nth-child(1) > div:nth-child(1) > input:nth-child(1)')
div(:enable_redirect, class: 've-test-page-settings-enable-redirect')
div(:external_link, class: 've-test-external-link-tab')
text_field(:external_link_field, css: 'div.ve-ui-linkAnnotationWidget > div.oo-ui-widget > input')
div(:prevent_redirect, class: 've-test-page-settings-prevent-redirect')
text_field(:redirect_page_name_textbox, css: 'div.oo-ui-lookupElement:nth-child(1) > input:nth-child(1)')
div(:format_indicator, class: 've-test-toolbar-format')
span(:format_indicator_down, css: '.ve-test-toolbar-format .oo-ui-indicator-down')
a(:edit_ve, title: /Edit this page with VisualEditor/)
a(:edit_wikitext, title: /You can edit this page\./)
span(:ex, text: 'Return to save form')
div(:extension_reference, class: 've-ui-mwReferenceResultWidget-shield')
a(:first_reference, text: '[1]', index: 1)
div(:formatting_option_menus, class: 'oo-ui-toolGroup-tools oo-ui-clippableElement-clippable', index: 2)
img(:formula_image, class: 've-ce-focusableNode-highlight-relocatable-marker')
span(:formula_insert_menu, class: 'oo-ui-tool-name-math')
a(:formula_link, css: 'span.oo-ui-tool-name-math > a.oo-ui-tool-link')
span(:heading, class: 'oo-ui-tool-title', text: /Heading/)
span(:hamburger_menu, class: 'oo-ui-iconElement-icon oo-ui-icon-menu')
div(:heading_dropdown_menus, class: 'oo-ui-toolGroup-tools oo-ui-clippableElement-clippable', index: 1)
div(:window_frame, css: 'div.oo-ui-window-setup > div.oo-ui-window-frame')
span(:increase_indentation, class: 'oo-ui-iconElement-icon oo-ui-icon-indent')
div(:indentation_button, class: 've-test-toolbar-structure')
div(:indentation_pull_down, css: '.ve-test-toolbar-structure .oo-ui-clippableElement-clippable')
span(:insert_citation, css: '.ve-ui-nodeDialog > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > div:nth-child(1) > a:nth-child(1) > span:nth-child(2)
')
span(:insert_menu, css: '.ve-test-toolbar-insert .oo-ui-indicator-down')
span(:insert_indicator, text: 'Insert')
div(:insert_button, class: 've-test-toolbar-insert')
span(:insert_indicator_down, css: '.ve-test-toolbar-insert .oo-ui-indicator-down')
a(:more_fewer, css: '.oo-ui-popupToolGroup-active .oo-ui-tool-name-more-fewer .oo-ui-tool-link')
div(:insert_pull_down, css: '.ve-test-toolbar-insert .oo-ui-clippableElement-clippable')
div(:insert_references, class: 'oo-ui-processDialog-location')
span(:insert, text: 'Insert')
a(:insert_table, css: '.oo-ui-tool-name-insertTable a')
a(:internal_link, class: 've-ce-linkAnnotation ve-ce-mwInternalLinkAnnotation')
div(:ip_warning, class: 've-ui-mwNoticesPopupTool-item', text: /Your IP address/)
div(:language_notification, class: 'tipsy-inner')
div(:left_navigation, id: 'left-navigation')
div(:link_list, class: 'oo-ui-windowManager-floating')
span(:link_overlay_does_not_exist, text: /page does not exist yet/)
div(:link_overlay_wiki_page, class: 'mw-widget-titleOptionWidget')
text_field(:link_textfield, index: 0)
span(:links_done, text: 'Done')
unordered_list(:media_caption, class: 've-ui-contextSelectWidget')
span(:media_exit, text: 'Return to save form')
figure(:media_image, index: 0)
span(:media_insert_menu, class: 'oo-ui-tool-name-media')
text_field(:media_search, css: 'div.oo-ui-textInputWidget > input')
div(:media_select, class: 'mw-widget-mediaResultWidget-overlay')
div(:medium_dialog, class: 'oo-ui-window oo-ui-dialog oo-ui-dialog-open oo-ui-dialog-medium')
span(:use_image_button, css: '.oo-ui-processDialog-actions-primary > div:nth-child(1) > a:nth-child(1) > span:nth-child(2)')
span(:media_insert_button, css: '.oo-ui-flaggedElement-progressive > a:nth-child(1) > span:nth-child(2)')
div(:caption, css: 'div.ve-ui-surface:nth-child(2) > div:nth-child(1) > div.ve-ce-documentNode.ve-ce-branchNode')
text_field(:alternative_text, css: '.oo-ui-textInputWidget.ve-ui-mwMediaDialog-altText > input')
checkbox(:minor_edit, id: 'wpMinoredit')
div(:no_unused_fields, text: 'No unused fields')
a(:new_link, class: 've-ce-linkAnnotation ve-ce-mwInternalLinkAnnotation new')
span(:options_categories, class: 'oo-ui-tool-title', text: 'Categories')
span(:options_in_hamburger, class: 'oo-ui-tool-title', text: 'Options')
span(:option_advanced_settings, class: 'oo-ui-tool-title', text: 'Advanced settings')
span(:option_page_settings, class: 'oo-ui-tool-title', text: 'Page settings')
div(:options_page_title, class: 'oo-ui-processDialog-location', text: 'Options')
div(:options_settings_content_advanced, class: 'oo-ui-layout oo-ui-iconElement oo-ui-labelElement oo-ui-fieldsetLayout', text: /Advanced settings/)
div(:options_settings_content_categories, class: 'oo-ui-layout oo-ui-iconElement oo-ui-labelElement oo-ui-fieldsetLayout', text: /Categories/)
div(:options_settings_content_page_settings, class: 'oo-ui-layout oo-ui-iconElement oo-ui-labelElement oo-ui-fieldsetLayout', text: /Page settings/)
checkbox(:option_to_enable_display_title, index: 4)
checkbox(:option_to_redirect_the_page, index: 0)
checkbox(:option_to_prevent_redirect_being_updated, index: 1)
checkbox(:option_to_disable_edit_links, index: 2)
checkbox(:option_to_refer_as_disambiguation_page, index: 3)
span(:option_to_set_index_by_search, class: 'oo-ui-labelElement-label', text: 'Yes', index: 0)
span(:option_to_show_new_section_tab, class: 'oo-ui-labelElement-label', text: 'Yes', index: 1)
div(:page_option_menu, css: '.oo-ui-toolbar-actions .oo-ui-toolbar-tools .oo-ui-toolGroup-tools.oo-ui-clippableElement-clippable')
span(:page_settings_item, class: 'oo-ui-tool-name-settings')
span(:page_settings, class: 'oo-ui-iconElement-icon oo-ui-icon-settings')
div(:page_settings_editlinks, class: 've-test-page-settings-noeditsection')
div(:page_text, id: 'mw-content-text')
a(:page_title, text: /Page title/)
a(:paragraph, text: /Paragraph/)
div(:parameter_icon, text: 'q')
unordered_list(:popup_icon, class: 've-ui-contextSelectWidget')
a(:preformatted, text: /Preformatted/)
span(:ref_list_insert_menu, class: 'oo-ui-tool-name-referencesList')
span(:refs_link, text: 'Reference')
div(:references_title, class: 'oo-ui-processDialog-location', text: /References/)
a(:remove_parameter, css: '.ve-ui-mwParameterPage-removeButton > a:nth-child(1)')
span(:required_parameters_continue_anyway, text: 'Continue anyway')
span(:required_parameters_go_back, text: 'Go back')
span(:required_parameters_missing_message, text: 'Required parameters missing')
span(:return_to_save, class: 'oo-ui-labelElement-label', text: 'Return to save form')
a(:review_changes, css: '.oo-ui-window-content-setup > div:nth-child(3) > div:nth-child(1) > div:nth-child(1) > a:nth-child(1)')
span(:review_failed, text: 'No changes to review')
div(:top_editing_tabs, id: 'p-views')
li(:ve_edit_tab, id: 'ca-ve-edit')
li(:edit_source_tab, id: 'ca-edit')
div(:save_enabled, css: 'div.ve-init-mw-desktopArticleTarget-toolbar .oo-ui-toolbar-actions > div.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled')
div(:search_page_link, class: 'oo-ui-optionWidget-selected')
a(:second_reference, text: '[1]', index: 2)
span(:second_save_page, css: '.oo-ui-processDialog-actions-primary > div:nth-child(1) > a:nth-child(1) > span:nth-child(2)')
div(:settings_apply_button, css: '.oo-ui-window-frame .oo-ui-processDialog-actions-primary')
span(:special_character, class: 'oo-ui-iconElement-icon oo-ui-icon-specialCharacter')
a(:subheading1, text: /Sub-heading 1/)
a(:subheading2, text: /Sub-heading 2/)
a(:subheading3, text: /Sub-heading 3/)
a(:subheading4, text: /Sub-heading 4/)
div(:suggestion_list, class: 'mw-widget-titleInputWidget-menu')
span(:switch_to_source_editing, class: 'oo-ui-iconElement-icon oo-ui-icon-wikiText')
table(:table, class: 've-ce-tableNode')
div(:table_of_contents, class: 've-test-page-settings-table-of-contents')
span(:template_insert_menu, class: 'oo-ui-tool-name-transclusion')
div(:toolbar, class: 've-init-mw-desktopArticleTarget-toolbar')
div(:toolbar_actions, class: 'oo-ui-toolbar-actions')
a(:transclusion, css: 'span.oo-ui-widget.oo-ui-iconElement.oo-ui-tool.oo-ui-tool-name-transclusion.oo-ui-widget-enabled > a')
text_field(:transclusion_description, css: '.oo-ui-inputWidget > input:nth-child(1)')
span(:ve_bullets, css: '.oo-ui-clippableElement-clippable .oo-ui-iconElement-icon.oo-ui-icon-listBullet')
span(:ve_computer_code, class: 'oo-ui-iconElement-icon oo-ui-icon-code')
div(:ve_heading_menu, class: 'oo-ui-iconElement-icon oo-ui-icon-down')
span(:ve_link_icon, class: 'oo-ui-iconElement-icon oo-ui-icon-link')
span(:ve_link_ui, class: 'oo-ui-widget oo-ui-widget-enabled oo-ui-labelElement-label oo-ui-labelWidget oo-ui-processDialog-title oo-ui-labelElement', text: 'Link')
span(:ve_media_menu, class: 'oo-ui-iconElement-icon oo-ui-icon-picture')
span(:ve_more_markup_options, css: 'span.oo-ui-tool-name-more-fewer:nth-child(10) > a:nth-child(1) > span:nth-child(2)')
a(:ve_more_references_options, css: '.ve-test-toolbar-insert > div:nth-child(2) > span:nth-child(8) > a:nth-child(1)')
span(:ve_numbering, class: 'oo-ui-iconElement-icon oo-ui-icon-listNumbered')
span(:ve_references, class: 'oo-ui-iconElement-icon oo-ui-icon-references')
span(:ve_strikethrough, class: 'oo-ui-iconElement-icon oo-ui-icon-strikethrough')
span(:ve_subscript, class: 'oo-ui-iconElement-icon oo-ui-icon-subscript')
span(:ve_superscript, class: 'oo-ui-iconElement-icon oo-ui-icon-superscript')
div(:ve_text_style_button, class: 've-test-toolbar-style')
span(:ve_text_style, class: 'oo-ui-iconElement-icon oo-ui-icon-textStyle')
span(:ve_underline, class: 'oo-ui-iconElement-icon oo-ui-icon-underline')
div(:visual_editor_toolbar, class: 'oo-ui-toolbar-tools')
text_area(:wikitext_editor, id: 'wpTextbox1')
text_area(:formula_area, css: '.oo-ui-popupWidget-popup textarea')
text_field(:media_alternative_text, css: 'div.oo-ui-widget.oo-ui-widget-enabled.oo-ui-inputWidget.oo-ui-textInputWidget.ve-ui-mwMediaDialog-altText > input')
div(:content_box, class: 've-ce-documentNode ve-ce-branchNode noime')
div(:media_alternative_block, class: 'oo-ui-layout oo-ui-iconElement oo-ui-labelElement oo-ui-fieldsetLayout', index: 2)
div(:media_advanced_settings, class: 'oo-ui-outlineOptionWidget-level-0', index: 1)
def visual_editor_element(script)
Timeout.timeout(10) do
loop do
begin
browser.execute_script script
rescue Selenium::WebDriver::Error::JavascriptError, Selenium::WebDriver::Error::StaleElementReferenceError, Selenium::WebDriver::Error::UnknownError => e
else
e = nil
end
break unless (e.class == Selenium::WebDriver::Error::JavascriptError) || (e.class == Selenium::WebDriver::Error::UnknownError) || (e.class == Selenium::WebDriver::Error::StaleElementReferenceError)
end
end
browser.execute_script script
end
def ve_bold_text_element
visual_editor_element('return ve.init.target.getToolbar().items[2].tools.bold.$link[0]')
end
def ve_italics_element
visual_editor_element('return ve.init.target.getToolbar().items[2].tools.italic.$link[0]')
end
def content_element
visual_editor_element('return ve.init.target.surface.view.documentView.documentNode.$element[0]')
end
def tools_menu_element
if browser_name == :chrome
div(class: 'oo-ui-widget oo-ui-widget-enabled oo-ui-toolGroup oo-ui-iconElement oo-ui-popupToolGroup oo-ui-listToolGroup')
else
span(class: 'oo-ui-iconElement-icon oo-ui-icon-menu')
end
end
end

View file

@ -1,4 +0,0 @@
# This page object exists because logged in users should not see these URL params
class ZtargetPage < VisualEditorPage
page_url '<%=params[:article_name]%>?vehidebetadialog=true&veaction=edit'
end

View file

@ -1,23 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: Switching between wikitext and Visual Editor modes
Test for both pathways that allow switching between Visual Editor and wikitext editing modes.
Background:
Given I am logged in
And I go to the browser specific edit page page
When I edit the page with Switch edit mode test
Scenario: Switch editing modes via toolbar
When I enter the wikitext editor
And I click Edit for VisualEditor
Then I should be in Visual Editor editing mode
Scenario: Switch editing modes via Page Settings drop-down menu
When I click the Switch to source editing menu option
And I see the Cancel option
And I see the Discard option
And I clear the confirm dialog by clicking Keep changes
And I see the wikitext editor
And I click Edit for VisualEditor from this page
Then I should be in Visual Editor editing alternate mode

View file

@ -1,7 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox
Feature: Table
Scenario: Insert table
Given I go to the "Table Insert Test" page with content "Table Insert Test"
When I click the insert table toolbar element
Then the table should appear

View file

@ -1,31 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor Transclusion
Background:
Given I go to the "Template:Seleniumtest" page with content "Template for selenium testing"
And I go to the "Transclusion VisualEditor Test" page with content "Transclusion VisualEditor Test"
And I click in the editable part
And I click Transclusion
And I can see the Transclusion User Interface
Scenario: Add template
When I enter S into transclusion Content box
Then I should see a list of template suggestions
Scenario: Add parameter to template
And I enter S into transclusion Content box
And I see a list of template suggestions
And I click the Add template button
And I see an input text area
When I enter x in the parameter box
Then I should see the Insert template button
Scenario: Remove parameter
And I enter S into transclusion Content box
And I see a list of template suggestions
And I click the Add template button
And I see an input text area
And I enter q in the parameter box
And I click the parameter representation containing q
When I click Remove parameter
Then I should see the Insert template button

View file

@ -1,314 +0,0 @@
@en.wikipedia.beta.wmflabs.org @firefox @skip
Feature: VisualEditor on production wikis
Verify that VisualEditor is available as
expected on production wiki sites.
Exclusion:
http://sv.wiktionary.org - only enabled in NS_USER for now.
Scenario Outline: VisualEditor production availability
Given I visit a non-existent page at <wiki>
Then I should see the Visual Editor editing surface
Examples:
| wiki |
| test.wikipedia.org |
| test2.wikipedia.org |
| www.mediawiki.org |
| meta.wikimedia.org |
| incubator.wikimedia.org |
| aa.wikipedia.org |
| ab.wikipedia.org |
| ace.wikipedia.org |
| af.wikipedia.org |
| ak.wikipedia.org |
| als.wikipedia.org |
| am.wikipedia.org |
| an.wikipedia.org |
| ang.wikipedia.org |
| ar.wikipedia.org |
| arc.wikipedia.org |
| arz.wikipedia.org |
| as.wikipedia.org |
| ast.wikipedia.org |
| av.wikipedia.org |
| ay.wikipedia.org |
| az.wikipedia.org |
| ba.wikipedia.org |
| bar.wikipedia.org |
| bat-smg.wikipedia.org |
| bcl.wikipedia.org |
| be.wikipedia.org |
| be-x-old.wikipedia.org |
| bg.wikipedia.org |
| bh.wikipedia.org |
| bi.wikipedia.org |
| bjn.wikipedia.org |
| bm.wikipedia.org |
| bn.wikipedia.org |
| bo.wikipedia.org |
| bpy.wikipedia.org |
| br.wikipedia.org |
| bs.wikipedia.org |
| bug.wikipedia.org |
| bxr.wikipedia.org |
| ca.wikipedia.org |
| cbk-zam.wikipedia.org |
| cdo.wikipedia.org |
| ce.wikipedia.org |
| ceb.wikipedia.org |
| ch.wikipedia.org |
| cho.wikipedia.org |
| chr.wikipedia.org |
| chy.wikipedia.org |
| ckb.wikipedia.org |
| co.wikipedia.org |
| cr.wikipedia.org |
| crh.wikipedia.org |
| cs.wikipedia.org |
| csb.wikipedia.org |
| cu.wikipedia.org |
| cv.wikipedia.org |
| cy.wikipedia.org |
| da.wikipedia.org |
| de.wikipedia.org |
| diq.wikipedia.org |
| dsb.wikipedia.org |
| dv.wikipedia.org |
| dz.wikipedia.org |
| ee.wikipedia.org |
| el.wikipedia.org |
| eml.wikipedia.org |
| en.wikipedia.org |
| eo.wikipedia.org |
| es.wikipedia.org |
| et.wikipedia.org |
| eu.wikipedia.org |
| ext.wikipedia.org |
| fa.wikipedia.org |
| ff.wikipedia.org |
| fi.wikipedia.org |
| fiu-vro.wikipedia.org |
| fj.wikipedia.org |
| fo.wikipedia.org |
| fr.wikipedia.org |
| frp.wikipedia.org |
| frr.wikipedia.org |
| fur.wikipedia.org |
| fy.wikipedia.org |
| ga.wikipedia.org |
| gag.wikipedia.org |
| gan.wikipedia.org |
| gd.wikipedia.org |
| gl.wikipedia.org |
| glk.wikipedia.org |
| gn.wikipedia.org |
| got.wikipedia.org |
| gu.wikipedia.org |
| gv.wikipedia.org |
| ha.wikipedia.org |
| hak.wikipedia.org |
| haw.wikipedia.org |
| he.wikipedia.org |
| hi.wikipedia.org |
| hif.wikipedia.org |
| ho.wikipedia.org |
| hr.wikipedia.org |
| hsb.wikipedia.org |
| ht.wikipedia.org |
| hu.wikipedia.org |
| hy.wikipedia.org |
| hz.wikipedia.org |
| ia.wikipedia.org |
| id.wikipedia.org |
| ie.wikipedia.org |
| ig.wikipedia.org |
| ii.wikipedia.org |
| ik.wikipedia.org |
| ilo.wikipedia.org |
| io.wikipedia.org |
| is.wikipedia.org |
| it.wikipedia.org |
| iu.wikipedia.org |
| ja.wikipedia.org |
| jbo.wikipedia.org |
| jv.wikipedia.org |
| ka.wikipedia.org |
| kaa.wikipedia.org |
| kab.wikipedia.org |
| kbd.wikipedia.org |
| kg.wikipedia.org |
| ki.wikipedia.org |
| kj.wikipedia.org |
| kk.wikipedia.org |
| kl.wikipedia.org |
| km.wikipedia.org |
| kn.wikipedia.org |
| ko.wikipedia.org |
| koi.wikipedia.org |
| kr.wikipedia.org |
| krc.wikipedia.org |
| ks.wikipedia.org |
| ksh.wikipedia.org |
| ku.wikipedia.org |
| kv.wikipedia.org |
| kw.wikipedia.org |
| ky.wikipedia.org |
| la.wikipedia.org |
| lad.wikipedia.org |
| lb.wikipedia.org |
| lbe.wikipedia.org |
| lez.wikipedia.org |
| lg.wikipedia.org |
| li.wikipedia.org |
| lij.wikipedia.org |
| lmo.wikipedia.org |
| ln.wikipedia.org |
| lo.wikipedia.org |
| lt.wikipedia.org |
| ltg.wikipedia.org |
| lv.wikipedia.org |
| map-bms.wikipedia.org |
| mdf.wikipedia.org |
| mg.wikipedia.org |
| mh.wikipedia.org |
| mhr.wikipedia.org |
| mi.wikipedia.org |
| min.wikipedia.org |
| mk.wikipedia.org |
| ml.wikipedia.org |
| mn.wikipedia.org |
| mo.wikipedia.org |
| mr.wikipedia.org |
| mrj.wikipedia.org |
| ms.wikipedia.org |
| mt.wikipedia.org |
| mus.wikipedia.org |
| mwl.wikipedia.org |
| my.wikipedia.org |
| myv.wikipedia.org |
| mzn.wikipedia.org |
| na.wikipedia.org |
| nah.wikipedia.org |
| nap.wikipedia.org |
| nds-nl.wikipedia.org |
| nds.wikipedia.org |
| ne.wikipedia.org |
| new.wikipedia.org |
| ng.wikipedia.org |
| nl.wikipedia.org |
| nn.wikipedia.org |
| no.wikipedia.org |
| nov.wikipedia.org |
| nrm.wikipedia.org |
| nso.wikipedia.org |
| nv.wikipedia.org |
| ny.wikipedia.org |
| oc.wikipedia.org |
| om.wikipedia.org |
| or.wikipedia.org |
| os.wikipedia.org |
| pa.wikipedia.org |
| pag.wikipedia.org |
| pam.wikipedia.org |
| pap.wikipedia.org |
| pcd.wikipedia.org |
| pdc.wikipedia.org |
| pfl.wikipedia.org |
| pi.wikipedia.org |
| pih.wikipedia.org |
| pl.wikipedia.org |
| pms.wikipedia.org |
| pnb.wikipedia.org |
| pnt.wikipedia.org |
| ps.wikipedia.org |
| pt.wikipedia.org |
| qu.wikipedia.org |
| rm.wikipedia.org |
| rmy.wikipedia.org |
| rn.wikipedia.org |
| ro.wikipedia.org |
| roa-rup.wikipedia.org |
| roa-tara.wikipedia.org |
| ru.wikipedia.org |
| rue.wikipedia.org |
| rw.wikipedia.org |
| sa.wikipedia.org |
| sah.wikipedia.org |
| sc.wikipedia.org |
| scn.wikipedia.org |
| sco.wikipedia.org |
| sd.wikipedia.org |
| se.wikipedia.org |
| sg.wikipedia.org |
| sh.wikipedia.org |
| si.wikipedia.org |
| simple.wikipedia.org |
| sk.wikipedia.org |
| sl.wikipedia.org |
| sm.wikipedia.org |
| sn.wikipedia.org |
| so.wikipedia.org |
| sq.wikipedia.org |
| sr.wikipedia.org |
| srn.wikipedia.org |
| ss.wikipedia.org |
| st.wikipedia.org |
| stq.wikipedia.org |
| su.wikipedia.org |
| sv.wikipedia.org |
| sw.wikipedia.org |
| szl.wikipedia.org |
| ta.wikipedia.org |
| te.wikipedia.org |
| tet.wikipedia.org |
| tg.wikipedia.org |
| th.wikipedia.org |
| ti.wikipedia.org |
| tk.wikipedia.org |
| tl.wikipedia.org |
| tn.wikipedia.org |
| to.wikipedia.org |
| tpi.wikipedia.org |
| tr.wikipedia.org |
| ts.wikipedia.org |
| tt.wikipedia.org |
| tum.wikipedia.org |
| tw.wikipedia.org |
| ty.wikipedia.org |
| tyv.wikipedia.org |
| udm.wikipedia.org |
| ug.wikipedia.org |
| uk.wikipedia.org |
| ur.wikipedia.org |
| uz.wikipedia.org |
| ve.wikipedia.org |
| vec.wikipedia.org |
| vep.wikipedia.org |
| vi.wikipedia.org |
| vls.wikipedia.org |
| vo.wikipedia.org |
| wa.wikipedia.org |
| war.wikipedia.org |
| wo.wikipedia.org |
| wuu.wikipedia.org |
| xal.wikipedia.org |
| xh.wikipedia.org |
| xmf.wikipedia.org |
| yi.wikipedia.org |
| yo.wikipedia.org |
| za.wikipedia.org |
| zea.wikipedia.org |
| zh-classical.wikipedia.org |
| zh-min-nan.wikipedia.org |
| zh-yue.wikipedia.org |
| zh.wikipedia.org |
| zu.wikipedia.org |
| fr.wiktionary.org |
| fr.wikibooks.org |
| pt.wikibooks.org |
| fr.wikiversity.org |
| pt.wikiversity.org |
| fr.wikinews.org |
| se.wikimedia.org |