mediawiki_selenium 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +9 -4
- data/UPGRADE.md +18 -1
- data/lib/mediawiki_selenium/browser_factory/base.rb +14 -2
- data/lib/mediawiki_selenium/support/pages.rb +0 -1
- data/lib/mediawiki_selenium/version.rb +1 -1
- data/spec/browser_factory/base_spec.rb +24 -0
- metadata +2 -3
- data/lib/mediawiki_selenium/support/pages/api_page.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 726360dc3c099dde3ad6827c181be19adbfa5e54
|
4
|
+
data.tar.gz: f6e3f6a52f72b471183508046d9b59f48af103bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb1180596eb74635fa300f438453f691d69dcdc31cb880e01e1eaf863416c68f20f9291aaf294ddfd876f8a96eae6399361fcc35ddbbcdbbd9ea39c3d1d49ae2
|
7
|
+
data.tar.gz: 44e1fb0e9c836131336baf5015fa8875c48cd2b293b6db05aa832db1a5b9233370070d73b550bb9914992f50063d3fccd06f198fb8e239f52b0c2ae67a279f4c
|
data/README.md
CHANGED
@@ -37,7 +37,7 @@ Create a `Gemfile` in the root of your MediaWiki-related project that
|
|
37
37
|
specifies the version of `mediawiki_selenium` you wish to use (typically the
|
38
38
|
latest version).
|
39
39
|
|
40
|
-
gem 'mediawiki_selenium', '~> 1.
|
40
|
+
gem 'mediawiki_selenium', '~> 1.3.0'
|
41
41
|
|
42
42
|
Install the gem and its dependencies by running `bundle install`. (If
|
43
43
|
[Bundler](http://bundler.io/) is not yet installed, install it with
|
@@ -69,7 +69,7 @@ for local development, or against at least the [Beta Cluster](http://www.mediawi
|
|
69
69
|
for continuous integration.
|
70
70
|
|
71
71
|
For details on how environment configuration is loaded and used by step
|
72
|
-
definitions, see the documentation for
|
72
|
+
definitions, see the documentation for {MediawikiSelenium::Environment}.
|
73
73
|
|
74
74
|
## Writing Tests
|
75
75
|
|
@@ -79,8 +79,8 @@ you'll find some helpful [high-level documentation](http://www.mediawiki.org/wik
|
|
79
79
|
to get you started.
|
80
80
|
|
81
81
|
To see exactly which methods are available from within step definitions, see
|
82
|
-
the documentation for
|
83
|
-
|
82
|
+
the documentation for {MediawikiSelenium::Environment},
|
83
|
+
{MediawikiSelenium::ApiHelper}, and {MediawikiSelenium::PageFactory}.
|
84
84
|
|
85
85
|
## Running Tests
|
86
86
|
|
@@ -199,6 +199,11 @@ See https://www.mediawiki.org/wiki/Gerrit
|
|
199
199
|
|
200
200
|
## Release notes
|
201
201
|
|
202
|
+
### 1.3.0 2015-06-10
|
203
|
+
* Added {Mediawiki::Environment#override} for overriding environment
|
204
|
+
configuration at runtime
|
205
|
+
* Removed deprecated `APIPage` page object and updated upgrade docs
|
206
|
+
|
202
207
|
### 1.2.1 2015-06-02
|
203
208
|
* Fixed issue with inconsistent JSON output in Raita logger when using
|
204
209
|
scenario outlines
|
data/UPGRADE.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
First, update the `Gemfile` in your project's root directory to specify the
|
6
6
|
new version.
|
7
7
|
|
8
|
-
gem 'mediawiki_selenium', '~> 1.
|
8
|
+
gem 'mediawiki_selenium', '~> 1.3.0'
|
9
9
|
|
10
10
|
## Upgrade gems and dependencies
|
11
11
|
|
@@ -113,3 +113,20 @@ Would be changed to:
|
|
113
113
|
When(/^I am viewing Topic page$/) do
|
114
114
|
on(FlowPage).wait_until { browser.url =~ /Topic/ }
|
115
115
|
end
|
116
|
+
|
117
|
+
## Refactor use of deprecated `APIPage`
|
118
|
+
|
119
|
+
API requests should be made directly using {MediawikiSelenium::ApiHelper#api}
|
120
|
+
which returns an instance of [MediawikiApi::Client](https://doc.wikimedia.org/rubygems/mediawiki-ruby-api/).
|
121
|
+
|
122
|
+
For example:
|
123
|
+
|
124
|
+
Given(/^the "(.*)" article contains "(.*)"$/) do |title, text|
|
125
|
+
on(APIPage).create(title, text)
|
126
|
+
end
|
127
|
+
|
128
|
+
Would be changed to:
|
129
|
+
|
130
|
+
Given(/^the "(.*)" article contains "(.*)"$/) do |title, text|
|
131
|
+
api.create_page(title, text)
|
132
|
+
end
|
@@ -71,6 +71,7 @@ module MediawikiSelenium
|
|
71
71
|
@browser_name = browser_name
|
72
72
|
@bindings = {}
|
73
73
|
@browser_cache = {}
|
74
|
+
@overrides = {}
|
74
75
|
end
|
75
76
|
|
76
77
|
# Returns a unique set of all the binding keys.
|
@@ -146,6 +147,8 @@ module MediawikiSelenium
|
|
146
147
|
# @return [Hash]
|
147
148
|
#
|
148
149
|
def browser_options(config)
|
150
|
+
config = config.merge(@overrides)
|
151
|
+
|
149
152
|
options = default_browser_options.tap do |default_options|
|
150
153
|
bindings.each do |(names, bindings_for_option)|
|
151
154
|
bindings_for_option.each do |binding|
|
@@ -183,10 +186,19 @@ module MediawikiSelenium
|
|
183
186
|
new_browser(browser_options(config))
|
184
187
|
end
|
185
188
|
|
189
|
+
# Always use the given configuration when setting up a new browser,
|
190
|
+
# regardless of what has been previously configured.
|
191
|
+
#
|
192
|
+
# @param config [Hash] Configuration overrides.
|
193
|
+
#
|
194
|
+
def override(config)
|
195
|
+
@overrides.merge!(config)
|
196
|
+
end
|
197
|
+
|
186
198
|
# Executes additional teardown tasks.
|
187
199
|
#
|
188
|
-
# @param
|
189
|
-
# @param
|
200
|
+
# @param _env [Environment] Environment.
|
201
|
+
# @param _status [Symbol] Status of the executed scenario.
|
190
202
|
#
|
191
203
|
def teardown(_env, _status)
|
192
204
|
# abstract
|
@@ -211,5 +211,29 @@ module MediawikiSelenium::BrowserFactory
|
|
211
211
|
end
|
212
212
|
end
|
213
213
|
end
|
214
|
+
|
215
|
+
describe '#override' do
|
216
|
+
subject { factory.override(overrides) }
|
217
|
+
|
218
|
+
before do
|
219
|
+
allow(Selenium::WebDriver::Remote::Capabilities).to receive(browser_name)
|
220
|
+
end
|
221
|
+
|
222
|
+
it 'always uses the given configuration when setting up a new browser' do
|
223
|
+
# Set up a binding that will accept :foo configuration
|
224
|
+
@foo = nil
|
225
|
+
factory.configure(:foo) { |foo| @foo = foo }
|
226
|
+
|
227
|
+
# Override with config { foo: 'y' }
|
228
|
+
factory.override(foo: 'y')
|
229
|
+
|
230
|
+
# Invoke the binding with `browser_options` and config { foo: 'x' }
|
231
|
+
factory.browser_options(foo: 'x')
|
232
|
+
|
233
|
+
# The configuration hook should have been invoked with the overriden
|
234
|
+
# value
|
235
|
+
expect(@foo).to eq('y')
|
236
|
+
end
|
237
|
+
end
|
214
238
|
end
|
215
239
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mediawiki_selenium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris McMahon
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2015-06-
|
16
|
+
date: 2015-06-11 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: cucumber
|
@@ -357,7 +357,6 @@ files:
|
|
357
357
|
- lib/mediawiki_selenium/support/modules/api_helper.rb
|
358
358
|
- lib/mediawiki_selenium/support/modules/strict_pending.rb
|
359
359
|
- lib/mediawiki_selenium/support/pages.rb
|
360
|
-
- lib/mediawiki_selenium/support/pages/api_page.rb
|
361
360
|
- lib/mediawiki_selenium/support/pages/login_page.rb
|
362
361
|
- lib/mediawiki_selenium/support/pages/random_page.rb
|
363
362
|
- lib/mediawiki_selenium/support/pages/reset_preferences_page.rb
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'page-object'
|
2
|
-
require 'mediawiki_api'
|
3
|
-
|
4
|
-
class APIPage
|
5
|
-
include PageObject
|
6
|
-
|
7
|
-
def client
|
8
|
-
return @client if defined?(@client)
|
9
|
-
|
10
|
-
unless ENV['MEDIAWIKI_API_URL']
|
11
|
-
raise 'Environment variable MEDIAWIKI_API_URL must be set in order to use the API'
|
12
|
-
end
|
13
|
-
|
14
|
-
@client = MediawikiApi::Client.new(ENV['MEDIAWIKI_API_URL'])
|
15
|
-
@client.log_in ENV['MEDIAWIKI_USER'], ENV['MEDIAWIKI_PASSWORD']
|
16
|
-
|
17
|
-
@client
|
18
|
-
end
|
19
|
-
|
20
|
-
def create(title, content)
|
21
|
-
client.create_page title, content
|
22
|
-
end
|
23
|
-
|
24
|
-
def protect(title, reason)
|
25
|
-
client.protect_page title, reason
|
26
|
-
end
|
27
|
-
end
|