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 CHANGED
@@ -1 +1 @@
1
- 0.0.9
1
+ 0.0.10
@@ -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.9"
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.6.0}
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",
@@ -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 ENV['BROWSER']
20
- when 'headless' then
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
- #v basic check for correct env variables
31
- env_vars = [ENV['ENVIRONMENT'],ENV['BROWSER']]
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
- env_vars.each { |var|
35
- if(var==nil)
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] == :remote)
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(ENV['REMOTE_BROWSER_PROXY'])
66
- opts[:proxy] = Selenium::WebDriver::Proxy.new(:http => ENV['REMOTE_BROWSER_PROXY'])
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: 13
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 9
10
- version: 0.0.9
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
- requirement: &id001 !ruby/object:Gem::Requirement
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
- version_requirements: *id001
33
- name: shoulda
32
+ requirement: *id001
34
33
  prerelease: false
34
+ name: shoulda
35
35
  - !ruby/object:Gem::Dependency
36
36
  type: :development
37
- requirement: &id002 !ruby/object:Gem::Requirement
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
- version_requirements: *id002
49
- name: bundler
48
+ requirement: *id002
50
49
  prerelease: false
50
+ name: bundler
51
51
  - !ruby/object:Gem::Dependency
52
52
  type: :development
53
- requirement: &id003 !ruby/object:Gem::Requirement
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
- version_requirements: *id003
65
- name: jeweler
64
+ requirement: *id003
66
65
  prerelease: false
66
+ name: jeweler
67
67
  - !ruby/object:Gem::Dependency
68
68
  type: :development
69
- requirement: &id004 !ruby/object:Gem::Requirement
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
- version_requirements: *id004
79
- name: rcov
78
+ requirement: *id004
80
79
  prerelease: false
80
+ name: rcov
81
81
  - !ruby/object:Gem::Dependency
82
82
  type: :runtime
83
- requirement: &id005 !ruby/object:Gem::Requirement
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
- version_requirements: *id005
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.6.0
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