frameworks-capybara 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/frameworks-capybara.gemspec +2 -2
- data/lib/frameworks/capybara.rb +4 -2
- data/spec/frameworks_capybara_spec.rb +43 -0
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
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.1.
|
8
|
+
s.version = "0.1.2"
|
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-
|
12
|
+
s.date = %q{2011-11-07}
|
13
13
|
s.description = %q{gem to 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
@@ -12,7 +12,7 @@ class CapybaraSetup
|
|
12
12
|
attr_reader :driver
|
13
13
|
|
14
14
|
def initialize
|
15
|
-
capybara_opts = {:environment => ENV['ENVIRONMENT'], :proxy => ENV['PROXY_URL'], :profile => ENV['FIREFOX_PROFILE'], :browser => ENV['BROWSER'], :javascript_enabled => ENV['CELERITY_JS_ENABLED'], :proxy_on => ENV['PROXY_ON'],:url => ENV['REMOTE_URL']}
|
15
|
+
capybara_opts = {:environment => ENV['ENVIRONMENT'], :proxy => ENV['PROXY_URL'], :profile => ENV['FIREFOX_PROFILE'], :browser => ENV['BROWSER'], :javascript_enabled => ENV['CELERITY_JS_ENABLED'], :proxy_on => ENV['PROXY_ON'],:url => ENV['REMOTE_URL'], :chrome_switches => ENV['CHROME_SWITCHES']}
|
16
16
|
selenium_remote_opts = {:platform => ENV['PLATFORM'], :browser_name => ENV['REMOTE_BROWSER'], :version => ENV['REMOTE_BROWSER_VERSION'], :url => ENV['REMOTE_URL']}
|
17
17
|
custom_opts = {:job_name => ENV['SAUCE_JOB_NAME'], :max_duration => ENV['SAUCE_MAX_DURATION']}
|
18
18
|
|
@@ -63,12 +63,14 @@ class CapybaraSetup
|
|
63
63
|
Capybara.register_driver :selenium do |app|
|
64
64
|
|
65
65
|
opts[:profile] = create_profile(opts[:profile]) if(opts[:profile])
|
66
|
+
opts[:switches] = [opts.delete(:chrome_switches)] if(opts[:chrome_switches])
|
66
67
|
|
67
68
|
if opts[:browser] == :remote
|
68
69
|
client = Selenium::WebDriver::Remote::Http::Default.new
|
69
70
|
client.proxy = set_client_proxy(opts)
|
70
71
|
|
71
|
-
remote_opts[:firefox_profile] = opts.delete :profile
|
72
|
+
remote_opts[:firefox_profile] = opts.delete :profile if opts[:profile]
|
73
|
+
remote_opts['chrome.switches'] = opts.delete :switches if opts[:switches]
|
72
74
|
caps = Selenium::WebDriver::Remote::Capabilities.new(remote_opts)
|
73
75
|
|
74
76
|
add_custom_caps(caps, custom_opts) if remote_opts[:url].include? 'saucelabs' #set sauce specific parameters - will this scupper other on sauce remote jobs?
|
@@ -26,6 +26,7 @@ shared_examples_for "Selenium Driver Options Array" do
|
|
26
26
|
Capybara.current_session.driver.options[:browser_name].should == nil
|
27
27
|
Capybara.current_session.driver.options[:version].should == nil
|
28
28
|
Capybara.current_session.driver.options[:job_name].should == nil
|
29
|
+
Capybara.current_session.driver.options[:chrome_switches].should == nil
|
29
30
|
Capybara.current_session.driver.options[:max_duration].should == nil
|
30
31
|
Capybara.current_session.driver.options[:profile].should_not be_a_kind_of String
|
31
32
|
Capybara.current_session.driver.options[:browser].should_not be_a_kind_of String
|
@@ -133,6 +134,22 @@ describe CapybaraSetup do
|
|
133
134
|
it_behaves_like "Selenium Driver Options Array"
|
134
135
|
end
|
135
136
|
|
137
|
+
context "with Selenium driver and custom chrome options" do
|
138
|
+
before do
|
139
|
+
ENV['BROWSER'] = 'chrome'
|
140
|
+
ENV['CHROME_SWITCHES'] = '--user-agent=Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10'
|
141
|
+
end
|
142
|
+
|
143
|
+
it "should be initialized correctly" do
|
144
|
+
Capybara.delete_session
|
145
|
+
CapybaraSetup.new.driver.should == :selenium
|
146
|
+
Capybara.current_session.driver.should be_a_kind_of Capybara::Driver::Selenium
|
147
|
+
Capybara.current_session.driver.options[:browser].should == :chrome
|
148
|
+
Capybara.current_session.driver.options[:switches].should == ['--user-agent=Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10']
|
149
|
+
end
|
150
|
+
it_behaves_like "Selenium Driver Options Array"
|
151
|
+
end
|
152
|
+
|
136
153
|
|
137
154
|
context "with Remote Selenium driver" do
|
138
155
|
before do
|
@@ -238,6 +255,30 @@ describe CapybaraSetup do
|
|
238
255
|
it_behaves_like "Selenium Driver Options Array"
|
239
256
|
end
|
240
257
|
|
258
|
+
context "with Remote Selenium driver and specified Chrome Switches" do
|
259
|
+
before do
|
260
|
+
ENV['BROWSER'] = 'remote'
|
261
|
+
ENV['REMOTE_BROWSER'] = 'chrome'
|
262
|
+
ENV['REMOTE_URL'] = 'http://saucelabs.com'
|
263
|
+
ENV['CHROME_SWITCHES'] = '--user-agent=Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10'
|
264
|
+
end
|
265
|
+
|
266
|
+
it "should be initialized correctly" do
|
267
|
+
Capybara.delete_session
|
268
|
+
CapybaraSetup.new.driver.should == :selenium
|
269
|
+
Capybara.current_session.driver.should be_a_kind_of Capybara::Driver::Selenium
|
270
|
+
Capybara.current_session.driver.options[:browser].should == :remote
|
271
|
+
Capybara.current_session.driver.options[:switches].should == nil
|
272
|
+
Capybara.current_session.driver.options[:url].should == 'http://saucelabs.com'
|
273
|
+
Capybara.current_session.driver.options[:http_client].should be_a_kind_of Selenium::WebDriver::Remote::Http::Default
|
274
|
+
Capybara.current_session.driver.options[:http_client].instance_variable_get(:@proxy).should == nil
|
275
|
+
Capybara.current_session.driver.options[:desired_capabilities].should be_a_kind_of Selenium::WebDriver::Remote::Capabilities
|
276
|
+
Capybara.current_session.driver.options[:desired_capabilities].instance_variable_get(:@capabilities)[:browser_name].should == :chrome
|
277
|
+
Capybara.current_session.driver.options[:desired_capabilities].instance_variable_get(:@capabilities)['chrome.switches'].should == ['--user-agent=Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10']
|
278
|
+
end
|
279
|
+
it_behaves_like "Selenium Driver Options Array"
|
280
|
+
end
|
281
|
+
|
241
282
|
context "with Remote Selenium driver and specified Custom Capabilites (e.g. for Sauce Labs)" do
|
242
283
|
before do
|
243
284
|
ENV['BROWSER'] = 'remote'
|
@@ -266,6 +307,8 @@ describe CapybaraSetup do
|
|
266
307
|
end
|
267
308
|
it_behaves_like "Selenium Driver Options Array"
|
268
309
|
end
|
310
|
+
|
311
|
+
|
269
312
|
end
|
270
313
|
|
271
314
|
describe "should allow Mechanize driver to be created" do
|
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: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
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-
|
18
|
+
date: 2011-11-07 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|