frameworks-capybara 0.0.8 → 0.0.9
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 +38 -32
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.9
|
data/frameworks-capybara.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
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.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["mcrmfc"]
|
12
|
-
s.date = %q{2011-03-
|
12
|
+
s.date = %q{2011-03-17}
|
13
13
|
s.description = %q{gem ti aid setup of Capybara for testing bbc sites}
|
14
14
|
s.email = %q{mcrobbins@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/frameworks/capybara.rb
CHANGED
@@ -11,13 +11,16 @@ class CapybaraSetup
|
|
11
11
|
#Disable rack server
|
12
12
|
Capybara.run_server = false
|
13
13
|
|
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
|
+
#remove nil options
|
17
|
+
capybara_opts.delete_if {|k,v| v.nil?}
|
18
|
+
|
14
19
|
case ENV['BROWSER']
|
15
20
|
when 'headless' then
|
16
|
-
@driver = register_celerity_driver(
|
17
|
-
when 'remote' then
|
18
|
-
@driver = register_remote_driver(ENV['PROXY_URL'], ENV['REMOTE_BROWSER_PROXY'], ENV['PLATFORM'],ENV['REMOTE_BROWSER'], ENV['BROWSER_VERSION'], ENV['REMOTE_URL'], ENV['FIREFOX_PROFILE'])
|
21
|
+
@driver = register_celerity_driver(capybara_opts)
|
19
22
|
else
|
20
|
-
@driver = register_selenium_driver(
|
23
|
+
@driver = register_selenium_driver(capybara_opts)
|
21
24
|
end
|
22
25
|
end
|
23
26
|
|
@@ -27,6 +30,7 @@ class CapybaraSetup
|
|
27
30
|
#v basic check for correct env variables
|
28
31
|
env_vars = [ENV['ENVIRONMENT'],ENV['BROWSER']]
|
29
32
|
|
33
|
+
|
30
34
|
env_vars.each { |var|
|
31
35
|
if(var==nil)
|
32
36
|
abort 'Please ensure following environment variables are set ENVIRONMENT [int|test|stage|live], BROWSER[headless|ie|chrome|firefox] and PROXY_URL'
|
@@ -44,45 +48,47 @@ class CapybaraSetup
|
|
44
48
|
end
|
45
49
|
end
|
46
50
|
|
47
|
-
def
|
48
|
-
Capybara.register_driver :
|
49
|
-
#create remote driver client instance
|
50
|
-
client = Selenium::WebDriver::Remote::Http::Default.new
|
51
|
+
def register_selenium_driver(opts)
|
52
|
+
Capybara.register_driver :selenium do |app|
|
51
53
|
|
52
|
-
|
53
|
-
|
54
|
-
client
|
55
|
-
end
|
54
|
+
if(opts[:browser] == :remote)
|
55
|
+
#create remote driver client instance
|
56
|
+
client = Selenium::WebDriver::Remote::Http::Default.new
|
56
57
|
|
57
|
-
|
58
|
+
#set proxy on client connection if required
|
59
|
+
if(opts[:proxy])
|
60
|
+
client.proxy = Selenium::WebDriver::Proxy.new(:http => opts[:proxy])
|
61
|
+
opts.delete :proxy
|
62
|
+
end
|
58
63
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
+
#set proxy for remote browser (only supported for ff at present)
|
65
|
+
if(ENV['REMOTE_BROWSER_PROXY'])
|
66
|
+
opts[:proxy] = Selenium::WebDriver::Proxy.new(:http => ENV['REMOTE_BROWSER_PROXY'])
|
67
|
+
end
|
68
|
+
|
69
|
+
#note, we should probably not be passing all the options to the capabilities, fragile
|
70
|
+
caps = Selenium::WebDriver::Remote::Capabilities.new(opts)
|
71
|
+
#remove options that would have been added to caps
|
72
|
+
opts.delete_if {|k,v| [:browser_name, :platform, :profile, :version].include? k}
|
73
|
+
opts[:desired_capabilities] = caps
|
74
|
+
opts[:http_client] = client
|
75
|
+
end
|
76
|
+
Capybara::Driver::Selenium.new(app,opts)
|
64
77
|
end
|
65
|
-
:
|
66
|
-
|
78
|
+
:selenium
|
67
79
|
end
|
68
80
|
|
69
|
-
def register_celerity_driver (
|
81
|
+
def register_celerity_driver (opts)
|
70
82
|
Capybara.register_driver :celerity do |app|
|
83
|
+
#delete browser from options as value with be 'headless'
|
84
|
+
opts.delete :browser
|
71
85
|
#remove http:// from proxy URL for Celerity
|
72
|
-
if(proxy)
|
73
|
-
proxy = proxy.gsub(/http:\/\//,'')
|
86
|
+
if(opts[:proxy])
|
87
|
+
opts[:proxy] = opts[:proxy].gsub(/http:\/\//,'')
|
74
88
|
end
|
75
|
-
Capybara::Driver::Celerity.new(app,
|
89
|
+
Capybara::Driver::Celerity.new(app,opts)
|
76
90
|
end
|
77
91
|
:celerity
|
78
92
|
end
|
79
|
-
|
80
|
-
def register_selenium_driver (browser, ff_profile)
|
81
|
-
Capybara.register_driver :selenium do |app|
|
82
|
-
#need to convert string to label to set browser for Selenium - hence .intern
|
83
|
-
Capybara::Driver::Selenium.new(app,:browser => browser.intern, :profile => ff_profile)
|
84
|
-
end
|
85
|
-
:selenium
|
86
|
-
end
|
87
93
|
end
|
88
94
|
|
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: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 9
|
10
|
+
version: 0.0.9
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- mcrmfc
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-03-
|
18
|
+
date: 2011-03-17 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|