mediawiki_selenium 0.2.26 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f079ad42db103a267db048e2caf9bb03e910911d
4
- data.tar.gz: b0c542267736ce3e2956b902e8b43b90e74f7a23
3
+ metadata.gz: 39a9f6171eeccfe111262d9a406ca3d7a569ecfc
4
+ data.tar.gz: 3232fb53eea9d230aaeec39878ea44d987859f70
5
5
  SHA512:
6
- metadata.gz: d1760d96c06c03b8e49cc292b7fa0172da951a725610eba00fc0cd8432df1bb754f0235f013acca7495136e28c59bd4b27cf5ec9294d0a5d14a3c7bf38b2d333
7
- data.tar.gz: a8c620362ea465f5399ca3c077d53310c52e3dfc22999a3825cf2386e15119517e9453187e5ce92f36f282e39ca0476d7544ea2606765b2e25208315866e105e
6
+ metadata.gz: aa23a5af45e5b55bd38d789c56b81c3d9e7c020a28a4039eb0281d29794235b9d718593f698c31aa06f76d059ec4b69c81578f236f011b7cd7e24c871da2e84a
7
+ data.tar.gz: 08146c6e2d7494b117edcc1fdd9376736713843a1867ceb965b21b7886aefdb30d13c807a81c7d16ef1a3e246643f0624a76e995942d5ad3fb3c0b05f8e4753d
data/CREDITS CHANGED
@@ -6,6 +6,7 @@ For further details on licensing, see the LICENSE file.
6
6
 
7
7
  == Developers ==
8
8
  * Chris McMahon
9
+ * Dan Duvall
9
10
  * Jeff Hall
10
11
  * Nikolas Everett
11
12
  * Tobias Gritschacher
data/README.md CHANGED
@@ -11,7 +11,7 @@ versions of RubyGems and Firefox (the default browser in which the tests run).
11
11
  The easiest way to install Ruby on Linux/Unix/Mac is [RVM](https://rvm.io/) and
12
12
  on Windows [RubyInstaller](http://rubyinstaller.org/).
13
13
 
14
- cd /tests/browser
14
+ cd tests/browser
15
15
  gem update --system
16
16
  gem install bundler
17
17
  bundle install
@@ -89,7 +89,12 @@ commit back both files.
89
89
 
90
90
  ## Links
91
91
 
92
- mediawiki_selenium gem: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/selenium), [GitHub](https://github.com/wikimedia/mediawiki-selenium), [RubyGems](https://rubygems.org/gems/mediawiki_selenium), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-selenium)
92
+ ### Gems
93
+
94
+ 1. mediawiki_selenium: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/selenium), [GitHub](https://github.com/wikimedia/mediawiki-selenium), [RubyGems](https://rubygems.org/gems/mediawiki_selenium), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-selenium)
95
+ 1. mediawiki_api: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/ruby/api), [GitHub](https://github.com/wikimedia/mediawiki-ruby-api), [RubyGems](https://rubygems.org/gems/mediawiki_api), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-ruby-api)
96
+
97
+ ### Repositories
93
98
 
94
99
  If not stated differently, Selenium tests are in `/tests/browser` folder and Jenkins jobs are at [integration.wikimedia.org/ci/view/BrowserTests](https://integration.wikimedia.org/ci/view/BrowserTests/).
95
100
 
@@ -99,7 +104,8 @@ Repositories that use the gem:
99
104
  1. 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)
100
105
  1. ContentTranslation: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/ContentTranslation), [GitHub](https://github.com/wikimedia/mediawiki-extensions-ContentTranslation), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-ContentTranslation)
101
106
  1. 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)
102
- 1. MediaWiki: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/core), [GitHub](https://github.com/wikimedia/mediawiki-core), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-core)
107
+ 1. Math: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/Math), [GitHub](https://github.com/wikimedia/mediawiki-extensions-Math), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-Math)
108
+ 1. mediawiki/core: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/core), [GitHub](https://github.com/wikimedia/mediawiki-core), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-core)
103
109
  1. 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)
