aslakhellesoy-webrat 0.3.2.2 → 0.4.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. data/History.txt +158 -19
  2. data/Rakefile +36 -11
  3. data/lib/webrat.rb +8 -11
  4. data/lib/webrat/core/configuration.rb +67 -25
  5. data/lib/webrat/core/elements/area.rb +7 -7
  6. data/lib/webrat/core/elements/element.rb +11 -11
  7. data/lib/webrat/core/elements/field.rb +70 -51
  8. data/lib/webrat/core/elements/form.rb +17 -17
  9. data/lib/webrat/core/elements/label.rb +8 -8
  10. data/lib/webrat/core/elements/link.rb +13 -11
  11. data/lib/webrat/core/elements/select_option.rb +9 -9
  12. data/lib/webrat/core/locators.rb +2 -2
  13. data/lib/webrat/core/locators/area_locator.rb +10 -10
  14. data/lib/webrat/core/locators/button_locator.rb +13 -13
  15. data/lib/webrat/core/locators/field_by_id_locator.rb +8 -8
  16. data/lib/webrat/core/locators/field_labeled_locator.rb +19 -13
  17. data/lib/webrat/core/locators/field_locator.rb +7 -7
  18. data/lib/webrat/core/locators/field_named_locator.rb +10 -10
  19. data/lib/webrat/core/locators/form_locator.rb +6 -6
  20. data/lib/webrat/core/locators/label_locator.rb +9 -9
  21. data/lib/webrat/core/locators/link_locator.rb +12 -12
  22. data/lib/webrat/core/locators/locator.rb +5 -5
  23. data/lib/webrat/core/locators/select_option_locator.rb +11 -11
  24. data/lib/webrat/core/logging.rb +7 -4
  25. data/lib/webrat/core/matchers/have_content.rb +19 -15
  26. data/lib/webrat/core/matchers/have_selector.rb +44 -22
  27. data/lib/webrat/core/matchers/have_tag.rb +11 -61
  28. data/lib/webrat/core/matchers/have_xpath.rb +89 -35
  29. data/lib/webrat/core/methods.rb +13 -11
  30. data/lib/webrat/core/mime.rb +3 -3
  31. data/lib/webrat/core/save_and_open_page.rb +9 -9
  32. data/lib/webrat/core/scope.rb +82 -62
  33. data/lib/webrat/core/session.rb +61 -18
  34. data/lib/webrat/core/xml.rb +16 -16
  35. data/lib/webrat/core/xml/hpricot.rb +3 -3
  36. data/lib/webrat/core/xml/nokogiri.rb +14 -14
  37. data/lib/webrat/core/xml/rexml.rb +3 -3
  38. data/lib/webrat/core_extensions/blank.rb +1 -1
  39. data/lib/webrat/core_extensions/deprecate.rb +1 -1
  40. data/lib/webrat/core_extensions/detect_mapped.rb +4 -4
  41. data/lib/webrat/core_extensions/meta_class.rb +1 -1
  42. data/lib/webrat/core_extensions/tcp_socket.rb +27 -0
  43. data/lib/webrat/mechanize.rb +9 -9
  44. data/lib/webrat/merb.rb +5 -61
  45. data/lib/webrat/merb_session.rb +67 -0
  46. data/lib/webrat/rack.rb +45 -14
  47. data/lib/webrat/rails.rb +31 -11
  48. data/lib/webrat/rspec-rails.rb +2 -2
  49. data/lib/webrat/selenium.rb +27 -39
  50. data/lib/webrat/selenium/application_server_factory.rb +40 -0
  51. data/lib/webrat/selenium/application_servers.rb +5 -0
  52. data/lib/webrat/selenium/application_servers/base.rb +44 -0
  53. data/lib/webrat/selenium/application_servers/external.rb +24 -0
  54. data/lib/webrat/selenium/application_servers/merb.rb +48 -0
  55. data/lib/webrat/selenium/application_servers/rails.rb +42 -0
  56. data/lib/webrat/selenium/application_servers/sinatra.rb +35 -0
  57. data/lib/webrat/selenium/location_strategy_javascript/button.js +14 -7
  58. data/lib/webrat/selenium/location_strategy_javascript/label.js +1 -2
  59. data/lib/webrat/selenium/location_strategy_javascript/webratlink.js +4 -1
  60. data/lib/webrat/selenium/matchers.rb +4 -108
  61. data/lib/webrat/selenium/matchers/have_content.rb +66 -0
  62. data/lib/webrat/selenium/matchers/have_selector.rb +49 -0
  63. data/lib/webrat/selenium/matchers/have_tag.rb +72 -0
  64. data/lib/webrat/selenium/matchers/have_xpath.rb +45 -0
  65. data/lib/webrat/selenium/selenium_rc_server.rb +84 -0
  66. data/lib/webrat/selenium/selenium_session.rb +86 -68
  67. data/lib/webrat/selenium/silence_stream.rb +18 -0
  68. metadata +21 -16
  69. data/lib/webrat/core_extensions/hash_with_indifferent_access.rb +0 -131
  70. data/lib/webrat/sinatra.rb +0 -29
