mediawiki_selenium 0.3.2 → 0.4.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: 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