frameworks-capybara 0.0.9 → 0.0.10
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.
- data/VERSION +1 -1
- data/frameworks-capybara.gemspec +2 -2
- data/lib/frameworks/capybara.rb +26 -27
- metadata +19 -19
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.
|
|
1
|
+
0.0.10
|
data/frameworks-capybara.gemspec
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{frameworks-capybara}
|
|
8
|
-
s.version = "0.0.
|
|
8
|
+
s.version = "0.0.10"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["mcrmfc"]
|
|
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
|
|
|
34
34
|
s.homepage = %q{http://github.com/mcrmfc/frameworks-capybara}
|
|
35
35
|
s.licenses = ["MIT"]
|
|
36
36
|
s.require_paths = ["lib"]
|
|
37
|
-
s.rubygems_version = %q{1.
|
|
37
|
+
s.rubygems_version = %q{1.4.2}
|
|
38
38
|
s.summary = %q{gem to aid setup of Capybara for testing bbc sites}
|
|
39
39
|
s.test_files = [
|
|
40
40
|
"test/helper.rb",
|
data/lib/frameworks/capybara.rb
CHANGED
|
@@ -2,22 +2,27 @@ require 'selenium-webdriver'
|
|
|
2
2
|
|
|
3
3
|
class CapybaraSetup
|
|
4
4
|
|
|
5
|
+
ERROR_MSG1 = 'Please ensure following environment variables are set ENVIRONMENT [int|test|stage|live], BROWSER[headless|ie|chrome|firefox] and PROXY_URL'
|
|
6
|
+
ERROR_MSG2 = 'Please ensure the following environment variables are set PLATFORM, REMOTE_URL, REMOTE_BROWSER (browser to use on remote machine), PROXY_URL (if required), REMOTE_BROWSER_PROXY (if required) and BROWSER_VERSION (if required)'
|
|
7
|
+
|
|
8
|
+
|
|
5
9
|
attr_accessor :driver
|
|
6
10
|
|
|
7
11
|
def initialize
|
|
12
|
+
|
|
13
|
+
capybara_opts = {:environment => ENV['ENVIRONMENT'], :proxy => ENV['PROXY_URL'], :remote_browser_proxy_url => ENV['REMOTE_BROWSER_PROXY'], :platform => ENV['PLATFORM'], :browser_name => ENV['REMOTE_BROWSER'], :version => ENV['BROWSER_VERSION'], :url => ENV['REMOTE_URL'], :profile => ENV['FIREFOX_PROFILE'], :browser => ENV['BROWSER'].intern, :javascript_enabled => ENV['CELERITY_JS_ENABLED']}
|
|
14
|
+
|
|
8
15
|
#validate environment variables set using cucumber.yml or passed via command line
|
|
9
|
-
validate_env_vars
|
|
16
|
+
validate_env_vars(capybara_opts)
|
|
10
17
|
|
|
11
18
|
#Disable rack server
|
|
12
19
|
Capybara.run_server = false
|
|
13
20
|
|
|
14
|
-
capybara_opts = {:proxy => ENV['PROXY_URL'], :platform => ENV['PLATFORM'], :browser_name => ENV['REMOTE_BROWSER'], :version => ENV['BROWSER_VERSION'], :url => ENV['REMOTE_URL'], :profile => ENV['FIREFOX_PROFILE'], :browser => ENV['BROWSER'].intern, :javascript_enabled => ENV['CELERITY_JS_ENABLED']}
|
|
15
|
-
|
|
16
21
|
#remove nil options
|
|
17
22
|
capybara_opts.delete_if {|k,v| v.nil?}
|
|
18
|
-
|
|
19
|
-
case
|
|
20
|
-
when
|
|
23
|
+
|
|
24
|
+
case capybara_opts[:browser]
|
|
25
|
+
when :headless then
|
|
21
26
|
@driver = register_celerity_driver(capybara_opts)
|
|
22
27
|
else
|
|
23
28
|
@driver = register_selenium_driver(capybara_opts)
|
|
@@ -26,32 +31,25 @@ class CapybaraSetup
|
|
|
26
31
|
|
|
27
32
|
private
|
|
28
33
|
|
|
29
|
-
def validate_env_vars
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
def validate_env_vars(opts)
|
|
35
|
+
[:environment, :browser].each do |item|
|
|
36
|
+
opts.has_key?(item) && opts[item]==nil ? abort(ERROR_MSG1) : ''
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
#delete environment, only add to opts for conveniance when validating
|
|
40
|
+
opts.delete(:environment)
|
|
32
41
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
abort 'Please ensure following environment variables are set ENVIRONMENT [int|test|stage|live], BROWSER[headless|ie|chrome|firefox] and PROXY_URL'
|
|
42
|
+
if(opts[:browser]=='remote')
|
|
43
|
+
[:platform, :remote_url, :browser_name].each do |item|
|
|
44
|
+
opts.has_key?(item) && opts[item]==nil ? abort(ERROR_MSG2) : ''
|
|
37
45
|
end
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
#if running remote test check for correct env variables
|
|
41
|
-
if(ENV['BROWSER']=='remote')
|
|
42
|
-
env_vars_remote = [ENV['PLATFORM'],ENV['REMOTE_URL'], ENV['REMOTE_BROWSER']]
|
|
43
|
-
env_vars_remote.each{ |var|
|
|
44
|
-
if(var==nil)
|
|
45
|
-
abort 'Please ensure the following environment variables are set PLATFORM, REMOTE_URL, REMOTE_BROWSER (browser to use on remote machine), PROXY_URL (if required), REMOTE_BROWSER_PROXY (if required) and BROWSER_VERSION (if required)'
|
|
46
|
-
end
|
|
47
|
-
}
|
|
48
46
|
end
|
|
49
47
|
end
|
|
50
48
|
|
|
51
49
|
def register_selenium_driver(opts)
|
|
52
50
|
Capybara.register_driver :selenium do |app|
|
|
53
51
|
|
|
54
|
-
if(opts[:browser] ==
|
|
52
|
+
if(opts[:browser] == 'remote')
|
|
55
53
|
#create remote driver client instance
|
|
56
54
|
client = Selenium::WebDriver::Remote::Http::Default.new
|
|
57
55
|
|
|
@@ -62,10 +60,11 @@ class CapybaraSetup
|
|
|
62
60
|
end
|
|
63
61
|
|
|
64
62
|
#set proxy for remote browser (only supported for ff at present)
|
|
65
|
-
if(
|
|
66
|
-
opts[:proxy] = Selenium::WebDriver::Proxy.new(:http =>
|
|
63
|
+
if(opts[:remote_browser_proxy_url])
|
|
64
|
+
opts[:proxy] = Selenium::WebDriver::Proxy.new(:http => opts[:remote_browser_proxy_url])
|
|
65
|
+
opts.delete :remote_browser_proxy_url
|
|
67
66
|
end
|
|
68
|
-
|
|
67
|
+
|
|
69
68
|
#note, we should probably not be passing all the options to the capabilities, fragile
|
|
70
69
|
caps = Selenium::WebDriver::Remote::Capabilities.new(opts)
|
|
71
70
|
#remove options that would have been added to caps
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: frameworks-capybara
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 11
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 0
|
|
9
|
-
-
|
|
10
|
-
version: 0.0.
|
|
9
|
+
- 10
|
|
10
|
+
version: 0.0.10
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- mcrmfc
|
|
@@ -20,7 +20,7 @@ default_executable:
|
|
|
20
20
|
dependencies:
|
|
21
21
|
- !ruby/object:Gem::Dependency
|
|
22
22
|
type: :development
|
|
23
|
-
|
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
|
24
24
|
none: false
|
|
25
25
|
requirements:
|
|
26
26
|
- - ">="
|
|
@@ -29,12 +29,12 @@ dependencies:
|
|
|
29
29
|
segments:
|
|
30
30
|
- 0
|
|
31
31
|
version: "0"
|
|
32
|
-
|
|
33
|
-
name: shoulda
|
|
32
|
+
requirement: *id001
|
|
34
33
|
prerelease: false
|
|
34
|
+
name: shoulda
|
|
35
35
|
- !ruby/object:Gem::Dependency
|
|
36
36
|
type: :development
|
|
37
|
-
|
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
|
38
38
|
none: false
|
|
39
39
|
requirements:
|
|
40
40
|
- - ~>
|
|
@@ -45,12 +45,12 @@ dependencies:
|
|
|
45
45
|
- 0
|
|
46
46
|
- 0
|
|
47
47
|
version: 1.0.0
|
|
48
|
-
|
|
49
|
-
name: bundler
|
|
48
|
+
requirement: *id002
|
|
50
49
|
prerelease: false
|
|
50
|
+
name: bundler
|
|
51
51
|
- !ruby/object:Gem::Dependency
|
|
52
52
|
type: :development
|
|
53
|
-
|
|
53
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
|
54
54
|
none: false
|
|
55
55
|
requirements:
|
|
56
56
|
- - ~>
|
|
@@ -61,12 +61,12 @@ dependencies:
|
|
|
61
61
|
- 5
|
|
62
62
|
- 2
|
|
63
63
|
version: 1.5.2
|
|
64
|
-
|
|
65
|
-
name: jeweler
|
|
64
|
+
requirement: *id003
|
|
66
65
|
prerelease: false
|
|
66
|
+
name: jeweler
|
|
67
67
|
- !ruby/object:Gem::Dependency
|
|
68
68
|
type: :development
|
|
69
|
-
|
|
69
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
|
70
70
|
none: false
|
|
71
71
|
requirements:
|
|
72
72
|
- - ">="
|
|
@@ -75,12 +75,12 @@ dependencies:
|
|
|
75
75
|
segments:
|
|
76
76
|
- 0
|
|
77
77
|
version: "0"
|
|
78
|
-
|
|
79
|
-
name: rcov
|
|
78
|
+
requirement: *id004
|
|
80
79
|
prerelease: false
|
|
80
|
+
name: rcov
|
|
81
81
|
- !ruby/object:Gem::Dependency
|
|
82
82
|
type: :runtime
|
|
83
|
-
|
|
83
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
|
84
84
|
none: false
|
|
85
85
|
requirements:
|
|
86
86
|
- - ">="
|
|
@@ -89,9 +89,9 @@ dependencies:
|
|
|
89
89
|
segments:
|
|
90
90
|
- 0
|
|
91
91
|
version: "0"
|
|
92
|
-
|
|
93
|
-
name: capybara
|
|
92
|
+
requirement: *id005
|
|
94
93
|
prerelease: false
|
|
94
|
+
name: capybara
|
|
95
95
|
description: gem ti aid setup of Capybara for testing bbc sites
|
|
96
96
|
email: mcrobbins@gmail.com
|
|
97
97
|
executables: []
|
|
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
145
145
|
requirements: []
|
|
146
146
|
|
|
147
147
|
rubyforge_project:
|
|
148
|
-
rubygems_version: 1.
|
|
148
|
+
rubygems_version: 1.4.2
|
|
149
149
|
signing_key:
|
|
150
150
|
specification_version: 3
|
|
151
151
|
summary: gem to aid setup of Capybara for testing bbc sites
|