@@ -0,0 +1,18 @@
1
+ module Webrat
2
+ module Selenium
3
+ module SilenceStream
4
+ # active_support already defines silence_stream, no need to do that again if it's already present.
5
+ # http://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/kernel/reporting.rb
6
+ unless Kernel.respond_to?(:silence_stream)
7
+ def silence_stream(stream)
8
+ old_stream = stream.dup
9
+ stream.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null')
10
+ stream.sync = true
11
+ yield
12
+ ensure
13
+ stream.reopen(old_stream)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aslakhellesoy-webrat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2.2
4
+ version: 0.4.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Helmkamp
@@ -9,17 +9,18 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-29 00:00:00 -08:00
12
+ date: 2009-06-14 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
20
21
  - - ">="
21
22
  - !ruby/object:Gem::Version
22
- version: 1.1.0
23
+ version: 1.2.0
23
24
  version:
24
25
  description: Webrat. Ruby Acceptance Testing for Web applications
25
26
  email: bryan@brynary.com
@@ -36,10 +37,7 @@ files:
36
37
  - MIT-LICENSE.txt
37
38
  - README.rdoc
38
39
  - Rakefile
39
- - lib/webrat
40
- - lib/webrat/core
41
40
  - lib/webrat/core/configuration.rb
42
- - lib/webrat/core/elements
43
41
  - lib/webrat/core/elements/area.rb
44
42
  - lib/webrat/core/elements/element.rb
45
43
  - lib/webrat/core/elements/field.rb
@@ -47,7 +45,6 @@ files:
47
45
  - lib/webrat/core/elements/label.rb
48
46
  - lib/webrat/core/elements/link.rb
49
47
  - lib/webrat/core/elements/select_option.rb
50
- - lib/webrat/core/locators
51
48
  - lib/webrat/core/locators/area_locator.rb
52
49
  - lib/webrat/core/locators/button_locator.rb
53
50
  - lib/webrat/core/locators/field_by_id_locator.rb
@@ -61,7 +58,6 @@ files:
61
58
  - lib/webrat/core/locators/select_option_locator.rb
62
59
  - lib/webrat/core/locators.rb
63
60
  - lib/webrat/core/logging.rb
64
- - lib/webrat/core/matchers
65
61
  - lib/webrat/core/matchers/have_content.rb
66
62
  - lib/webrat/core/matchers/have_selector.rb
67
63
  - lib/webrat/core/matchers/have_tag.rb
@@ -72,40 +68,49 @@ files:
72
68
  - lib/webrat/core/save_and_open_page.rb
73
69
  - lib/webrat/core/scope.rb
74
70
  - lib/webrat/core/session.rb
75
- - lib/webrat/core/xml
76
71
  - lib/webrat/core/xml/hpricot.rb
77
72
  - lib/webrat/core/xml/nokogiri.rb
78
73
  - lib/webrat/core/xml/rexml.rb
79
74
  - lib/webrat/core/xml.rb
