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 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