mediawiki_selenium 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3de73bd1e6127411873532be35cc7a4a6426280c
4
- data.tar.gz: b29f66ea16671e81230fac23c4be3420b687e695
3
+ metadata.gz: b4c692019a252a5d2657b99d2d72d06d542dfe8f
4
+ data.tar.gz: 628e9a09986b6e4e7e54e39199ec1271492ffdcd
5
5
  SHA512:
6
- metadata.gz: 0386e7f467e71b7fcbc7be48312f72f04b87dde87ac4cf01898c5af865ca09bbbcce3ccd2258e6d480b9cf6daedf93347b74085feb9645a68d00db370802d2ea
7
- data.tar.gz: abadcecf42b91744ee25e78137b96c3629b627f139e78f03575c5389991a46f8af342e1feca5dc93c5b24979bc69a4445a5642041d8229432b273e19efcd1b34
6
+ metadata.gz: 096ba74ed2efcc7ed0616b0242aa72f93fa39021ceeb21ee0c6628245e349433bb21567ff6fc477058cbd6f548785ae0edfb38e4b8125649a610e7f6c1217a3e
7
+ data.tar.gz: 5f29f41550abac61ca15c3c52804ee7ed3266b8cec19e0de11012f94ce483c50e0efa8b96c319dfb2d00a74e6f5dbf9841958e5cee05be16b910088ab4a9feb9
data/.gitignore CHANGED
@@ -1,4 +1,6 @@
1
1
  .bundle
2
+ /.yardoc/
3
+ /doc/
2
4
  .gem
3
5
  *.gem
4
6
  Gemfile.lock
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --title "MediaWiki Selenium"
data/README.md CHANGED
@@ -112,12 +112,15 @@ Repositories that use the gem:
112
112
  1. ArticleFeedbackv5: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/ArticleFeedbackv5), [GitHub](https://github.com/wikimedia/mediawiki-extensions-ArticleFeedbackv5), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-ArticleFeedbackv5)
113
113
  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)
114
114
  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)
115
+ 1. Echo: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/Echo), [GitHub](https://github.com/wikimedia/mediawiki-extensions-Echo), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-Echo)
115
116
  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)
117
+ 1. GettingStarted: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/GettingStarted), [GitHub](https://github.com/wikimedia/mediawiki-extensions-GettingStarted), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-GettingStarted)
116
118
  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)
117
119
  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)
118
120
  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)
119
121
  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)
120
122
  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)
123
+ 1. PdfHandler: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/PdfHandler), [GitHub](https://github.com/wikimedia/mediawiki-extensions-PdfHandler), [Code Climate](https://codeclimate.com/github/wikimedia/mediawiki-extensions-PdfHandler)
121
124
  1. 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)
122
125
  1. 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)
123
126
  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)
@@ -139,6 +142,11 @@ See https://www.mediawiki.org/wiki/Gerrit
139
142
 
140
143
  ## Release notes
141
144
 
145
+ ### 0.4.0 2014-09-23
146
+
147
+ * Stricter pending behavior for falsely passing steps
148
+ * Fixed interoperability of custom browser settings and Sauce sessions
149
+
142
150
  ### 0.3.2 2014-08-26
143
151
 
144
152
  * Bumped runtime dependency for mediawiki_api
@@ -17,9 +17,13 @@ require "rest_client"
17
17
  require "watir-webdriver"
18
18
 
19
19
  require "mediawiki_selenium/support/modules/api_helper"
20
+ require "mediawiki_selenium/support/modules/sauce_helper"
21
+ require "mediawiki_selenium/support/modules/strict_pending"
20
22
 
21
23
  World(PageObject::PageFactory)
22
24
  World(MediawikiSelenium::ApiHelper)
25
+ World(MediawikiSelenium::SauceHelper)
26
+ World(MediawikiSelenium::StrictPending)
23
27
 
24
28
  def browser(test_name, configuration = nil)
25
29
  if environment == :saucelabs
@@ -76,10 +80,10 @@ def local_browser(configuration)
76
80
  set_cookie(browser)
77
81
  browser
78
82
  end
