mediawiki-selenium 0.1.13 → 0.1.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +42 -16
- data/docs/jenkins.md +1 -1
- data/docs/job.md +7 -3
- data/docs/jobs.md +34 -20
- data/docs/template.md +1 -0
- data/lib/mediawiki/selenium/env.rb +26 -25
- data/lib/mediawiki/selenium/hooks.rb +9 -9
- data/lib/mediawiki/selenium/sauce.rb +1 -1
- data/lib/mediawiki/selenium/version.rb +1 -1
- metadata +20 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76ca7795fe11373d8beaed3a1a659ad39ecf4fe6
|
4
|
+
data.tar.gz: 6fa5e85e59bd00e9f4031ec61dfa3aea5ea3c082
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1be0c0f20c8ef6b4a2d3f947393036f4af7ec7a63db2c728440f41dc072ede968eae02b59bfc92b9f3e25146026ecd3f7ce91f8e923ec1198f657aa67faf4311
|
7
|
+
data.tar.gz: a7b1f12f3dddce4bfd225cf449e424d7e8631c9925c1bc2ecb56b2d30c259e1276502808502fabc4fa0c2aae507fa16b23a16792f7ae67c0a207c73a2b3ab8d7
|
data/README.md
CHANGED
@@ -5,23 +5,47 @@ makes it easy to update the shared code.
|
|
5
5
|
|
6
6
|
## Installation
|
7
7
|
|
8
|
-
|
8
|
+
To run the Selenium tests you will have to install Ruby. Look at the `Gemfile` file for the exact required version. You also have to install the latest versions of RubyGems and Firefox (the default browser in which the tests run). The easiest way to install Ruby on Linux/Unix/Mac is [RVM](https://rvm.io/) and on Windows [RubyInstaller](http://rubyinstaller.org/).
|
9
|
+
ALERT: On Windows you must use Ruby 1.9.3 for now because cucumber/gherkin library currently doesn't work with Ruby 2.x.x.
|
9
10
|
|
10
|
-
|
11
|
+
cd /tests/browser
|
12
|
+
gem update --system
|
13
|
+
gem install bundler
|
14
|
+
bundle install
|
11
15
|
|
12
|
-
|
16
|
+
If you're not using RVM to manage your Ruby versions, you will need to run the commands as root (using `sudo`).
|
13
17
|
|
14
|
-
|
18
|
+
Environment variables MEDIAWIKI_USER and MEDIAWIKI_PASSWORD are required for tests tagged `@login`. For local testing, create a test user on your local wiki and export the user and password as the values for those variables.
|
19
|
+
For example:
|
15
20
|
|
16
|
-
|
21
|
+
export MEDIAWIKI_USER=<username here> # Linux/Unix/Mac
|
22
|
+
set MEDIAWIKI_USER=<username here> # Windows
|
17
23
|
|
18
|
-
|
24
|
+
export MEDIAWIKI_PASSWORD=<password here> # Linux/Unix/Mac
|
25
|
+
set MEDIAWIKI_PASSWORD=<password here> # Windows
|
19
26
|
|
20
27
|
## Usage
|
21
28
|
|
22
|
-
|
29
|
+
Run the tests with `bundle exec cucumber`, this should start Firefox.
|
23
30
|
|
24
|
-
|
31
|
+
By default the tests run at en.wikipedia.beta.wmflabs.org. If you want to run the tests elsewhere, set the `MEDIAWIKI_URL` environment variable. For example:
|
32
|
+
|
33
|
+
export MEDIAWIKI_URL=http://commons.wikimedia.beta.wmflabs.org/wiki/ # Linux/Unix/Mac
|
34
|
+
set MEDIAWIKI_URL=http://commons.wikimedia.beta.wmflabs.org/wiki/ # Windows
|
35
|
+
|
36
|
+
To run a single test file enter `bundle exec cucumber features/FEATURE_NAME.feature`.
|
37
|
+
|
38
|
+
To run a single test scenario, put a colon and the line number (NN) on which the scenario begins after the file name: `bundle exec cucumber features/FEATURE_NAME.feature:NN`.
|
39
|
+
|
40
|
+
You can use a different browser with the BROWSER_LABEL env variable, the fastest is probably PhantomJS, a headless browser:
|
41
|
+
|
42
|
+
export BROWSER_LABEL=phantomjs # Linux/Unix/Mac
|
43
|
+
set BROWSER_LABEL=phantomjs # Windows
|
44
|
+
|
45
|
+
By default, the browser will close itself at the end of every scenario. If you want the browser to stay open, set the environment variable `KEEP_BROWSER_OPEN` to `true`:
|
46
|
+
|
47
|
+
export KEEP_BROWSER_OPEN=true # Linux/Unix/Mac
|
48
|
+
set KEEP_BROWSER_OPEN=true # Windows
|
25
49
|
|
26
50
|
## Links
|
27
51
|
|
@@ -30,14 +54,14 @@ mediawiki-selenium gem: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects
|
|
30
54
|
Repositories that use the gem:
|
31
55
|
|
32
56
|
- CirrusSearch: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/CirrusSearch), [GitHub](https://github.com/wikimedia/mediawiki-extensions-CirrusSearch), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-CirrusSearch), `/tests/browser` folder
|
33
|
-
- Flow: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/Flow), [GitHub](https://github.com/wikimedia/mediawiki-extensions-Flow), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-Flow), `/tests/browser` folder
|
34
|
-
- MobileFrontend: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/MobileFrontend), [GitHub](https://github.com/wikimedia/mediawiki-extensions-MobileFrontend), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-MobileFrontend), `/tests/browser` folder
|
35
|
-
- Translate: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/Translate), [GitHub](https://github.com/wikimedia/mediawiki-extensions-Translate), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-Translate), `/tests/browser` folder
|
36
|
-
- TwnMainPage: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/TwnMainPage), [GitHub](https://github.com/wikimedia/mediawiki-extensions-TwnMainPage), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-TwnMainPage), `/tests/browser` folder
|
37
|
-
- UniversalLanguageSelector: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/UniversalLanguageSelector), [GitHub](https://github.com/wikimedia/mediawiki-extensions-UniversalLanguageSelector), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-UniversalLanguageSelector), `/tests/browser` folder
|
38
|
-
- VisualEditor: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/VisualEditor), [GitHub](https://github.com/wikimedia/mediawiki-extensions-VisualEditor), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-VisualEditor), `/modules/ve-mw/test/browser` folder
|
39
|
-
- Wikibase: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/Wikibase), [GitHub](https://github.com/wikimedia/mediawiki-extensions-Wikibase), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-Wikibase), `/
|
40
|
-
- browsertests: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/qa/browsertests), [GitHub](https://github.com/wikimedia/qa-browsertests), [Code Climate](https://codeclimate.com/github/wikimedia/qa-browsertests), `/` folder
|
57
|
+
- Flow: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/Flow), [GitHub](https://github.com/wikimedia/mediawiki-extensions-Flow), [Jenkins](https://wmf.ci.cloudbees.com/view/r-fl/), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-Flow), `/tests/browser` folder
|
58
|
+
- MobileFrontend: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/MobileFrontend), [GitHub](https://github.com/wikimedia/mediawiki-extensions-MobileFrontend), [Jenkins](https://wmf.ci.cloudbees.com/view/r-mf/), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-MobileFrontend), `/tests/browser` folder
|
59
|
+
- Translate: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/Translate), [GitHub](https://github.com/wikimedia/mediawiki-extensions-Translate), [Jenkins](https://wmf.ci.cloudbees.com/view/r-tr/), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-Translate), `/tests/browser` folder
|
60
|
+
- TwnMainPage: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/TwnMainPage), [GitHub](https://github.com/wikimedia/mediawiki-extensions-TwnMainPage), [Jenkins](https://wmf.ci.cloudbees.com/view/r-tw/), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-TwnMainPage), `/tests/browser` folder
|
61
|
+
- UniversalLanguageSelector: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/UniversalLanguageSelector), [GitHub](https://github.com/wikimedia/mediawiki-extensions-UniversalLanguageSelector), [Jenkins](https://wmf.ci.cloudbees.com/view/r-uls/), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-UniversalLanguageSelector), `/tests/browser` folder
|
62
|
+
- VisualEditor: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/VisualEditor), [GitHub](https://github.com/wikimedia/mediawiki-extensions-VisualEditor), [Jenkins](https://wmf.ci.cloudbees.com/view/r-ve/), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-VisualEditor), `/modules/ve-mw/test/browser` folder
|
63
|
+
- Wikibase: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/Wikibase), [GitHub](https://github.com/wikimedia/mediawiki-extensions-Wikibase), [Jenkins](https://wikidata-cloudbees.ci.cloudbees.com/), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-Wikibase), `/tests/browser` folder
|
64
|
+
- browsertests: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/qa/browsertests), [GitHub](https://github.com/wikimedia/qa-browsertests), [Jenkins](https://wmf.ci.cloudbees.com/view/r-bt/), [Code Climate](https://codeclimate.com/github/wikimedia/qa-browsertests), `/` folder
|
41
65
|
|
42
66
|
## Contributing
|
43
67
|
|
@@ -46,3 +70,5 @@ Repositories that use the gem:
|
|
46
70
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
47
71
|
4. Push to the branch (`git push origin my-new-feature`)
|
48
72
|
5. Create new Pull Request
|
73
|
+
|
74
|
+
https://www.mediawiki.org/wiki/QA/Browser_testing#How_to_contribute
|
data/docs/jenkins.md
CHANGED
data/docs/job.md
CHANGED
@@ -11,16 +11,20 @@
|
|
11
11
|
|
12
12
|
--
|
13
13
|
|
14
|
-
export
|
15
|
-
export
|
14
|
+
export MEDIAWIKI_USER=${MEDIAWIKI_USER}
|
15
|
+
export MEDIAWIKI_PASSWORD_VARIABLE=${MEDIAWIKI_PASSWORD_VARIABLE}
|
16
|
+
|
17
|
+
export BROWSER_LABEL=${BROWSER_LABEL}
|
18
|
+
export MEDIAWIKI_URL=http://${MEDIAWIKI_URL}/wiki/
|
16
19
|
|
17
20
|
curl -s -o use-ruby https://repository-cloudbees.forge.cloudbees.com/distributions/ci-addons/ruby/use-ruby
|
18
21
|
RUBY_VERSION=2.0.0-p247 \
|
19
22
|
source ./use-ruby
|
20
23
|
|
21
24
|
gem install bundler --no-ri --no-rdoc
|
25
|
+
if [ -d "${FOLDER}" ]; then cd ${FOLDER}; fi
|
22
26
|
bundle install
|
23
|
-
bundle exec
|
27
|
+
bundle exec ${BUNDLE_EXEC}
|
24
28
|
|
25
29
|
--
|
26
30
|
|
data/docs/jobs.md
CHANGED
@@ -8,25 +8,20 @@
|
|
8
8
|
- Repository URL:
|
9
9
|
- MediaWiki user:
|
10
10
|
- MediaWiki password variable:
|
11
|
-
MEDIAWIKI_PASSWORD_SELENIUM_SANDBOX_TRANSLATEWIKI_NET
|
12
|
-
MEDIAWIKI_PASSWORD_SELENIUM_USER_WIKIPEDIA_ORG
|
13
|
-
MEDIAWIKI_PASSWORD_SELENIUM_USER_WMFLABS_ORG
|
14
|
-
MEDIAWIKI_PASSWORD_ULS_WMFLABS_ORG
|
15
11
|
|
16
12
|
|
17
13
|
|
18
14
|
# browsertests
|
19
15
|
- Recipients: cmcmahon@wikimedia.org zfilipin@wikimedia.org
|
20
16
|
- Folder: root of the repository
|
21
|
-
- MediaWiki user: Selenium_user
|
22
17
|
- Repository URL: browsertests
|
23
|
-
|
18
|
+
- MediaWiki user: Selenium_user
|
24
19
|
|
25
20
|
|
26
21
|
# browsertests-commons.wikimedia.beta.wmflabs.org
|
27
22
|
- MediaWiki URL: commons.wikimedia.beta.wmflabs.org
|
28
23
|
- bundle exec: cucumber --verbose --profile ci --tags @commons.wikimedia.beta.wmflabs.org
|
29
|
-
|
24
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WMFLABS_ORG
|
30
25
|
|
31
26
|
## browsertests-commons.wikimedia.beta.wmflabs.org-linux-chrome
|
32
27
|
- Browser Label: chrome
|
@@ -45,7 +40,7 @@
|
|
45
40
|
# browsertests-en.wikipedia.beta.wmflabs.org
|
46
41
|
- bundle exec: cucumber --verbose --profile ci --tags @en.wikipedia.beta.wmflabs.org
|
47
42
|
- MediaWiki URL: en.wikipedia.beta.wmflabs.org
|
48
|
-
|
43
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WMFLABS_ORG
|
49
44
|
|
50
45
|
## browsertests-en.wikipedia.beta.wmflabs.org-linux-chrome
|
51
46
|
- Browser Label: chrome
|
@@ -76,7 +71,7 @@
|
|
76
71
|
# browsertests-test2.wikipedia.org
|
77
72
|
- bundle exec: cucumber --verbose --profile ci --tags @test2.wikipedia.org
|
78
73
|
- MediaWiki URL: test2.wikipedia.org
|
79
|
-
|
74
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WIKIPEDIA_ORG
|
80
75
|
|
81
76
|
## browsertests-test2.wikipedia.org-linux-chrome
|
82
77
|
- Browser Label: chrome
|
@@ -109,8 +104,9 @@
|
|
109
104
|
- Recipients: zfilipin@wikimedia.org cmcmahon@wikimedia.org
|
110
105
|
- MediaWiki URL: en.m.wikipedia.beta.wmflabs.org
|
111
106
|
- Folder: tests/browser/
|
112
|
-
- MediaWiki user: Selenium_user
|
113
107
|
- Repository URL: Flow
|
108
|
+
- MediaWiki user: Selenium_user
|
109
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WMFLABS_ORG
|
114
110
|
|
115
111
|
|
116
112
|
## Flow-en.wikipedia.beta.wmflabs.org-linux-chrome
|
@@ -122,31 +118,34 @@
|
|
122
118
|
|
123
119
|
|
124
120
|
# MobileFrontend
|
125
|
-
-
|
121
|
+
- Recipients: cmcmahon@wikimedia.org mobile-l@lists.wikimedia.org mobile-tech@wikimedia.org zfilipin@wikimedia.org
|
126
122
|
- Folder: tests/browser/
|
127
|
-
- MediaWiki user: Selenium_user
|
128
123
|
- Repository URL: MobileFrontend
|
129
|
-
|
124
|
+
- MediaWiki user: Selenium_user
|
130
125
|
|
131
126
|
## MobileFrontend-en.m.wikipedia.beta.wmflabs.org-linux-chrome
|
132
127
|
- Browser Label: chrome
|
133
|
-
-
|
128
|
+
- bundle exec: cucumber --verbose --profile ci --tags @en.m.wikipedia.beta.wmflabs.org
|
134
129
|
- MediaWiki URL: en.m.wikipedia.beta.wmflabs.org
|
130
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WMFLABS_ORG
|
135
131
|
|
136
132
|
## MobileFrontend-en.m.wikipedia.beta.wmflabs.org-linux-firefox
|
137
133
|
- Browser Label: firefox
|
138
|
-
-
|
134
|
+
- bundle exec: cucumber --verbose --profile ci --tags @en.m.wikipedia.beta.wmflabs.org
|
139
135
|
- MediaWiki URL: en.m.wikipedia.beta.wmflabs.org
|
136
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WMFLABS_ORG
|
140
137
|
|
141
138
|
## MobileFrontend-en.m.wikipedia.org-linux-firefox
|
142
139
|
- Browser Label: firefox
|
143
|
-
-
|
140
|
+
- bundle exec: cucumber --verbose --profile ci --tags @en.m.wikipedia.org
|
144
141
|
- MediaWiki URL: en.m.wikipedia.org
|
142
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WIKIPEDIA_ORG
|
145
143
|
|
146
144
|
## MobileFrontend-test2.m.wikipedia.org-linux-firefox
|
147
145
|
- Browser Label: firefox
|
148
|
-
-
|
146
|
+
- bundle exec: cucumber --verbose --profile ci --tags @test2.m.wikipedia.org
|
149
147
|
- MediaWiki URL: test2.m.wikipedia.org
|
148
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WIKIPEDIA_ORG
|
150
149
|
|
151
150
|
|
152
151
|
|
@@ -159,8 +158,9 @@
|
|
159
158
|
- Recipients: aaharoni@wikimedia.org cmcmahon@wikimedia.org nlaxstrom@wikimedia.org smazeland@wikimedia.org zfilipin@wikimedia.org
|
160
159
|
- MediaWiki URL: sandbox.translatewiki.net
|
161
160
|
- Folder: tests/browser/
|
162
|
-
- MediaWiki user: Selenium
|
163
161
|
- Repository URL: Translate
|
162
|
+
- MediaWiki user: Selenium
|
163
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_SANDBOX_TRANSLATEWIKI_NET
|
164
164
|
|
165
165
|
|
166
166
|
|
@@ -173,8 +173,10 @@
|
|
173
173
|
- Recipients: aaharoni@wikimedia.org cmcmahon@wikimedia.org nlaxstrom@wikimedia.org smazeland@wikimedia.org zfilipin@wikimedia.org
|
174
174
|
- MediaWiki URL: sandbox.translatewiki.net
|
175
175
|
- Folder: tests/browser/
|
176
|
-
- MediaWiki user: Selenium
|
177
176
|
- Repository URL: TwnMainPage
|
177
|
+
- MediaWiki user: Selenium
|
178
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_SANDBOX_TRANSLATEWIKI_NET
|
179
|
+
|
178
180
|
|
179
181
|
|
180
182
|
|
@@ -189,18 +191,26 @@
|
|
189
191
|
- bundle exec: cucumber --verbose --profile ci --tags @commons.wikimedia.beta.wmflabs.org
|
190
192
|
- MediaWiki URL: commons.wikimedia.beta.wmflabs.org
|
191
193
|
- MediaWiki user: Uls
|
194
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_ULS_WMFLABS_ORG
|
195
|
+
|
196
|
+
## UniversalLanguageSelector-en.wikipedia.beta.wmflabs.org-linux-firefox
|
197
|
+
- bundle exec: cucumber --verbose --profile ci --tags @en.wikipedia.beta.wmflabs.org
|
198
|
+
- MediaWiki URL: en.wikipedia.beta.wmflabs.org
|
199
|
+
- MediaWiki user: Uls
|
200
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_ULS_WMFLABS_ORG
|
192
201
|
|
193
202
|
## UniversalLanguageSelector-sandbox.translatewiki.net-linux-firefox
|
194
203
|
- bundle exec: cucumber --verbose --profile ci --tags @sandbox.translatewiki.net
|
195
204
|
- MediaWiki URL: sandbox.translatewiki.net
|
196
205
|
- MediaWiki user: Selenium
|
206
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_SANDBOX_TRANSLATEWIKI_NET
|
197
207
|
|
198
208
|
|
199
209
|
|
200
210
|
# VisualEditor
|
201
211
|
- Folder: modules/ve-mw/test/browser/
|
202
|
-
- MediaWiki user: Selenium_user
|
203
212
|
- Repository URL: VisualEditor
|
213
|
+
- MediaWiki user: Selenium_user
|
204
214
|
|
205
215
|
|
206
216
|
## VisualEditor-en.wikipedia.beta.wmflabs.org-linux-chrome
|
@@ -208,21 +218,25 @@
|
|
208
218
|
- bundle exec: cucumber --verbose --profile ci --tags @en.wikipedia.beta.wmflabs.org
|
209
219
|
- Recipients: cmcmahon@wikimedia.org zfilipin@wikimedia.org
|
210
220
|
- MediaWiki URL: en.wikipedia.beta.wmflabs.org
|
221
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WMFLABS_ORG
|
211
222
|
|
212
223
|
## VisualEditor-en.wikipedia.beta.wmflabs.org-linux-firefox
|
213
224
|
- Browser Label: firefox
|
214
225
|
- bundle exec: cucumber --verbose --profile ci --tags @en.wikipedia.beta.wmflabs.org
|
215
226
|
- Recipients: cmcmahon@wikimedia.org jforrester@wikimedia.org zfilipin@wikimedia.org
|
216
227
|
- MediaWiki URL: en.wikipedia.beta.wmflabs.org
|
228
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WMFLABS_ORG
|
217
229
|
|
218
230
|
## VisualEditor-test2.wikipedia.org-linux-chrome
|
219
231
|
- Browser Label: chrome
|
220
232
|
- bundle exec: cucumber --verbose --profile ci --tags @test2.wikipedia.org
|
221
233
|
- Recipients: cmcmahon@wikimedia.org zfilipin@wikimedia.org
|
222
234
|
- MediaWiki URL: test2.wikipedia.org
|
235
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WIKIPEDIA_ORG
|
223
236
|
|
224
237
|
## VisualEditor-test2.wikipedia.org-linux-firefox
|
225
238
|
- Browser Label: firefox
|
226
239
|
- bundle exec: cucumber --verbose --profile ci --tags @test2.wikipedia.org
|
227
240
|
- Recipients: cmcmahon@wikimedia.org jforrester@wikimedia.org zfilipin@wikimedia.org
|
228
241
|
- MediaWiki URL: test2.wikipedia.org
|
242
|
+
- MediaWiki password variable: MEDIAWIKI_PASSWORD_SELENIUM_USER_WIKIPEDIA_ORG
|
data/docs/template.md
CHANGED
@@ -10,12 +10,12 @@ https://github.com/zeljkofilipin/mediawiki-selenium/blob/master/CREDITS.
|
|
10
10
|
=end
|
11
11
|
|
12
12
|
# before all
|
13
|
-
require
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require
|
18
|
-
require
|
13
|
+
require "bundler/setup"
|
14
|
+
require "page-object"
|
15
|
+
require "page-object/page_factory"
|
16
|
+
require "rest_client"
|
17
|
+
require "watir-webdriver"
|
18
|
+
require "yaml"
|
19
19
|
|
20
20
|
World(PageObject::PageFactory)
|
21
21
|
|
@@ -27,20 +27,21 @@ def browser(environment, test_name, language)
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
def environment
|
30
|
-
if ENV[
|
30
|
+
if ENV["BROWSER_LABEL"] and ENV["BROWSER_LABEL"] != "phantomjs" and
|
31
|
+
ENV["SAUCE_ONDEMAND_USERNAME"] and ENV["SAUCE_ONDEMAND_ACCESS_KEY"]
|
31
32
|
:saucelabs
|
32
33
|
else
|
33
34
|
:local
|
34
35
|
end
|
35
36
|
end
|
36
37
|
def local_browser(language)
|
37
|
-
if ENV[
|
38
|
-
browser_label = ENV[
|
38
|
+
if ENV["BROWSER_LABEL"]
|
39
|
+
browser_label = ENV["BROWSER_LABEL"].to_sym
|
39
40
|
else
|
40
41
|
browser_label = :firefox
|
41
42
|
end
|
42
43
|
|
43
|
-
if language ==
|
44
|
+
if language == "default"
|
44
45
|
Watir::Browser.new browser_label
|
45
46
|
else
|
46
47
|
if browser_label == :firefox
|
@@ -50,7 +51,7 @@ def local_browser(language)
|
|
50
51
|
else
|
51
52
|
raise "Changing default language is currently supported only for Firefox and Chrome!"
|
52
53
|
end
|
53
|
-
profile[
|
54
|
+
profile["intl.accept_languages"] = language
|
54
55
|
Watir::Browser.new browser_label, :profile => profile
|
55
56
|
end
|
56
57
|
end
|
@@ -58,33 +59,33 @@ def sauce_api(json)
|
|
58
59
|
RestClient::Request.execute(
|
59
60
|
:method => :put,
|
60
61
|
:url => "https://saucelabs.com/rest/v1/#{ENV['SAUCE_ONDEMAND_USERNAME']}/jobs/#{$session_id}",
|
61
|
-
:user => ENV[
|
62
|
-
:password => ENV[
|
62
|
+
:user => ENV["SAUCE_ONDEMAND_USERNAME"],
|
63
|
+
:password => ENV["SAUCE_ONDEMAND_ACCESS_KEY"],
|
63
64
|
:headers => {:content_type => "application/json"},
|
64
65
|
:payload => json
|
65
66
|
)
|
66
67
|
end
|
67
68
|
def sauce_browser(test_name, language)
|
68
|
-
config = YAML.load_file(
|
69
|
-
browser_label = config[ENV[
|
69
|
+
config = YAML.load_file("config/config.yml")
|
70
|
+
browser_label = config[ENV["BROWSER_LABEL"]]
|
70
71
|
|
71
|
-
if language ==
|
72
|
-
caps = Selenium::WebDriver::Remote::Capabilities.send(browser_label[
|
73
|
-
elsif browser_label[
|
72
|
+
if language == "default"
|
73
|
+
caps = Selenium::WebDriver::Remote::Capabilities.send(browser_label["name"])
|
74
|
+
elsif browser_label["name"] == "firefox"
|
74
75
|
profile = Selenium::WebDriver::Firefox::Profile.new
|
75
|
-
profile[
|
76
|
+
profile["intl.accept_languages"] = language
|
76
77
|
caps = Selenium::WebDriver::Remote::Capabilities.firefox(:firefox_profile => profile)
|
77
|
-
elsif browser_label[
|
78
|
+
elsif browser_label["name"] == "chrome"
|
78
79
|
profile = Selenium::WebDriver::Chrome::Profile.new
|
79
|
-
profile[
|
80
|
-
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
|
80
|
+
profile["intl.accept_languages"] = language
|
81
|
+
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chrome.profile" => profile.as_json["zip"])
|
81
82
|
end
|
82
83
|
|
83
|
-
caps.platform = browser_label[
|
84
|
-
caps.version = browser_label[
|
84
|
+
caps.platform = browser_label["platform"]
|
85
|
+
caps.version = browser_label["version"]
|
85
86
|
caps[:name] = "#{test_name} #{ENV['JOB_NAME']}##{ENV['BUILD_NUMBER']}"
|
86
87
|
|
87
|
-
require
|
88
|
+
require "selenium/webdriver/remote/http/persistent" # http_client
|
88
89
|
browser = Watir::Browser.new(
|
89
90
|
:remote,
|
90
91
|
http_client: Selenium::WebDriver::Remote::Http::Persistent.new,
|
@@ -9,22 +9,22 @@ mediawiki-selenium top-level directory and at
|
|
9
9
|
https://github.com/zeljkofilipin/mediawiki-selenium/blob/master/CREDITS.
|
10
10
|
=end
|
11
11
|
|
12
|
-
config = YAML.load_file(
|
12
|
+
config = YAML.load_file("config/config.yml")
|
13
13
|
|
14
|
-
Before(
|
15
|
-
ENV[
|
16
|
-
puts "MEDIAWIKI_USER environment variable is not defined! Please export a value for that variable before proceeding." unless ENV[
|
17
|
-
puts "MEDIAWIKI_PASSWORD environment variable is not defined! Please export a value for that variable before proceeding." unless ENV[
|
14
|
+
Before("@login") do
|
15
|
+
ENV["MEDIAWIKI_PASSWORD"] = ENV[ENV["MEDIAWIKI_PASSWORD_VARIABLE"]] if ENV["MEDIAWIKI_PASSWORD_VARIABLE"]
|
16
|
+
puts "MEDIAWIKI_USER environment variable is not defined! Please export a value for that variable before proceeding." unless ENV["MEDIAWIKI_USER"]
|
17
|
+
puts "MEDIAWIKI_PASSWORD environment variable is not defined! Please export a value for that variable before proceeding." unless ENV["MEDIAWIKI_PASSWORD"]
|
18
18
|
end
|
19
19
|
|
20
20
|
Before do |scenario|
|
21
21
|
@config = config
|
22
22
|
@random_string = Random.new.rand.to_s
|
23
|
-
if ENV[
|
23
|
+
if ENV["REUSE_BROWSER"] == "true" and $browser # CirrusSearch and VisualEditor need this
|
24
24
|
@browser = $browser
|
25
25
|
else
|
26
26
|
unless @language or @user_agent # only UniversalLanguageSelector needs @language, only MobileFrontend needs @user_agent
|
27
|
-
@browser = browser(environment, test_name(scenario),
|
27
|
+
@browser = browser(environment, test_name(scenario), "default")
|
28
28
|
$browser = @browser # CirrusSearch and VisualEditor need this
|
29
29
|
$session_id = @browser.driver.instance_variable_get(:@bridge).session_id
|
30
30
|
end
|
@@ -35,7 +35,7 @@ After do |scenario|
|
|
35
35
|
if environment == :saucelabs
|
36
36
|
sauce_api(%Q{{"passed": #{scenario.passed?}}})
|
37
37
|
sauce_api(%Q{{"public": true}})
|
38
|
-
sauce_api(%Q{{"build": #{ENV[
|
38
|
+
sauce_api(%Q{{"build": #{ENV["BUILD_NUMBER"]}}}) if ENV["BUILD_NUMBER"]
|
39
39
|
end
|
40
|
-
@browser.close unless ENV[
|
40
|
+
@browser.close unless ENV["KEEP_BROWSER_OPEN"] == "true" or ENV["REUSE_BROWSER"] == "true" # CirrusSearch and VisualEditor need this
|
41
41
|
end
|
@@ -9,7 +9,7 @@ mediawiki-selenium top-level directory and at
|
|
9
9
|
https://github.com/zeljkofilipin/mediawiki-selenium/blob/master/CREDITS.
|
10
10
|
=end
|
11
11
|
|
12
|
-
require
|
12
|
+
require "cucumber/formatter/junit"
|
13
13
|
|
14
14
|
module Cucumber::Formatter
|
15
15
|
class Sauce < Junit
|
metadata
CHANGED
@@ -1,111 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mediawiki-selenium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zeljko Filipin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: net-http-persistent
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: page-object
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rest-client
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rspec-expectations
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: syntax
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - '>='
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
description: |-
|
@@ -117,7 +117,7 @@ executables: []
|
|
117
117
|
extensions: []
|
118
118
|
extra_rdoc_files: []
|
119
119
|
files:
|
120
|
-
-
|
120
|
+
- .gitreview
|
121
121
|
- CREDITS
|
122
122
|
- LICENSE
|
123
123
|
- README.md
|
@@ -142,17 +142,17 @@ require_paths:
|
|
142
142
|
- lib
|
143
143
|
required_ruby_version: !ruby/object:Gem::Requirement
|
144
144
|
requirements:
|
145
|
-
- -
|
145
|
+
- - '>='
|
146
146
|
- !ruby/object:Gem::Version
|
147
147
|
version: '0'
|
148
148
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - '>='
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
requirements: []
|
154
154
|
rubyforge_project:
|
155
|
-
rubygems_version: 2.1.
|
155
|
+
rubygems_version: 2.1.11
|
156
156
|
signing_key:
|
157
157
|
specification_version: 4
|
158
158
|
summary: An easy way to run MediaWiki Selenium tests.
|