80
75
  - lib/webrat/core.rb
81
- - lib/webrat/core_extensions
82
76
  - lib/webrat/core_extensions/blank.rb
83
77
  - lib/webrat/core_extensions/deprecate.rb
84
78
  - lib/webrat/core_extensions/detect_mapped.rb
85
- - lib/webrat/core_extensions/hash_with_indifferent_access.rb
86
79
  - lib/webrat/core_extensions/meta_class.rb
87
80
  - lib/webrat/core_extensions/nil_to_param.rb
81
+ - lib/webrat/core_extensions/tcp_socket.rb
88
82
  - lib/webrat/mechanize.rb
89
83
  - lib/webrat/merb.rb
84
+ - lib/webrat/merb_session.rb
90
85
  - lib/webrat/rack.rb
91
86
  - lib/webrat/rails.rb
92
87
  - lib/webrat/rspec-rails.rb
93
- - lib/webrat/selenium
94
- - lib/webrat/selenium/location_strategy_javascript
88
+ - lib/webrat/selenium/application_server_factory.rb
89
+ - lib/webrat/selenium/application_servers/base.rb
90
+ - lib/webrat/selenium/application_servers/external.rb
91
+ - lib/webrat/selenium/application_servers/merb.rb
92
+ - lib/webrat/selenium/application_servers/rails.rb
93
+ - lib/webrat/selenium/application_servers/sinatra.rb
94
+ - lib/webrat/selenium/application_servers.rb
95
95
  - lib/webrat/selenium/location_strategy_javascript/button.js
96
96
  - lib/webrat/selenium/location_strategy_javascript/label.js
97
97
  - lib/webrat/selenium/location_strategy_javascript/webrat.js
98
98
  - lib/webrat/selenium/location_strategy_javascript/webratlink.js
99
99
  - lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js
100
100
  - lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js
101
+ - lib/webrat/selenium/matchers/have_content.rb
102
+ - lib/webrat/selenium/matchers/have_selector.rb
103
+ - lib/webrat/selenium/matchers/have_tag.rb
104
+ - lib/webrat/selenium/matchers/have_xpath.rb
101
105
  - lib/webrat/selenium/matchers.rb
102
106
  - lib/webrat/selenium/selenium_extensions.js
107
+ - lib/webrat/selenium/selenium_rc_server.rb
103
108
  - lib/webrat/selenium/selenium_session.rb
109
+ - lib/webrat/selenium/silence_stream.rb
104
110
  - lib/webrat/selenium.rb
105
- - lib/webrat/sinatra.rb
106
111
  - lib/webrat.rb
107
112
  - vendor/selenium-server.jar
108
- has_rdoc: true
113
+ has_rdoc: false
109
114
  homepage: http://github.com/brynary/webrat
110
115
  post_install_message:
111
116
  rdoc_options: []
@@ -129,7 +134,7 @@ requirements: []
129
134
  rubyforge_project: webrat
130
135
  rubygems_version: 1.2.0
131
136
  signing_key:
132
- specification_version: 2
137
+ specification_version: 3
133
138
  summary: Webrat. Ruby Acceptance Testing for Web applications
134
139
  test_files: []
135
140
 