79
- def sauce_api(json)
83
+ def sauce_api(json, session_id)
80
84
  RestClient::Request.execute(
81
85
  :method => :put,
82
- :url => "https://saucelabs.com/rest/v1/#{ENV['SAUCE_ONDEMAND_USERNAME']}/jobs/#{$session_id}",
86
+ :url => "https://saucelabs.com/rest/v1/#{ENV['SAUCE_ONDEMAND_USERNAME']}/jobs/#{session_id}",
83
87
  :user => ENV["SAUCE_ONDEMAND_USERNAME"],
84
88
  :password => ENV["SAUCE_ONDEMAND_ACCESS_KEY"],
85
89
  :headers => {:content_type => "application/json"},
@@ -64,8 +64,9 @@ Before do |scenario|
64
64
  else
65
65
  @browser = browser(test_name(scenario))
66
66
  $browser = @browser # CirrusSearch and VisualEditor need this
67
- $session_id = @browser.driver.instance_variable_get(:@bridge).session_id
68
67
  end
68
+
69
+ $session_id = sauce_session_id
69
70
  end
70
71
 
71
72
  After do |scenario|
@@ -80,9 +81,10 @@ After do |scenario|
80
81
  end
81
82
 
82
83
  if environment == :saucelabs
83
- sauce_api(%Q{{"passed": #{scenario.passed?}}})
84
- sauce_api(%Q{{"public": true}})
85
- sauce_api(%Q{{"build": #{ENV["BUILD_NUMBER"]}}}) if ENV["BUILD_NUMBER"]
84
+ sid = $session_id || sauce_session_id
85
+ sauce_api(%Q{{"passed": #{scenario.passed?}}}, sid)
86
+ sauce_api(%Q{{"public": true}}, sid)
87
+ sauce_api(%Q{{"build": #{ENV["BUILD_NUMBER"]}}}, sid) if ENV["BUILD_NUMBER"]
86
88
  end
87
89
 
88
90
  if @browser
@@ -0,0 +1,13 @@
1
+ module MediawikiSelenium
2
+ module SauceHelper
3
+ # The current Sauce session ID.
4
+ #
5
+ # @return [String]
6
+ #
7
+ def sauce_session_id
8
+ @session_id ||= @browser.driver.instance_variable_get(:@bridge).session_id if @browser
9
+ rescue StandardError
10
+ nil
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,23 @@
1
+ module MediawikiSelenium
2
+ # Implements a stricter version of `pending` that fails when a given block
3
+ # of expectations passes, alerting the user that the step definition should
4
+ # no longer be pending.
5
+ #
6
+ module StrictPending
7
+ class Pending < StandardError
8
+ end
9
+
10
+ # Delegates to Cucumber's pending but re-raises any `Cucumber::Pending`
11
+ # exception as a strict failure.
12
+ #
13
+ def pending(*args)
14
+ super
15
+ rescue Cucumber::Pending => e
16
+ if block_given?
17
+ raise Pending, e.message
18
+ else
19
+ raise e
20
+ end
21
+ end
22
+ end
23
+ 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.3.2"
13
+ VERSION = "0.4.0"
14
14
  end
@@ -25,4 +25,7 @@ makes it easy to update the shared code.}
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"
27
27
  spec.add_runtime_dependency "syntax", "~> 1.2", ">= 1.2.0"
28
+
29
+ spec.add_development_dependency "redcarpet"
30
+ spec.add_development_dependency "yard"
28
31
  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: 0.3.2
4
+ version: 0.4.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: 2014-08-27 00:00:00.000000000 Z
16
+ date: 2014-09-23 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: cucumber
@@ -169,6 +169,34 @@ dependencies:
169
169
  - - ">="
170
170
  - !ruby/object:Gem::Version
171
171
  version: 1.2.0
172
+ - !ruby/object:Gem::Dependency
173
+ name: redcarpet
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ type: :development
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ - !ruby/object:Gem::Dependency
187
+ name: yard
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ type: :development
194
+ prerelease: false
195
+ version_requirements: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
172
200
  description: |-
173
201
  Several MediaWiki extensions share code that makes it easy to run Selenium tests. This gem
174
202
  makes it easy to update the shared code.
@@ -185,6 +213,7 @@ extra_rdoc_files: []
185
213
  files:
186
214
  - ".gitignore"
187
215
  - ".gitreview"
216
+ - ".yardopts"
188
217
  - CREDITS
189
218
  - Gemfile
190
219
  - LICENSE
@@ -198,6 +227,8 @@ files:
198
227
  - lib/mediawiki_selenium/support/env.rb
199
228
  - lib/mediawiki_selenium/support/hooks.rb
200
229
  - lib/mediawiki_selenium/support/modules/api_helper.rb
230
+ - lib/mediawiki_selenium/support/modules/sauce_helper.rb
231
+ - lib/mediawiki_selenium/support/modules/strict_pending.rb
201
232
  - lib/mediawiki_selenium/support/modules/url_module.rb
202
233
  - lib/mediawiki_selenium/support/pages/api_page.rb
203
234
  - lib/mediawiki_selenium/support/pages/login_page.rb