104
110
  1. MultimediaViewer: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/MultimediaViewer), [GitHub](https://github.com/wikimedia/mediawiki-extensions-MultimediaViewer), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-MultimediaViewer)
105
111
  1. PageTriage: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/PageTriage), [GitHub](https://github.com/wikimedia/mediawiki-extensions-PageTriage), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-PageTriage)
@@ -108,22 +114,29 @@ Repositories that use the gem:
108
114
  1. 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)
109
115
  1. UploadWizard: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/UploadWizard), [GitHub](https://github.com/wikimedia/mediawiki-extensions-UploadWizard), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-UploadWizard)
110
116
  1. 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/tests/browser` folder
111
- 1. WikidataBrowserTests: [GitHub](https://github.com/wmde/WikidataBrowserTests), [Code Climate](https://codeclimate.com/github/wmde/WikidataBrowserTests), [Jenkins](http://wdjenkins.wmflabs.org/ci/), `/` folder
117
+ 1. WikidataBrowserTests: [GitHub](https://github.com/wmde/WikidataBrowserTests), [Code Climate](https://codeclimate.com/github/wmde/WikidataBrowserTests), [Jenkins](http://wdjenkins.wmflabs.org/ci/)
112
118
  1. WikiLove: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/WikiLove), [GitHub](https://github.com/wikimedia/mediawiki-extensions-WikiLove), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-WikiLove)
113
119
  1. ZeroBanner: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/ZeroBanner), [GitHub](https://github.com/wikimedia/mediawiki-extensions-ZeroBanner), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-ZeroBanner)
114
120
 
115
- ## Contributing
121
+ ### Alumni
116
122
 
117
- 1. Fork it
118
- 2. Create your feature branch (`git checkout -b my-new-feature`)
119
- 3. Commit your changes (`git commit -am 'Add some feature'`)
120
- 4. Push to the branch (`git push origin my-new-feature`)
121
- 5. Create new Pull Request
123
+ 1. 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)
124
+ 1. ZeroRatedMobileAccess: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/ZeroRatedMobileAccess), [GitHub](https://github.com/wikimedia/mediawiki-extensions-ZeroRatedMobileAccess), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-ZeroRatedMobileAccess)
125
+ 1. 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)
122
126
 
123
- Also see https://www.mediawiki.org/wiki/QA/Browser_testing#How_to_contribute
127
+ ## Contributing
128
+
129
+ See https://www.mediawiki.org/wiki/Gerrit
124
130
 
125
131
  ## Release notes
126
132
 
133
+ ### 0.3.0 2014-08-08
134
+
135
+ * Support for MediaWiki extension dependencies via `@extension-<name>` tags
136
+ * World `api` helper method for direct access to a pre-authenticated API client
137
+ * Gem dependency fixes
138
+ * Updated readme
139
+
127
140
  ### 0.2.26 2014-07-18
128
141
 
129
142
  * Added runtime dependency on mediawiki_api
@@ -21,6 +21,7 @@ require "mediawiki_selenium/step_definitions/preferences_steps"
21
21
  require "mediawiki_selenium/step_definitions/resource_loader_steps"
22
22
  require "mediawiki_selenium/step_definitions/upload_file_steps"
23
23
 
24
+ require "mediawiki_selenium/support/modules/api_helper"
24
25
  require "mediawiki_selenium/support/modules/url_module"
25
26
 
26
27
  require "mediawiki_selenium/support/pages/api_page"
@@ -15,9 +15,11 @@ require "page-object"
15
15
  require "page-object/page_factory"
16
16
  require "rest_client"
17
17
  require "watir-webdriver"
18
- require "yaml"
18
+
19
+ require "mediawiki_selenium/support/modules/api_helper"
19
20
 
20
21
  World(PageObject::PageFactory)
22
+ World(MediawikiSelenium::ApiHelper)
21
23
 
22
24
  def browser(test_name, configuration = nil)
23
25
  if environment == :saucelabs
@@ -19,9 +19,45 @@ Before("@login") do
19
19
  puts "MEDIAWIKI_PASSWORD environment variable is not defined! Please export a value for that variable before proceeding." unless ENV["MEDIAWIKI_PASSWORD"]
20
20
  end
21
21
 
22
+ # Install a formatter that can be used to show feature-related warnings
23
+ AfterConfiguration do |config|
24
+ pretty_format, io = config.formats.find { |(format, io)| format == "pretty" }
25
+ config.formats << ["MediawikiSelenium::WarningsFormatter", io] if pretty_format
26
+ end
27
+
28
+ # Enforce a dependency check for all scenarios tagged with @extension- tags
29
+ Before do |scenario|
30
+ # Backgrounds themselves don't have tags, so get them from the feature
31
+ if scenario.is_a?(Cucumber::Ast::Background)
32
+ tag_source = scenario.feature
33
+ else
34
+ tag_source = scenario
35
+ end
36
+
37
+ tags = tag_source.source_tag_names
38
+ dependencies = tags.map { |tag| tag.match(/^@extension-(.+)$/) { |m| m[1] } }.compact
39
+
40
+ unless dependencies.empty?
41
+ extensions = api.meta(:siteinfo, siprop: "extensions").data["extensions"]
42
+ extensions = extensions.map { |ext| ext["type"] }
43
+ missing = dependencies - extensions
44
+
45
+ if missing.any?
46
+ scenario.skip_invoke!
47
+
48
+ if scenario.feature.respond_to?(:mw_warn)
49
+ warning = "Skipped feature due to missing wiki extensions: #{missing.join(", ")}"
50
+ scenario.feature.mw_warn(warning, "missing wiki extensions")
51
+ end
52
+ end
53
+ end
54
+ end
55
+
22
56
  Before do |scenario|
23
57
  @random_string = Random.new.rand.to_s
24
- if ENV["REUSE_BROWSER"] == "true" and $browser # CirrusSearch and VisualEditor need this
58
+
59
+ # CirrusSearch and VisualEditor need this
60
+ if ENV["REUSE_BROWSER"] == "true" && $browser
25
61
  @browser = $browser
26
62
  elsif scenario.source_tag_names.include? "@custom-browser"
27
63
  # browser will be started in Cucumber step
@@ -42,10 +78,15 @@ After do |scenario|
42
78
  @browser.screenshot.save path
43
79
  embed path, "image/png"
44
80
  end
81
+
45
82
  if environment == :saucelabs
46
83
  sauce_api(%Q{{"passed": #{scenario.passed?}}})
47
84
  sauce_api(%Q{{"public": true}})
48
85
  sauce_api(%Q{{"build": #{ENV["BUILD_NUMBER"]}}}) if ENV["BUILD_NUMBER"]
49
86
  end
50
- @browser.close unless ENV["KEEP_BROWSER_OPEN"] == "true" or ENV["REUSE_BROWSER"] == "true" # CirrusSearch and VisualEditor need this
87
+
88
+ if @browser
89
+ # CirrusSearch and VisualEditor need this
90
+ @browser.close unless ENV["KEEP_BROWSER_OPEN"] == "true" || ENV["REUSE_BROWSER"] == "true"
91
+ end
51
92
  end
@@ -0,0 +1,20 @@
1
+ require "mediawiki_api"
2
+
3
+ module MediawikiSelenium
4
+ # Provides more direct access to the API client from hooks and step
5
+ # definitions.
6
+ #
7
+ module ApiHelper
8
+ # A pre-authenticated API client.
9
+ #
10
+ # @return [MediawikiApi::Client]
11
+ #
12
+ def api
13
+ return @api if defined?(@api)
14
+
15
+ @api = MediawikiApi::Client.new(ENV["MEDIAWIKI_API_URL"])
16
+ @api.log_in(*ENV.values_at("MEDIAWIKI_USER", "MEDIAWIKI_PASSWORD")) unless @api.logged_in?
17
+ @api
18
+ end
19
+ end
20
+ end
@@ -4,18 +4,23 @@ class APIPage
4
4
  include PageObject
5
5
 
6
6
  def client
7
- abort "Environment variable MEDIAWIKI_API_URL must be set in order to create a target page for this test" unless ENV["MEDIAWIKI_API_URL"]
7
+ return @client if defined?(@client)
8
8
 
9
- client = MediawikiApi::Client.new ENV["MEDIAWIKI_API_URL"]
10
- client.log_in ENV["MEDIAWIKI_USER"], ENV["MEDIAWIKI_PASSWORD"]
11
- client
9
+ unless ENV["MEDIAWIKI_API_URL"]
10
+ raise "Environment variable MEDIAWIKI_API_URL must be set in order to use the API"
11
+ end
12
+
13
+ @client = MediawikiApi::Client.new(ENV["MEDIAWIKI_API_URL"])
14
+ @client.log_in ENV["MEDIAWIKI_USER"], ENV["MEDIAWIKI_PASSWORD"]
15
+
16
+ @client
12
17
  end
13
18
 
14
- def create title, content
19
+ def create(title, content)
15
20
  client.create_page title, content
16
21
  end
17
22
 
18
- def protect title, reason
23
+ def protect(title, reason)
19
24
  client.protect_page title, reason
20
25
  end
21
26
  end
@@ -10,5 +10,5 @@ https://git.wikimedia.org/blob/mediawiki%2Fselenium/HEAD/CREDITS.
10
10
  =end
11
11
 
12
12
  module MediawikiSelenium
13
- VERSION = "0.2.26"
13
+ VERSION = "0.3.0"
14
14
  end
@@ -0,0 +1,54 @@
1
+ require "cucumber/formatter/console"
2
+
3
+ module MediawikiSelenium
4
+ class WarningsFormatter
5
+ include Cucumber::Formatter::Console
6
+
7
+ def initialize(runtime, io, options)
8
+ @io = io
9
+ @warning_counts = Hash.new(0)
10
+ end
11
+
12
+ def after_feature(feature)
13
+ if feature.mw_warnings.any?
14
+ feature.mw_warnings.each do |type, messages|
15
+ messages.each { |msg| @io.puts format_string(msg, :pending) }
16
+ @warning_counts[type] += messages.length
17
+ end
18
+
19
+ @io.puts
20
+ end
21
+ end
22
+
23
+ def after_features(features)
24
+ if @warning_counts.any?
25
+ @warning_counts.each do |type, count|
26
+ message = "#{count} warning#{count > 1 ? "s" : ""}"
27
+ message += " due to #{type}" unless type == :default
28
+ @io.puts format_string(message, :pending)
29
+ end
30
+ end
31
+ end
32
+
33
+ def before_feature(feature)
34
+ feature.extend(FeatureWarnings)
35
+ end
36
+
37
+ private
38
+
39
+ module FeatureWarnings
40
+ def mw_warn(message, type = :default)
41
+ mw_warnings[type] ||= []
42
+ mw_warnings[type] << message
43
+ end
44
+
45
+ def mw_warnings
46
+ @__mediawiki_warnings ||= {}
47
+ end
48
+
49
+ def mw_warning_messages
50
+ mw_warnings.map(&:values).flatten
51
+ end
52
+ end
53
+ end
54
+ end
@@ -6,8 +6,8 @@ require "mediawiki_selenium/version"
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "mediawiki_selenium"
8
8
  spec.version = MediawikiSelenium::VERSION
9
- spec.authors = ["Chris McMahon", "Jeff Hall", "Nikolas Everett", "Tobias Gritschacher", "Željko Filipin"]
10
- spec.email = ["cmcmahon@wikimedia.org", "jhall@wikimedia.org", "neverett@wikimedia.org", "tobias.gritschacher@wikimedia.de", "zeljko.filipin@gmail.com"]
9
+ spec.authors = ["Chris McMahon", "Dan Duvall", "Jeff Hall", "Nikolas Everett", "Tobias Gritschacher", "Željko Filipin"]
10
+ spec.email = ["cmcmahon@wikimedia.org", "dduvall@wikimedia.org", "jhall@wikimedia.org", "neverett@wikimedia.org", "tobias.gritschacher@wikimedia.de", "zeljko.filipin@gmail.com"]
11
11
  spec.description = %q{Several MediaWiki extensions share code that makes it easy to run Selenium tests. This gem
12
12
  makes it easy to update the shared code.}
13
13
  spec.summary = %q{An easy way to run MediaWiki Selenium tests.}
@@ -20,7 +20,7 @@ makes it easy to update the shared code.}
20
20
  spec.add_runtime_dependency "cucumber", "~> 1.3", ">= 1.3.10"
21
21
  spec.add_runtime_dependency "headless", "~> 1.0", ">= 1.0.1"
22
22
  spec.add_runtime_dependency "json", "~> 1.8", ">= 1.8.1"
23
- spec.add_runtime_dependency "mediawiki_api", "~> 0.1.3"
23
+ spec.add_runtime_dependency "mediawiki_api", "~> 0.2", ">= 0.2.0"
24
24
  spec.add_runtime_dependency "page-object", "~> 1.0"
25
25
  spec.add_runtime_dependency "rest-client", "~> 1.6", ">= 1.6.7"
26
26
  spec.add_runtime_dependency "rspec-expectations", "~> 2.14", ">= 2.14.4"
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediawiki_selenium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.26
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris McMahon
8
+ - Dan Duvall
8
9
  - Jeff Hall
9
10
  - Nikolas Everett
10
11
  - Tobias Gritschacher
@@ -12,7 +13,7 @@ authors:
12
13
  autorequire:
13
14
  bindir: bin
14
15
  cert_chain: []
15
- date: 2014-07-18 00:00:00.000000000 Z
16
+ date: 2014-08-08 00:00:00.000000000 Z
16
17
  dependencies:
17
18
  - !ruby/object:Gem::Dependency
18
19
  name: cucumber
@@ -80,14 +81,20 @@ dependencies:
80
81
  requirements:
81
82
  - - "~>"
82
83
  - !ruby/object:Gem::Version
83
- version: 0.1.3
84
+ version: '0.2'
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: 0.2.0
84
88
  type: :runtime
85
89
  prerelease: false
86
90
  version_requirements: !ruby/object:Gem::Requirement
87
91
  requirements:
88
92
  - - "~>"
89
93
  - !ruby/object:Gem::Version
90
- version: 0.1.3
94
+ version: '0.2'
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: 0.2.0
91
98
  - !ruby/object:Gem::Dependency
92
99
  name: page-object
93
100
  requirement: !ruby/object:Gem::Requirement
@@ -167,6 +174,7 @@ description: |-
167
174
  makes it easy to update the shared code.
168
175
  email:
169
176
  - cmcmahon@wikimedia.org
177
+ - dduvall@wikimedia.org
170
178
  - jhall@wikimedia.org
171
179
  - neverett@wikimedia.org
172
180
  - tobias.gritschacher@wikimedia.de
@@ -189,6 +197,7 @@ files:
189
197
  - lib/mediawiki_selenium/step_definitions/upload_file_steps.rb
190
198
  - lib/mediawiki_selenium/support/env.rb
191
199
  - lib/mediawiki_selenium/support/hooks.rb
200
+ - lib/mediawiki_selenium/support/modules/api_helper.rb
192
201
  - lib/mediawiki_selenium/support/modules/url_module.rb
193
202
  - lib/mediawiki_selenium/support/pages/api_page.rb
194
203
  - lib/mediawiki_selenium/support/pages/login_page.rb
@@ -196,6 +205,7 @@ files:
196
205
  - lib/mediawiki_selenium/support/pages/reset_preferences_page.rb
197
206
  - lib/mediawiki_selenium/support/sauce.rb
198
207
  - lib/mediawiki_selenium/version.rb
208
+ - lib/mediawiki_selenium/warnings_formatter.rb
199
209
  - mediawiki_selenium.gemspec
200
210
  homepage: https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/selenium
201
211
  licenses:
@@ -217,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
227
  version: '0'
218
228
  requirements: []
219
229
  rubyforge_project:
220
- rubygems_version: 2.4.1
230
+ rubygems_version: 2.2.2
221
231
  signing_key:
222
232
  specification_version: 4
223
233
  summary: An easy way to run MediaWiki Selenium tests.