frameworks-capybara 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.8
1
+ 0.0.9
@@ -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"
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-14}
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 = [
@@ -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(false,ENV['PROXY_URL'])
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(ENV['BROWSER'], ENV['FIREFOX_PROFILE'])
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 register_remote_driver(proxy, remote_browser_proxy, platform, browser, version, remote_url, profile)
48
- Capybara.register_driver :remote do |app|
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
- #set proxy on client connection if required
53
- if(proxy)
54
- client.proxy = Selenium::WebDriver::Proxy.new(:http => proxy)
55
- end
54
+ if(opts[:browser] == :remote)
55
+ #create remote driver client instance
56
+ client = Selenium::WebDriver::Remote::Http::Default.new
56
57
 
57
- caps = Selenium::WebDriver::Remote::Capabilities.new({:platform => platform, :browser_name => browser, :version => version, :proxy => Selenium::WebDriver::Proxy.new(:http => remote_browser_proxy)})
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
- Capybara::Driver::Selenium.new(app,
60
- :browser => :remote,
61
- :http_client => client,
62
- :url => remote_url,
63
- :desired_capabilities => caps)
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
- :remote
66
-
78
+ :selenium
67
79
  end
68
80
 
69
- def register_celerity_driver (js_enabled, proxy)
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, {:javascript_enabled=>js_enabled,:proxy=>proxy})
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: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 8
10
- version: 0.0.8
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-14 00:00:00 +00:00
18
+ date: 2011-03-17 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency