frameworks-capybara 0.0.9 → 0.0.10

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