frameworks-capybara 0.0.32 → 0.0.33

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/README.rdoc CHANGED
@@ -15,9 +15,7 @@ Below are the current drivers that can be registered:
15
15
 
16
16
  * Celerity: This can be used to drive 'headless' tests. Celerity is a ruby wrapper for HTMLUnit and as such provides support for Javascript, though this is commonly quite fragile.
17
17
 
18
- To be added in the near future:
19
-
20
- * Mechanize-Caybara: There is a Caybara driver for mechanize which has recently surfaced on Github. Many people still enjoy using Mechanize as despite its lack of support for Javascrit, it offers a much faster 'headless' option over Celerity. Once we have tested this driver and checked its robustness we will add an option to use it via this gem.
18
+ * Mechanize-Caybara: This can be used, by setting BROWSER=mechanize
21
19
 
22
20
  How to use this gem in your project:
23
21
 
@@ -37,6 +35,7 @@ The following environment variables can be set to configure your tests:
37
35
  REMOTE_URL - URL of remote Selenium-Webdriver server e.g. http://yourremotehost:4444/wd/hub
38
36
  FIREFOX_PROFILE - specify a firefox profile to use when running in-browser tests (local or remote)
39
37
  CELERITY_JS_ENABLED (string - 'true', 'false') - determines whether Celerity (HTMLUnit) attempts to execute javascript
38
+ XVFB - (string - 'true', 'false') - determines whether XVFB is used to run browser (i.e. headless Firefox on *nix platform)
40
39
 
41
40
  Here is a sample cucumber.yml:
