mediawiki_selenium 0.2.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 +7 -0
- data/.gitreview +6 -0
- data/CREDITS +12 -0
- data/LICENSE +380 -0
- data/README.md +76 -0
- data/docs/UploadWizard.md +54 -0
- data/docs/jenkins-email.template +89 -0
- data/docs/jenkins.md +30 -0
- data/docs/job.md +34 -0
- data/docs/jobs.md +260 -0
- data/docs/template.md +301 -0
- data/docs/view.md +11 -0
- data/lib/mediawiki_selenium.rb +16 -0
- data/lib/mediawiki_selenium/env.rb +163 -0
- data/lib/mediawiki_selenium/hooks.rb +38 -0
- data/lib/mediawiki_selenium/sauce.rb +28 -0
- data/lib/mediawiki_selenium/version.rb +14 -0
- data/mediawiki_selenium.gemspec +28 -0
- metadata +183 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
=begin
|
2
|
+
This file is subject to the license terms in the LICENSE file found in the
|
3
|
+
mediawiki-selenium top-level directory and at
|
4
|
+
https://git.wikimedia.org/blob/mediawiki%2Fselenium/HEAD/LICENSE. No part of
|
5
|
+
mediawiki-selenium, including this file, may be copied, modified, propagated, or
|
6
|
+
distributed except according to the terms contained in the LICENSE file.
|
7
|
+
Copyright 2013 by the Mediawiki developers. See the CREDITS file in the
|
8
|
+
mediawiki-selenium top-level directory and at
|
9
|
+
https://git.wikimedia.org/blob/mediawiki%2Fselenium/HEAD/CREDITS.
|
10
|
+
=end
|
11
|
+
|
12
|
+
Before("@login") do
|
13
|
+
ENV["MEDIAWIKI_PASSWORD"] = ENV[ENV["MEDIAWIKI_PASSWORD_VARIABLE"]] if ENV["MEDIAWIKI_PASSWORD_VARIABLE"]
|
14
|
+
puts "MEDIAWIKI_USER environment variable is not defined! Please export a value for that variable before proceeding." unless ENV["MEDIAWIKI_USER"]
|
15
|
+
puts "MEDIAWIKI_PASSWORD environment variable is not defined! Please export a value for that variable before proceeding." unless ENV["MEDIAWIKI_PASSWORD"]
|
16
|
+
end
|
17
|
+
|
18
|
+
Before do |scenario|
|
19
|
+
@random_string = Random.new.rand.to_s
|
20
|
+
if ENV["REUSE_BROWSER"] == "true" and $browser # CirrusSearch and VisualEditor need this
|
21
|
+
@browser = $browser
|
22
|
+
else
|
23
|
+
unless @language or @user_agent # only UniversalLanguageSelector needs @language, only MobileFrontend needs @user_agent
|
24
|
+
@browser = browser(environment, test_name(scenario), "default")
|
25
|
+
$browser = @browser # CirrusSearch and VisualEditor need this
|
26
|
+
$session_id = @browser.driver.instance_variable_get(:@bridge).session_id
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
After do |scenario|
|
32
|
+
if environment == :saucelabs
|
33
|
+
sauce_api(%Q{{"passed": #{scenario.passed?}}})
|
34
|
+
sauce_api(%Q{{"public": true}})
|
35
|
+
sauce_api(%Q{{"build": #{ENV["BUILD_NUMBER"]}}}) if ENV["BUILD_NUMBER"]
|
36
|
+
end
|
37
|
+
@browser.close unless ENV["KEEP_BROWSER_OPEN"] == "true" or ENV["REUSE_BROWSER"] == "true" # CirrusSearch and VisualEditor need this
|
38
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
=begin
|
2
|
+
This file is subject to the license terms in the LICENSE file found in the
|
3
|
+
mediawiki-selenium top-level directory and at
|
4
|
+
https://git.wikimedia.org/blob/mediawiki%2Fselenium/HEAD/LICENSE. No part of
|
5
|
+
mediawiki-selenium, including this file, may be copied, modified, propagated, or
|
6
|
+
distributed except according to the terms contained in the LICENSE file.
|
7
|
+
Copyright 2013 by the Mediawiki developers. See the CREDITS file in the
|
8
|
+
mediawiki-selenium top-level directory and at
|
9
|
+
https://git.wikimedia.org/blob/mediawiki%2Fselenium/HEAD/CREDITS.
|
10
|
+
=end
|
11
|
+
|
12
|
+
require "cucumber/formatter/junit"
|
13
|
+
|
14
|
+
module Cucumber::Formatter
|
15
|
+
class Sauce < Junit
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def format_exception(exception)
|
20
|
+
if $session_id
|
21
|
+
sauce_job_page = "Sauce Labs job URL: http://saucelabs.com/jobs/#{$session_id}\n"
|
22
|
+
else
|
23
|
+
sauce_job_page = "Uh-oh. Could not find link to Sauce Labs job URL."
|
24
|
+
end
|
25
|
+
([sauce_job_page] + ["#{exception.message} (#{exception.class})"] + exception.backtrace).join("\n")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
=begin
|
2
|
+
This file is subject to the license terms in the LICENSE file found in the
|
3
|
+
mediawiki-selenium top-level directory and at
|
4
|
+
https://git.wikimedia.org/blob/mediawiki%2Fselenium/HEAD/LICENSE. No part of
|
5
|
+
mediawiki-selenium, including this file, may be copied, modified, propagated, or
|
6
|
+
distributed except according to the terms contained in the LICENSE file.
|
7
|
+
Copyright 2013 by the Mediawiki developers. See the CREDITS file in the
|
8
|
+
mediawiki-selenium top-level directory and at
|
9
|
+
https://git.wikimedia.org/blob/mediawiki%2Fselenium/HEAD/CREDITS.
|
10
|
+
=end
|
11
|
+
|
12
|
+
module MediawikiSelenium
|
13
|
+
VERSION = "0.2.0"
|
14
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'mediawiki_selenium/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "mediawiki_selenium"
|
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"]
|
11
|
+
spec.description = %q{Several MediaWiki extensions share code that makes it easy to run Selenium tests. This gem
|
12
|
+
makes it easy to update the shared code.}
|
13
|
+
spec.summary = %q{An easy way to run MediaWiki Selenium tests.}
|
14
|
+
spec.homepage = "https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/selenium"
|
15
|
+
spec.license = "GPL-2"
|
16
|
+
|
17
|
+
spec.files = `git ls-files`.split($/)
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_runtime_dependency "cucumber", "~> 1.3.10"
|
21
|
+
spec.add_runtime_dependency "headless", "~> 1.0.1"
|
22
|
+
spec.add_runtime_dependency "json", "~> 1.8.1"
|
23
|
+
spec.add_runtime_dependency "net-http-persistent", "~> 2.9.1"
|
24
|
+
spec.add_runtime_dependency "page-object", "~> 0.9.5"
|
25
|
+
spec.add_runtime_dependency "rest-client", "~> 1.6.7"
|
26
|
+
spec.add_runtime_dependency "rspec-expectations", "~> 2.14.4"
|
27
|
+
spec.add_runtime_dependency "syntax", "~> 1.2.0"
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,183 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mediawiki_selenium
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Chris McMahon
|
8
|
+
- Jeff Hall
|
9
|
+
- Nikolas Everett
|
10
|
+
- Tobias Gritschacher
|
11
|
+
- "Željko Filipin"
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
cert_chain: []
|
15
|
+
date: 2014-02-07 00:00:00.000000000 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: cucumber
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - "~>"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.3.10
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
28
|
+
- - "~>"
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.3.10
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: headless
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - "~>"
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 1.0.1
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - "~>"
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 1.0.1
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: json
|
47
|
+
requirement: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - "~>"
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: 1.8.1
|
52
|
+
type: :runtime
|
53
|
+
prerelease: false
|
54
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - "~>"
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: 1.8.1
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: net-http-persistent
|
61
|
+
requirement: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - "~>"
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 2.9.1
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 2.9.1
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: page-object
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 0.9.5
|
80
|
+
type: :runtime
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - "~>"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 0.9.5
|
87
|
+
- !ruby/object:Gem::Dependency
|
88
|
+
name: rest-client
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - "~>"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.6.7
|
94
|
+
type: :runtime
|
95
|
+
prerelease: false
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 1.6.7
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: rspec-expectations
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - "~>"
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: 2.14.4
|
108
|
+
type: :runtime
|
109
|
+
prerelease: false
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - "~>"
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: 2.14.4
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: syntax
|
117
|
+
requirement: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - "~>"
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: 1.2.0
|
122
|
+
type: :runtime
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - "~>"
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: 1.2.0
|
129
|
+
description: |-
|
130
|
+
Several MediaWiki extensions share code that makes it easy to run Selenium tests. This gem
|
131
|
+
makes it easy to update the shared code.
|
132
|
+
email:
|
133
|
+
- cmcmahon@wikimedia.org
|
134
|
+
- jhall@wikimedia.org
|
135
|
+
- neverett@wikimedia.org
|
136
|
+
- tobias.gritschacher@wikimedia.de
|
137
|
+
- zeljko.filipin@gmail.com
|
138
|
+
executables: []
|
139
|
+
extensions: []
|
140
|
+
extra_rdoc_files: []
|
141
|
+
files:
|
142
|
+
- ".gitreview"
|
143
|
+
- CREDITS
|
144
|
+
- LICENSE
|
145
|
+
- README.md
|
146
|
+
- docs/UploadWizard.md
|
147
|
+
- docs/jenkins-email.template
|
148
|
+
- docs/jenkins.md
|
149
|
+
- docs/job.md
|
150
|
+
- docs/jobs.md
|
151
|
+
- docs/template.md
|
152
|
+
- docs/view.md
|
153
|
+
- lib/mediawiki_selenium.rb
|
154
|
+
- lib/mediawiki_selenium/env.rb
|
155
|
+
- lib/mediawiki_selenium/hooks.rb
|
156
|
+
- lib/mediawiki_selenium/sauce.rb
|
157
|
+
- lib/mediawiki_selenium/version.rb
|
158
|
+
- mediawiki_selenium.gemspec
|
159
|
+
homepage: https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/selenium
|
160
|
+
licenses:
|
161
|
+
- GPL-2
|
162
|
+
metadata: {}
|
163
|
+
post_install_message:
|
164
|
+
rdoc_options: []
|
165
|
+
require_paths:
|
166
|
+
- lib
|
167
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - ">="
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
|
+
requirements: []
|
178
|
+
rubyforge_project:
|
179
|
+
rubygems_version: 2.2.2
|
180
|
+
signing_key:
|
181
|
+
specification_version: 4
|
182
|
+
summary: An easy way to run MediaWiki Selenium tests.
|
183
|
+
test_files: []
|