mkuklis-webrat 0.5.1 → 0.6.rc1
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/.document +3 -3
- data/.gitignore +14 -14
- data/History.txt +413 -413
- data/MIT-LICENSE.txt +19 -19
- data/README.rdoc +84 -84
- data/Rakefile +187 -187
- data/VERSION +1 -1
- data/install.rb +1 -1
- data/lib/webrat/adapters/mechanize.rb +78 -78
- data/lib/webrat/adapters/merb.rb +11 -11
- data/lib/webrat/adapters/rack.rb +25 -25
- data/lib/webrat/adapters/rails.rb +81 -81
- data/lib/webrat/adapters/sinatra.rb +9 -9
- data/lib/webrat/core/configuration.rb +92 -92
- data/lib/webrat/core/elements/area.rb +31 -31
- data/lib/webrat/core/elements/element.rb +33 -33
- data/lib/webrat/core/elements/field.rb +487 -487
- data/lib/webrat/core/elements/form.rb +103 -103
- data/lib/webrat/core/elements/label.rb +31 -31
- data/lib/webrat/core/elements/link.rb +93 -93
- data/lib/webrat/core/elements/select_option.rb +48 -48
- data/lib/webrat/core/locators/area_locator.rb +38 -38
- data/lib/webrat/core/locators/button_locator.rb +54 -54
- data/lib/webrat/core/locators/field_by_id_locator.rb +37 -37
- data/lib/webrat/core/locators/field_labeled_locator.rb +56 -56
- data/lib/webrat/core/locators/field_locator.rb +25 -25
- data/lib/webrat/core/locators/field_named_locator.rb +41 -41
- data/lib/webrat/core/locators/form_locator.rb +19 -19
- data/lib/webrat/core/locators/label_locator.rb +34 -34
- data/lib/webrat/core/locators/link_locator.rb +74 -74
- data/lib/webrat/core/locators/locator.rb +20 -20
- data/lib/webrat/core/locators/select_option_locator.rb +59 -59
- data/lib/webrat/core/locators.rb +20 -20
- data/lib/webrat/core/logging.rb +23 -23
- data/lib/webrat/core/matchers/have_content.rb +68 -68
- data/lib/webrat/core/matchers/have_selector.rb +74 -74
- data/lib/webrat/core/matchers/have_tag.rb +21 -21
- data/lib/webrat/core/matchers/have_xpath.rb +122 -122
- data/lib/webrat/core/matchers.rb +4 -4
- data/lib/webrat/core/methods.rb +64 -64
- data/lib/webrat/core/mime.rb +18 -18
- data/lib/webrat/core/save_and_open_page.rb +48 -48
- data/lib/webrat/core/scope.rb +365 -365
- data/lib/webrat/core/session.rb +306 -306
- data/lib/webrat/core/xml.rb +72 -72
- data/lib/webrat/core.rb +13 -13
- data/lib/webrat/core_extensions/blank.rb +58 -58
- data/lib/webrat/core_extensions/deprecate.rb +8 -8
- data/lib/webrat/core_extensions/detect_mapped.rb +12 -12
- data/lib/webrat/core_extensions/meta_class.rb +6 -6
- data/lib/webrat/core_extensions/nil_to_param.rb +5 -5
- data/lib/webrat/core_extensions/tcp_socket.rb +27 -27
- data/lib/webrat/integrations/merb.rb +10 -10
- data/lib/webrat/integrations/rails.rb +25 -25
- data/lib/webrat/integrations/rspec-rails.rb +10 -10
- data/lib/webrat/integrations/selenium.rb +11 -11
- data/lib/webrat/merb.rb +9 -9
- data/lib/webrat/rspec-rails.rb +2 -2
- data/lib/webrat/selenium/application_server_factory.rb +40 -40
- data/lib/webrat/selenium/application_servers/external.rb +26 -26
- data/lib/webrat/selenium/application_servers/merb.rb +50 -50
- data/lib/webrat/selenium/application_servers/rails.rb +3 -6
- data/lib/webrat/selenium/application_servers/sinatra.rb +37 -37
- data/lib/webrat/selenium/application_servers.rb +5 -5
- data/lib/webrat/selenium/location_strategy_javascript/button.js +19 -19
- data/lib/webrat/selenium/location_strategy_javascript/label.js +42 -42
- data/lib/webrat/selenium/location_strategy_javascript/webrat.js +6 -6
- data/lib/webrat/selenium/location_strategy_javascript/webratlink.js +32 -32
- data/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +15 -15
- data/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +5 -5
- data/lib/webrat/selenium/matchers/have_content.rb +66 -66
- data/lib/webrat/selenium/matchers/have_selector.rb +49 -49
- data/lib/webrat/selenium/matchers/have_tag.rb +72 -72
- data/lib/webrat/selenium/matchers/have_xpath.rb +45 -45
- data/lib/webrat/selenium/matchers.rb +4 -4
- data/lib/webrat/selenium/selenium_extensions.js +5 -5
- data/lib/webrat/selenium/selenium_rc_server.rb +86 -86
- data/lib/webrat/selenium/selenium_session.rb +267 -272
- data/lib/webrat/selenium/silence_stream.rb +18 -18
- data/lib/webrat/selenium.rb +70 -70
- data/lib/webrat.rb +18 -18
- data/spec/fakes/test_adapter.rb +37 -37
- data/spec/integration/mechanize/Rakefile +6 -6
- data/spec/integration/mechanize/config.ru +1 -1
- data/spec/integration/mechanize/sample_app.rb +20 -20
- data/spec/integration/mechanize/spec/mechanize_spec.rb +22 -22
- data/spec/integration/mechanize/spec/spec_helper.rb +27 -27
- data/spec/integration/merb/.gitignore +20 -20
- data/spec/integration/merb/Rakefile +35 -35
- data/spec/integration/merb/app/controllers/application.rb +2 -2
- data/spec/integration/merb/app/controllers/exceptions.rb +13 -13
- data/spec/integration/merb/app/controllers/testing.rb +27 -27
- data/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +63 -63
- data/spec/integration/merb/app/views/exceptions/not_found.html.erb +47 -47
- data/spec/integration/merb/app/views/layout/application.html.erb +11 -11
- data/spec/integration/merb/app/views/testing/show_form.html.erb +26 -26
- data/spec/integration/merb/app/views/testing/upload.html.erb +8 -8
- data/spec/integration/merb/config/environments/development.rb +15 -15
- data/spec/integration/merb/config/environments/rake.rb +11 -11
- data/spec/integration/merb/config/environments/test.rb +14 -14
- data/spec/integration/merb/config/init.rb +25 -25
- data/spec/integration/merb/config/rack.rb +11 -11
- data/spec/integration/merb/config/router.rb +34 -34
- data/spec/integration/merb/spec/spec.opts +1 -1
- data/spec/integration/merb/spec/spec_helper.rb +26 -26
- data/spec/integration/merb/spec/webrat_spec.rb +39 -39
- data/spec/integration/merb/tasks/merb.thor/app_script.rb +31 -31
- data/spec/integration/merb/tasks/merb.thor/common.rb +64 -64
- data/spec/integration/merb/tasks/merb.thor/gem_ext.rb +124 -124
- data/spec/integration/merb/tasks/merb.thor/main.thor +149 -149
- data/spec/integration/merb/tasks/merb.thor/ops.rb +93 -93
- data/spec/integration/merb/tasks/merb.thor/utils.rb +40 -40
- data/spec/integration/rack/Rakefile +5 -5
- data/spec/integration/rack/app.rb +89 -89
- data/spec/integration/rack/test/helper.rb +21 -21
- data/spec/integration/rack/test/webrat_rack_test.rb +73 -73
- data/spec/integration/rails/.gitignore +3 -3
- data/spec/integration/rails/Rakefile +30 -30
- data/spec/integration/rails/app/controllers/application.rb +15 -15
- data/spec/integration/rails/app/controllers/buttons_controller.rb +7 -7
- data/spec/integration/rails/app/controllers/fields_controller.rb +4 -4
- data/spec/integration/rails/app/controllers/links_controller.rb +7 -7
- data/spec/integration/rails/app/controllers/webrat_controller.rb +46 -46
- data/spec/integration/rails/app/helpers/buttons_helper.rb +2 -2
- data/spec/integration/rails/app/helpers/fields_helper.rb +2 -2
- data/spec/integration/rails/app/helpers/links_helper.rb +2 -2
- data/spec/integration/rails/app/views/buttons/show.html.erb +10 -10
- data/spec/integration/rails/app/views/fields/show.html.erb +8 -8
- data/spec/integration/rails/app/views/links/show.html.erb +5 -5
- data/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +3 -3
- data/spec/integration/rails/app/views/webrat/buttons.html.erb +10 -10
- data/spec/integration/rails/app/views/webrat/form.html.erb +27 -27
- data/spec/integration/rails/app/views/webrat/within.html.erb +2 -2
- data/spec/integration/rails/config/boot.rb +109 -109
- data/spec/integration/rails/config/environment.rb +12 -12
- data/spec/integration/rails/config/environments/development.rb +17 -17
- data/spec/integration/rails/config/environments/selenium.rb +22 -22
- data/spec/integration/rails/config/environments/test.rb +22 -22
- data/spec/integration/rails/config/initializers/inflections.rb +10 -10
- data/spec/integration/rails/config/initializers/mime_types.rb +5 -5
- data/spec/integration/rails/config/initializers/new_rails_defaults.rb +17 -17
- data/spec/integration/rails/config/locales/en.yml +4 -4
- data/spec/integration/rails/config/routes.rb +19 -19
- data/spec/integration/rails/public/404.html +29 -29
- data/spec/integration/rails/public/422.html +29 -29
- data/spec/integration/rails/public/500.html +33 -33
- data/spec/integration/rails/script/about +3 -3
- data/spec/integration/rails/script/console +3 -3
- data/spec/integration/rails/script/dbconsole +3 -3
- data/spec/integration/rails/script/destroy +3 -3
- data/spec/integration/rails/script/generate +3 -3
- data/spec/integration/rails/script/performance/benchmarker +3 -3
- data/spec/integration/rails/script/performance/profiler +3 -3
- data/spec/integration/rails/script/performance/request +3 -3
- data/spec/integration/rails/script/plugin +3 -3
- data/spec/integration/rails/script/process/inspector +3 -3
- data/spec/integration/rails/script/process/reaper +3 -3
- data/spec/integration/rails/script/process/spawner +3 -3
- data/spec/integration/rails/script/runner +3 -3
- data/spec/integration/rails/script/server +3 -3
- data/spec/integration/rails/test/integration/button_click_test.rb +80 -80
- data/spec/integration/rails/test/integration/fill_in_test.rb +24 -24
- data/spec/integration/rails/test/integration/link_click_test.rb +27 -27
- data/spec/integration/rails/test/integration/webrat_test.rb +122 -122
- data/spec/integration/rails/test/test_helper.rb +26 -26
- data/spec/integration/sinatra/Rakefile +5 -5
- data/spec/integration/sinatra/classic_app.rb +64 -64
- data/spec/integration/sinatra/modular_app.rb +16 -16
- data/spec/integration/sinatra/test/classic_app_test.rb +37 -37
- data/spec/integration/sinatra/test/modular_app_test.rb +18 -18
- data/spec/integration/sinatra/test/test_helper.rb +17 -17
- data/spec/private/core/configuration_spec.rb +87 -87
- data/spec/private/core/field_spec.rb +85 -85
- data/spec/private/core/link_spec.rb +24 -24
- data/spec/private/core/session_spec.rb +200 -200
- data/spec/private/mechanize/mechanize_adapter_spec.rb +73 -73
- data/spec/private/nokogiri_spec.rb +77 -77
- data/spec/private/rails/attaches_file_spec.rb +81 -81
- data/spec/private/rails/rails_adapter_spec.rb +86 -86
- data/spec/private/selenium/application_servers/rails_spec.rb +26 -26
- data/spec/public/basic_auth_spec.rb +24 -24
- data/spec/public/check_spec.rb +191 -191
- data/spec/public/choose_spec.rb +118 -118
- data/spec/public/click_area_spec.rb +106 -106
- data/spec/public/click_button_spec.rb +494 -494
- data/spec/public/click_link_spec.rb +511 -511
- data/spec/public/fill_in_spec.rb +224 -224
- data/spec/public/locators/field_by_xpath_spec.rb +19 -19
- data/spec/public/locators/field_labeled_spec.rb +172 -172
- data/spec/public/locators/field_with_id_spec.rb +16 -16
- data/spec/public/matchers/contain_spec.rb +114 -114
- data/spec/public/matchers/have_selector_spec.rb +146 -146
- data/spec/public/matchers/have_tag_spec.rb +39 -39
- data/spec/public/matchers/have_xpath_spec.rb +136 -136
- data/spec/public/reload_spec.rb +10 -10
- data/spec/public/save_and_open_spec.rb +70 -70
- data/spec/public/select_date_spec.rb +112 -112
- data/spec/public/select_datetime_spec.rb +137 -137
- data/spec/public/select_spec.rb +455 -455
- data/spec/public/select_time_spec.rb +100 -100
- data/spec/public/selenium/application_server_factory_spec.rb +49 -49
- data/spec/public/selenium/application_servers/external_spec.rb +12 -12
- data/spec/public/selenium/selenium_session_spec.rb +37 -37
- data/spec/public/set_hidden_field_spec.rb +5 -5
- data/spec/public/submit_form_spec.rb +5 -5
- data/spec/public/visit_spec.rb +58 -58
- data/spec/public/within_spec.rb +177 -177
- data/spec/spec.opts +1 -1
- data/spec/spec_helper.rb +54 -54
- data/webrat.gemspec +360 -0
- metadata +6 -5
@@ -1,172 +1,172 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
-
|
3
|
-
|
4
|
-
describe "field_labeled" do
|
5
|
-
class << self
|
6
|
-
def using_this_html html
|
7
|
-
before(:each) do
|
8
|
-
with_html(html)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def field_labeled(label)
|
13
|
-
@label = label
|
14
|
-
yield
|
15
|
-
end
|
16
|
-
|
17
|
-
def should_return_a type, opts
|
18
|
-
it "should return a textfield" do
|
19
|
-
field_labeled(opts[:for]).should be_an_instance_of(type)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def with_an_id_of id, opts
|
24
|
-
it "should return an element with the correct id" do
|
25
|
-
field_labeled(opts[:for]).should match_id(id)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def should_raise_error_matching regexp, opts
|
30
|
-
it "should raise with wrong label" do
|
31
|
-
lambda {
|
32
|
-
field_labeled(opts[:for])
|
33
|
-
}.should raise_error(regexp)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def match_id(id)
|
39
|
-
simple_matcher "element with id #{id.inspect}" do |element, matcher|
|
40
|
-
if id.is_a?(Regexp)
|
41
|
-
element.id =~ id
|
42
|
-
else
|
43
|
-
element.id == id.to_s
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe "finding a text field" do
|
49
|
-
using_this_html <<-HTML
|
50
|
-
<html>
|
51
|
-
<form>
|
52
|
-
<label for="element_42">The Label</label>
|
53
|
-
<input type="text" id="element_42">
|
54
|
-
</form>
|
55
|
-
</html>
|
56
|
-
HTML
|
57
|
-
|
58
|
-
should_return_a Webrat::TextField, :for => "The Label"
|
59
|
-
with_an_id_of "element_42", :for => "The Label"
|
60
|
-
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
61
|
-
end
|
62
|
-
|
63
|
-
describe "finding a hidden field" do
|
64
|
-
using_this_html <<-HTML
|
65
|
-
<html>
|
66
|
-
<form>
|
67
|
-
<label for="element_42">The Label</label>
|
68
|
-
<input type="hidden" id="element_42">
|
69
|
-
</form>
|
70
|
-
</html>
|
71
|
-
HTML
|
72
|
-
|
73
|
-
should_return_a Webrat::HiddenField, :for => "The Label"
|
74
|
-
with_an_id_of "element_42", :for => "The Label"
|
75
|
-
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
76
|
-
end
|
77
|
-
|
78
|
-
describe "finding a checkbox" do
|
79
|
-
using_this_html <<-HTML
|
80
|
-
<html>
|
81
|
-
<form>
|
82
|
-
<label for="element_42">The Label</label>
|
83
|
-
<input type="checkbox" id="element_42">
|
84
|
-
</form>
|
85
|
-
</html>
|
86
|
-
HTML
|
87
|
-
|
88
|
-
should_return_a Webrat::CheckboxField, :for => "The Label"
|
89
|
-
with_an_id_of "element_42", :for => "The Label"
|
90
|
-
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
91
|
-
end
|
92
|
-
|
93
|
-
describe "finding a radio button" do
|
94
|
-
using_this_html <<-HTML
|
95
|
-
<html>
|
96
|
-
<form>
|
97
|
-
<label for="element_42">The Label</label>
|
98
|
-
<input type="radio" id="element_42">
|
99
|
-
</form>
|
100
|
-
</html>
|
101
|
-
HTML
|
102
|
-
|
103
|
-
should_return_a Webrat::RadioField, :for => "The Label"
|
104
|
-
with_an_id_of "element_42", :for => "The Label"
|
105
|
-
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
106
|
-
end
|
107
|
-
|
108
|
-
|
109
|
-
describe "finding a text area" do
|
110
|
-
using_this_html <<-HTML
|
111
|
-
<html>
|
112
|
-
<form>
|
113
|
-
<label for="element_42">The Label</label>
|
114
|
-
<textarea id="element_42"></textarea>
|
115
|
-
</form>
|
116
|
-
</html>
|
117
|
-
HTML
|
118
|
-
|
119
|
-
should_return_a Webrat::TextareaField, :for => "The Label"
|
120
|
-
with_an_id_of "element_42", :for => "The Label"
|
121
|
-
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
122
|
-
end
|
123
|
-
|
124
|
-
describe "finding a field with it's label containing newlines" do
|
125
|
-
using_this_html <<-HTML
|
126
|
-
<html>
|
127
|
-
<form>
|
128
|
-
<label for="element_42">
|
129
|
-
A label with
|
130
|
-
<a>a link on it's own line</a>
|
131
|
-
</label>
|
132
|
-
<input type="text" id="element_42">
|
133
|
-
</form>
|
134
|
-
</html>
|
135
|
-
HTML
|
136
|
-
|
137
|
-
should_return_a Webrat::TextField, :for => "A label with a link on it's own line"
|
138
|
-
with_an_id_of "element_42", :for => "A label with a link on it's own line"
|
139
|
-
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
140
|
-
end
|
141
|
-
|
142
|
-
describe "finding a field when labels without fields also match" do
|
143
|
-
using_this_html <<-HTML
|
144
|
-
<html>
|
145
|
-
<label>The Label</label>
|
146
|
-
<form>
|
147
|
-
<label for="element_42">The Label</label>
|
148
|
-
<input type="text" id="element_42">
|
149
|
-
</form>
|
150
|
-
</html>
|
151
|
-
HTML
|
152
|
-
|
153
|
-
should_return_a Webrat::TextField, :for => "The Label"
|
154
|
-
with_an_id_of "element_42", :for => "The Label"
|
155
|
-
end
|
156
|
-
|
157
|
-
describe "finding a field whose label ends with an non word character" do
|
158
|
-
using_this_html <<-HTML
|
159
|
-
<html>
|
160
|
-
<form>
|
161
|
-
<label for="element_42">License #</label>
|
162
|
-
<input type="text" id="element_42">
|
163
|
-
</form>
|
164
|
-
</html>
|
165
|
-
HTML
|
166
|
-
|
167
|
-
should_return_a Webrat::TextField, :for => "License #"
|
168
|
-
with_an_id_of "element_42", :for => "License #"
|
169
|
-
should_raise_error_matching /Could not find .* "Other License #"/, :for => "Other License #"
|
170
|
-
end
|
171
|
-
|
172
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
+
|
3
|
+
|
4
|
+
describe "field_labeled" do
|
5
|
+
class << self
|
6
|
+
def using_this_html html
|
7
|
+
before(:each) do
|
8
|
+
with_html(html)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def field_labeled(label)
|
13
|
+
@label = label
|
14
|
+
yield
|
15
|
+
end
|
16
|
+
|
17
|
+
def should_return_a type, opts
|
18
|
+
it "should return a textfield" do
|
19
|
+
field_labeled(opts[:for]).should be_an_instance_of(type)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def with_an_id_of id, opts
|
24
|
+
it "should return an element with the correct id" do
|
25
|
+
field_labeled(opts[:for]).should match_id(id)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def should_raise_error_matching regexp, opts
|
30
|
+
it "should raise with wrong label" do
|
31
|
+
lambda {
|
32
|
+
field_labeled(opts[:for])
|
33
|
+
}.should raise_error(regexp)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def match_id(id)
|
39
|
+
simple_matcher "element with id #{id.inspect}" do |element, matcher|
|
40
|
+
if id.is_a?(Regexp)
|
41
|
+
element.id =~ id
|
42
|
+
else
|
43
|
+
element.id == id.to_s
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "finding a text field" do
|
49
|
+
using_this_html <<-HTML
|
50
|
+
<html>
|
51
|
+
<form>
|
52
|
+
<label for="element_42">The Label</label>
|
53
|
+
<input type="text" id="element_42">
|
54
|
+
</form>
|
55
|
+
</html>
|
56
|
+
HTML
|
57
|
+
|
58
|
+
should_return_a Webrat::TextField, :for => "The Label"
|
59
|
+
with_an_id_of "element_42", :for => "The Label"
|
60
|
+
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "finding a hidden field" do
|
64
|
+
using_this_html <<-HTML
|
65
|
+
<html>
|
66
|
+
<form>
|
67
|
+
<label for="element_42">The Label</label>
|
68
|
+
<input type="hidden" id="element_42">
|
69
|
+
</form>
|
70
|
+
</html>
|
71
|
+
HTML
|
72
|
+
|
73
|
+
should_return_a Webrat::HiddenField, :for => "The Label"
|
74
|
+
with_an_id_of "element_42", :for => "The Label"
|
75
|
+
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
76
|
+
end
|
77
|
+
|
78
|
+
describe "finding a checkbox" do
|
79
|
+
using_this_html <<-HTML
|
80
|
+
<html>
|
81
|
+
<form>
|
82
|
+
<label for="element_42">The Label</label>
|
83
|
+
<input type="checkbox" id="element_42">
|
84
|
+
</form>
|
85
|
+
</html>
|
86
|
+
HTML
|
87
|
+
|
88
|
+
should_return_a Webrat::CheckboxField, :for => "The Label"
|
89
|
+
with_an_id_of "element_42", :for => "The Label"
|
90
|
+
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
91
|
+
end
|
92
|
+
|
93
|
+
describe "finding a radio button" do
|
94
|
+
using_this_html <<-HTML
|
95
|
+
<html>
|
96
|
+
<form>
|
97
|
+
<label for="element_42">The Label</label>
|
98
|
+
<input type="radio" id="element_42">
|
99
|
+
</form>
|
100
|
+
</html>
|
101
|
+
HTML
|
102
|
+
|
103
|
+
should_return_a Webrat::RadioField, :for => "The Label"
|
104
|
+
with_an_id_of "element_42", :for => "The Label"
|
105
|
+
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
106
|
+
end
|
107
|
+
|
108
|
+
|
109
|
+
describe "finding a text area" do
|
110
|
+
using_this_html <<-HTML
|
111
|
+
<html>
|
112
|
+
<form>
|
113
|
+
<label for="element_42">The Label</label>
|
114
|
+
<textarea id="element_42"></textarea>
|
115
|
+
</form>
|
116
|
+
</html>
|
117
|
+
HTML
|
118
|
+
|
119
|
+
should_return_a Webrat::TextareaField, :for => "The Label"
|
120
|
+
with_an_id_of "element_42", :for => "The Label"
|
121
|
+
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
122
|
+
end
|
123
|
+
|
124
|
+
describe "finding a field with it's label containing newlines" do
|
125
|
+
using_this_html <<-HTML
|
126
|
+
<html>
|
127
|
+
<form>
|
128
|
+
<label for="element_42">
|
129
|
+
A label with
|
130
|
+
<a>a link on it's own line</a>
|
131
|
+
</label>
|
132
|
+
<input type="text" id="element_42">
|
133
|
+
</form>
|
134
|
+
</html>
|
135
|
+
HTML
|
136
|
+
|
137
|
+
should_return_a Webrat::TextField, :for => "A label with a link on it's own line"
|
138
|
+
with_an_id_of "element_42", :for => "A label with a link on it's own line"
|
139
|
+
should_raise_error_matching /Could not find .* "Other Label"/, :for => "Other Label"
|
140
|
+
end
|
141
|
+
|
142
|
+
describe "finding a field when labels without fields also match" do
|
143
|
+
using_this_html <<-HTML
|
144
|
+
<html>
|
145
|
+
<label>The Label</label>
|
146
|
+
<form>
|
147
|
+
<label for="element_42">The Label</label>
|
148
|
+
<input type="text" id="element_42">
|
149
|
+
</form>
|
150
|
+
</html>
|
151
|
+
HTML
|
152
|
+
|
153
|
+
should_return_a Webrat::TextField, :for => "The Label"
|
154
|
+
with_an_id_of "element_42", :for => "The Label"
|
155
|
+
end
|
156
|
+
|
157
|
+
describe "finding a field whose label ends with an non word character" do
|
158
|
+
using_this_html <<-HTML
|
159
|
+
<html>
|
160
|
+
<form>
|
161
|
+
<label for="element_42">License #</label>
|
162
|
+
<input type="text" id="element_42">
|
163
|
+
</form>
|
164
|
+
</html>
|
165
|
+
HTML
|
166
|
+
|
167
|
+
should_return_a Webrat::TextField, :for => "License #"
|
168
|
+
with_an_id_of "element_42", :for => "License #"
|
169
|
+
should_raise_error_matching /Could not find .* "Other License #"/, :for => "Other License #"
|
170
|
+
end
|
171
|
+
|
172
|
+
end
|
@@ -1,16 +1,16 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
-
|
3
|
-
|
4
|
-
describe "field_with_id" do
|
5
|
-
it "should work when there is a single quote in the ID" do
|
6
|
-
with_html <<-HTML
|
7
|
-
<html>
|
8
|
-
<form>
|
9
|
-
<input type="text" id="user's name">
|
10
|
-
</form>
|
11
|
-
</html>
|
12
|
-
HTML
|
13
|
-
|
14
|
-
field_with_id("user's name").id.should == "user's name"
|
15
|
-
end
|
16
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
+
|
3
|
+
|
4
|
+
describe "field_with_id" do
|
5
|
+
it "should work when there is a single quote in the ID" do
|
6
|
+
with_html <<-HTML
|
7
|
+
<html>
|
8
|
+
<form>
|
9
|
+
<input type="text" id="user's name">
|
10
|
+
</form>
|
11
|
+
</html>
|
12
|
+
HTML
|
13
|
+
|
14
|
+
field_with_id("user's name").id.should == "user's name"
|
15
|
+
end
|
16
|
+
end
|
@@ -1,114 +1,114 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
-
|
3
|
-
describe "contain" do
|
4
|
-
include Webrat::Matchers
|
5
|
-
|
6
|
-
before(:each) do
|
7
|
-
@body = <<-HTML
|
8
|
-
<div id='main'>
|
9
|
-
<div class='inner'>hello, world!</div>
|
10
|
-
<h2>Welcome "Bryan"</h2>
|
11
|
-
<h3>Welcome 'Bryan'</h3>
|
12
|
-
<h4>Welcome 'Bryan"</h4>
|
13
|
-
<ul>
|
14
|
-
<li>First</li>
|
15
|
-
<li>Second</li>
|
16
|
-
</ul>
|
17
|
-
</div>
|
18
|
-
HTML
|
19
|
-
end
|
20
|
-
|
21
|
-
before(:each) do
|
22
|
-
@body = <<-EOF
|
23
|
-
<div id='main'>
|
24
|
-
<div class='inner'>hello, world!</div>
|
25
|
-
</div>
|
26
|
-
EOF
|
27
|
-
end
|
28
|
-
|
29
|
-
describe "#matches?" do
|
30
|
-
it "should call element#contains? when the argument is a string" do
|
31
|
-
@body.should contain("hello, world!")
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should call element#matches? when the argument is a regular expression" do
|
35
|
-
@body.should contain(/hello, world/)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
describe "asserts for contains," do
|
40
|
-
include Test::Unit::Assertions
|
41
|
-
|
42
|
-
before(:each) do
|
43
|
-
should_receive(:response_body).and_return @body
|
44
|
-
require 'test/unit'
|
45
|
-
end
|
46
|
-
|
47
|
-
describe "assert_contain" do
|
48
|
-
it "should pass when containing the text" do
|
49
|
-
assert_contain("hello, world")
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should pass when containing the regexp" do
|
53
|
-
assert_contain(/hello, world/)
|
54
|
-
end
|
55
|
-
|
56
|
-
it "should throw an exception when the body doesnt contain the text" do
|
57
|
-
lambda {
|
58
|
-
assert_contain("monkeys")
|
59
|
-
}.should raise_error(AssertionFailedError)
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should throw an exception when the body doesnt contain the regexp" do
|
63
|
-
lambda {
|
64
|
-
assert_contain(/monkeys/)
|
65
|
-
}.should raise_error(AssertionFailedError)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
describe "assert_not_contain" do
|
70
|
-
it "should pass when not containing the text" do
|
71
|
-
assert_not_contain("monkeys")
|
72
|
-
end
|
73
|
-
|
74
|
-
it "should pass when not containing the regexp" do
|
75
|
-
assert_not_contain(/monkeys/)
|
76
|
-
end
|
77
|
-
|
78
|
-
it "should throw an exception when the body does contain the text" do
|
79
|
-
lambda {
|
80
|
-
assert_not_contain("hello, world")
|
81
|
-
}.should raise_error(AssertionFailedError)
|
82
|
-
end
|
83
|
-
|
84
|
-
it "should throw an exception when the body does contain the regexp" do
|
85
|
-
lambda {
|
86
|
-
assert_not_contain(/hello, world/)
|
87
|
-
}.should raise_error(AssertionFailedError)
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
describe "#failure_message" do
|
93
|
-
it "should include the content string" do
|
94
|
-
hc = Webrat::Matchers::HasContent.new("hello, world!")
|
95
|
-
hc.matches?(@body)
|
96
|
-
|
97
|
-
hc.failure_message.should include("\"hello, world!\"")
|
98
|
-
end
|
99
|
-
|
100
|
-
it "should include the content regular expresson" do
|
101
|
-
hc = Webrat::Matchers::HasContent.new(/hello,\sworld!/)
|
102
|
-
hc.matches?(@body)
|
103
|
-
|
104
|
-
hc.failure_message.should include("/hello,\\sworld!/")
|
105
|
-
end
|
106
|
-
|
107
|
-
it "should include the element's inner content" do
|
108
|
-
hc = Webrat::Matchers::HasContent.new(/hello,\sworld!/)
|
109
|
-
hc.matches?(@body)
|
110
|
-
|
111
|
-
hc.failure_message.should include("hello, world!")
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
2
|
+
|
3
|
+
describe "contain" do
|
4
|
+
include Webrat::Matchers
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
@body = <<-HTML
|
8
|
+
<div id='main'>
|
9
|
+
<div class='inner'>hello, world!</div>
|
10
|
+
<h2>Welcome "Bryan"</h2>
|
11
|
+
<h3>Welcome 'Bryan'</h3>
|
12
|
+
<h4>Welcome 'Bryan"</h4>
|
13
|
+
<ul>
|
14
|
+
<li>First</li>
|
15
|
+
<li>Second</li>
|
16
|
+
</ul>
|
17
|
+
</div>
|
18
|
+
HTML
|
19
|
+
end
|
20
|
+
|
21
|
+
before(:each) do
|
22
|
+
@body = <<-EOF
|
23
|
+
<div id='main'>
|
24
|
+
<div class='inner'>hello, world!</div>
|
25
|
+
</div>
|
26
|
+
EOF
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "#matches?" do
|
30
|
+
it "should call element#contains? when the argument is a string" do
|
31
|
+
@body.should contain("hello, world!")
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should call element#matches? when the argument is a regular expression" do
|
35
|
+
@body.should contain(/hello, world/)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "asserts for contains," do
|
40
|
+
include Test::Unit::Assertions
|
41
|
+
|
42
|
+
before(:each) do
|
43
|
+
should_receive(:response_body).and_return @body
|
44
|
+
require 'test/unit'
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "assert_contain" do
|
48
|
+
it "should pass when containing the text" do
|
49
|
+
assert_contain("hello, world")
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should pass when containing the regexp" do
|
53
|
+
assert_contain(/hello, world/)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should throw an exception when the body doesnt contain the text" do
|
57
|
+
lambda {
|
58
|
+
assert_contain("monkeys")
|
59
|
+
}.should raise_error(AssertionFailedError)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should throw an exception when the body doesnt contain the regexp" do
|
63
|
+
lambda {
|
64
|
+
assert_contain(/monkeys/)
|
65
|
+
}.should raise_error(AssertionFailedError)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe "assert_not_contain" do
|
70
|
+
it "should pass when not containing the text" do
|
71
|
+
assert_not_contain("monkeys")
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should pass when not containing the regexp" do
|
75
|
+
assert_not_contain(/monkeys/)
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should throw an exception when the body does contain the text" do
|
79
|
+
lambda {
|
80
|
+
assert_not_contain("hello, world")
|
81
|
+
}.should raise_error(AssertionFailedError)
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should throw an exception when the body does contain the regexp" do
|
85
|
+
lambda {
|
86
|
+
assert_not_contain(/hello, world/)
|
87
|
+
}.should raise_error(AssertionFailedError)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "#failure_message" do
|
93
|
+
it "should include the content string" do
|
94
|
+
hc = Webrat::Matchers::HasContent.new("hello, world!")
|
95
|
+
hc.matches?(@body)
|
96
|
+
|
97
|
+
hc.failure_message.should include("\"hello, world!\"")
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should include the content regular expresson" do
|
101
|
+
hc = Webrat::Matchers::HasContent.new(/hello,\sworld!/)
|
102
|
+
hc.matches?(@body)
|
103
|
+
|
104
|
+
hc.failure_message.should include("/hello,\\sworld!/")
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should include the element's inner content" do
|
108
|
+
hc = Webrat::Matchers::HasContent.new(/hello,\sworld!/)
|
109
|
+
hc.matches?(@body)
|
110
|
+
|
111
|
+
hc.failure_message.should include("hello, world!")
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|