42
41
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.32
1
+ 0.0.33
@@ -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.32"
8
+ s.version = "0.0.33"
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-07-21}
12
+ s.date = %q{2011-08-16}
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 = [
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  "lib/monkey-patches/capybara-mechanize-patches.rb",
32
32
  "lib/monkey-patches/capybara-patches.rb",
33
33
  "lib/monkey-patches/cucumber-patches.rb",
34
+ "lib/monkey-patches/mechanize-patches.rb",
34
35
  "lib/monkey-patches/send-keys.rb",
35
36
  "lib/monkey-patches/webdriver-patches.rb",
36
37
  "test/helper.rb",
@@ -2,6 +2,7 @@ require 'capybara/cucumber'
2
2
  require 'monkey-patches/webdriver-patches'
3
3
  require 'monkey-patches/capybara-patches'
4
4
  require 'monkey-patches/capybara-mechanize-patches'
5
+ require 'monkey-patches/mechanize-patches'
5
6
  require 'monkey-patches/send-keys'
6
7
  require 'selenium-webdriver'
7
8
  require 'capybara/mechanize/cucumber'
@@ -16,7 +17,7 @@ class CapybaraSetup
16
17
 
17
18
  def initialize
18
19
 
19
- capybara_opts = {:environment => ENV['ENVIRONMENT'], :proxy => ENV['PROXY_URL'], :remote_browser_proxy_url => ENV['REMOTE_BROWSER_PROXY_URL'], :platform => ENV['PLATFORM'], :browser_name => ENV['REMOTE_BROWSER'], :version => ENV['REMOTE_BROWSER_VERSION'], :url => ENV['REMOTE_URL'], :profile => ENV['FIREFOX_PROFILE'], :browser => ENV['BROWSER'], :javascript_enabled => ENV['CELERITY_JS_ENABLED'], :job_name => ENV['SAUCE_JOB_NAME'], :max_duration => ENV['SAUCE_MAX_DURATION']}
20
+ capybara_opts = {:environment => ENV['ENVIRONMENT'], :proxy => ENV['PROXY_URL'], :remote_browser_proxy_url => ENV['REMOTE_BROWSER_PROXY_URL'], :platform => ENV['PLATFORM'], :browser_name => ENV['REMOTE_BROWSER'], :version => ENV['REMOTE_BROWSER_VERSION'], :url => ENV['REMOTE_URL'], :profile => ENV['FIREFOX_PROFILE'], :browser => ENV['BROWSER'], :javascript_enabled => ENV['CELERITY_JS_ENABLED'], :job_name => ENV['SAUCE_JOB_NAME'], :max_duration => ENV['SAUCE_MAX_DURATION'], :proxy_on => ENV['PROXY_ON']}
20
21
 
21
22
  validate_env_vars(capybara_opts) #validate environment variables set using cucumber.yml or passed via command line
22
23
 
@@ -82,11 +83,11 @@ class CapybaraSetup
82
83
  if opts[:browser] == :remote
83
84
  client = Selenium::WebDriver::Remote::Http::Default.new
84
85
 
85
- #set proxy on client connection if required
86
- if opts[:proxy]
86
+ #set proxy on client connection if required, note you may use ENV['PROXY_URL'] for setting in browser (ff profile) but not for client conection, hence allow for PROXY_ON=false
87
+ if opts[:proxy] && opts[:proxy_on] != 'false'
87
88
  client.proxy = Selenium::WebDriver::Proxy.new(:http => opts[:proxy])
88
- opts.delete :proxy
89
89
  end
90
+ opts.delete_if {|k,v| [:proxy, :proxy_on].include? k}
90
91
 
91
92
  #TODO: temp workaround - needs refactoring
92
93
  cap_opts = opts.clone
@@ -100,7 +101,7 @@ class CapybaraSetup
100
101
  opts[:desired_capabilities] = caps
101
102
  opts[:http_client] = client
102
103
  else
103
- opts.delete_if {|k,v| [:proxy].include? k} #may want to pass env variables that are not relevant for in browser 'non-remote' tests e.g. proxy, so delete these before setting up driver
104
+ opts.delete_if {|k,v| [:proxy, :proxy_on].include? k} #may want to pass env variables that are not relevant for in browser 'non-remote' tests e.g. proxy, so delete these before setting up driver
104
105
  end
105
106
  Capybara::Driver::Selenium.new(app,opts)
106
107
  end
@@ -2,7 +2,7 @@ require 'frameworks/capybara'
2
2
  require 'monkey-patches/cucumber-patches'
3
3
 
4
4
  if(ENV['XVFB']=='true')
5
- puts "You have chosed to use XVFB - ensure you have yum installed Xvfb Xorg and firefox"
5
+ puts "You have chosen to use XVFB - ensure you have yum installed Xvfb Xorg and firefox"
6
6
  require 'headless'
7
7
  headless = Headless.new
8
8
  headless.start
@@ -14,13 +14,15 @@ end
14
14
  module Frameworks
15
15
  module EnvHelper
16
16
 
17
- WWW_PREFIX = 'http://www.'
18
- STATIC_PREFIX = 'http://static.'
19
- OPEN_PREFIX = 'http://open.'
17
+ ENV['SCHEME']=='https' ? scheme = 'https' : scheme = 'http'
18
+
19
+ WWW_PREFIX = "#{scheme}://www."
20
+ STATIC_PREFIX = "#{scheme}://static."
21
+ OPEN_PREFIX = "#{scheme}://open."
20
22
  BBC_DOMAIN = '.bbc.co.uk'
21
23
  STATIC_BBC_DOMAIN = '.bbc.co.uk'
22
- SANDBOX = 'http://pal.sandbox.dev'
23
- STATIC_SANDBOX = 'http://static.sandbox.dev'
24
+ SANDBOX = "#{scheme}://pal.sandbox.dev"
25
+ STATIC_SANDBOX = "#{scheme}://static.sandbox.dev"
24
26
 
25
27
  #Generate base urls to use in Cucumber step defs
26
28
  def generate_base_urls
@@ -32,7 +34,7 @@ module Frameworks
32
34
  @static_base_url = STATIC_PREFIX + BBC_DOMAIN
33
35
  @open_base_url = OPEN_PREFIX + BBC_DOMAIN
34
36
  elsif (ENV['ENVIRONMENT'].split('.')[0].include? 'pal') #address specific box
35
- @base_url = "http://#{ENV['ENVIRONMENT']}"
37
+ @base_url = "#{scheme}://#{ENV['ENVIRONMENT']}"
36
38
  else
37
39
  @base_url = WWW_PREFIX + ENV['ENVIRONMENT'] + BBC_DOMAIN
38
40
  @static_base_url = STATIC_PREFIX + ENV['ENVIRONMENT'] + BBC_DOMAIN
@@ -1,12 +1,16 @@
1
1
  require 'capybara/mechanize/cucumber'
2
+ require 'uri'
2
3
 
3
4
  class Capybara::Driver::Mechanize
4
5
  def process_remote_request(method, url, *options)
5
6
  if remote?(url)
6
7
  remote_uri = URI.parse(url)
8
+
9
+ @scheme = remote_uri.scheme if remote_uri.scheme
10
+
7
11
  if remote_uri.host.nil?
8
12
  #TODO: Ascertain whether this is really true...
9
- if(method == :post && @prev_url) #patch
13
+ if(method == :post && url == "" && @prev_url) #patch
10
14
  #require 'uri'
11
15
  #url = "http://#{URI.parse(@prev_url).host}#{URI.parse(@prev_url).path}"
12
16
  #p url
@@ -14,7 +18,8 @@ class Capybara::Driver::Mechanize
14
18
  else
15
19
  remote_host = @last_remote_host || Capybara.app_host || Capybara.default_host
16
20
  url = File.join(remote_host, url)
17
- url = "http://#{url}" unless url.include?("http")
21
+ #url = "http://#{url}" unless url.include?("http")
22
+ url = "#{@scheme}://#{url}" unless url.match(/^http.*/)
18
23
  end
19
24
  else
20
25
  @last_remote_host = "#{remote_uri.host}:#{remote_uri.port}"
@@ -0,0 +1,6 @@
1
+ require 'mechanize'
2
+ class Mechanize
3
+ def set_ssl_client_certification(clientcert, clientkey, cacert)
4
+ @cert, @key, @ca_file = clientcert, clientkey, cacert
5
+ end
6
+ end
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: 95
4
+ hash: 93
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 32
10
- version: 0.0.32
9
+ - 33
10
+ version: 0.0.33
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-07-21 00:00:00 +01:00
18
+ date: 2011-08-16 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -144,6 +144,7 @@ files:
144
144
  - lib/monkey-patches/capybara-mechanize-patches.rb
145
145
  - lib/monkey-patches/capybara-patches.rb
146
146
  - lib/monkey-patches/cucumber-patches.rb
147
+ - lib/monkey-patches/mechanize-patches.rb
147
148
  - lib/monkey-patches/send-keys.rb
148
149
  - lib/monkey-patches/webdriver-patches.rb
149
150
  - test/helper.rb