@@ -1,131 +0,0 @@
1
- # This class has dubious semantics and we only have it so that
2
- # people can write params[:key] instead of params['key']
3
- # and they get the same value for both keys.
4
- class HashWithIndifferentAccess < Hash #:nodoc:
5
- def initialize(constructor = {})
6
- if constructor.is_a?(Hash)
7
- super()
8
- update(constructor)
9
- else
10
- super(constructor)
11
- end
12
- end
13
-
14
- def default(key = nil)
15
- if key.is_a?(Symbol) && include?(key = key.to_s)
16
- self[key]
17
- else
18
- super
19
- end
20
- end
21
-
22
- alias_method :regular_writer, :[]= unless method_defined?(:regular_writer)
23
- alias_method :regular_update, :update unless method_defined?(:regular_update)
24
-
25
- #
26
- # Assigns a new value to the hash.
27
- #
28
- # Example:
29
- #
30
- # hash = HashWithIndifferentAccess.new
31
- # hash[:key] = "value"
32
- #
33
- def []=(key, value)
34
- regular_writer(convert_key(key), convert_value(value))
35
- end
36
-
37
- #
38
- # Updates the instantized hash with values from the second.
39
- #
40
- # Example:
41
- #
42
- # >> hash_1 = HashWithIndifferentAccess.new
43
- # => {}
44
- #
45
- # >> hash_1[:key] = "value"
46
- # => "value"
47
- #
48
- # >> hash_2 = HashWithIndifferentAccess.new
49
- # => {}
50
- #
51
- # >> hash_2[:key] = "New Value!"
52
- # => "New Value!"
53
- #
54
- # >> hash_1.update(hash_2)
55
- # => {"key"=>"New Value!"}
56
- #
57
- def update(other_hash)
58
- other_hash.each_pair { |key, value| regular_writer(convert_key(key), convert_value(value)) }
59
- self
60
- end
61
-
62
- alias_method :merge!, :update
63
-
64
- # Checks the hash for a key matching the argument passed in
65
- def key?(key)
66
- super(convert_key(key))
67
- end
68
-
69
- alias_method :include?, :key?
70
- alias_method :has_key?, :key?
71
- alias_method :member?, :key?
72
-
73
- # Fetches the value for the specified key, same as doing hash[key]
74
- def fetch(key, *extras)
75
- super(convert_key(key), *extras)
76
- end
77
-
78
- # Returns an array of the values at the specified indicies.
79
- def values_at(*indices)
80
- indices.collect {|key| self[convert_key(key)]}
81
- end
82
-
83
- # Returns an exact copy of the hash.
84
- def dup
85
- HashWithIndifferentAccess.new(self)
86
- end
87
-
88
- # Merges the instantized and the specified hashes together, giving precedence to the values from the second hash
89
- # Does not overwrite the existing hash.
90
- def merge(hash)
91
- self.dup.update(hash)
92
- end
93
-
94
- # Removes a specified key from the hash.
95
- def delete(key)
96
- super(convert_key(key))
97
- end
98
-
99
- def stringify_keys!; self end
100
- def symbolize_keys!; self end
101
- def to_options!; self end
102
-
103
- # Convert to a Hash with String keys.
104
- def to_hash
105
- Hash.new(default).merge(self)
106
- end
107
-
108
- protected
109
- def convert_key(key)
110
- key.kind_of?(Symbol) ? key.to_s : key
111
- end
112
-
113
- def convert_value(value)
114
- case value
115
- when Hash
116
- value.with_indifferent_access
117
- when Array
118
- value.collect { |e| e.is_a?(Hash) ? e.with_indifferent_access : e }
119
- else
120
- value
121
- end
122
- end
123
- end
124
-
125
- class Hash #:nodoc:
126
- def with_indifferent_access
127
- hash = HashWithIndifferentAccess.new(self)
128
- hash.default = self.default
129
- hash
130
- end
131
- end
@@ -1,29 +0,0 @@
1
- require 'webrat/rack'
2
- require 'sinatra'
3
- require 'sinatra/test/methods'
4
-
5
- class Sinatra::Application
6
- # Override this to prevent Sinatra from barfing on the options passed from RSpec
7
- def self.load_default_options_from_command_line!
8
- end
9
- end
10
-
11
- disable :run
12
- disable :reload
13
-
14
- module Webrat
15
- class SinatraSession < RackSession #:nodoc:
16
- include Sinatra::Test::Methods
17
-
18
- attr_reader :request, :response
19
-
20
- %w(get head post put delete).each do |verb|
21
- define_method(verb) do |*args| # (path, data, headers = nil)
22
- path, data, headers = *args
23
- data = data.inject({}) {|data, (key,value)| data[key] = Rack::Utils.unescape(value); data }
24
- params = data.merge(:env => headers || {})
25
- self.__send__("#{verb}_it", path, params)
26
- end
27
- end
28
- end
29
- end