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,70 +1,70 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
-
|
3
|
-
describe "save_and_open_page" do
|
4
|
-
before do
|
5
|
-
with_html <<-HTML
|
6
|
-
<html>
|
7
|
-
<head>
|
8
|
-
<link href="/stylesheets/foo.css" media="screen" rel="stylesheet" type="text/css" />
|
9
|
-
</head>
|
10
|
-
<body>
|
11
|
-
<h1>Hello world</h1>
|
12
|
-
<img src="/images/bar.png" />
|
13
|
-
<img src='/images/foo.png' />
|
14
|
-
</body>
|
15
|
-
</html>
|
16
|
-
HTML
|
17
|
-
|
18
|
-
File.stub!(:exist? => true)
|
19
|
-
Time.stub!(:now => 1234)
|
20
|
-
|
21
|
-
require "launchy"
|
22
|
-
Launchy::Browser.stub!(:run)
|
23
|
-
|
24
|
-
@file_handle = mock("file handle")
|
25
|
-
File.stub!(:open).with(filename, 'w').and_yield(@file_handle)
|
26
|
-
@file_handle.stub!(:write)
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should rewrite css rules" do
|
30
|
-
@file_handle.should_receive(:write) do |html|
|
31
|
-
html.should =~ %r|"#{webrat_session.doc_root}/stylesheets/foo.css"|s
|
32
|
-
end
|
33
|
-
|
34
|
-
save_and_open_page
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should rewrite image paths with double quotes" do
|
38
|
-
@file_handle.should_receive(:write) do |html|
|
39
|
-
html.should =~ %r|"#{webrat_session.doc_root}/images/bar.png"|s
|
40
|
-
end
|
41
|
-
|
42
|
-
save_and_open_page
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should rewrite image paths with single quotes" do
|
46
|
-
@file_handle.should_receive(:write) do |html|
|
47
|
-
html.should =~ %r|'#{webrat_session.doc_root}/images/foo.png'|s
|
48
|
-
end
|
49
|
-
|
50
|
-
save_and_open_page
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should open the temp file in a browser with Launchy" do
|
54
|
-
Launchy::Browser.should_receive(:run)
|
55
|
-
save_and_open_page
|
56
|
-
end
|
57
|
-
|
58
|
-
it "should fail gracefully if Launchy is not available" do
|
59
|
-
Launchy::Browser.should_receive(:run).and_raise(LoadError)
|
60
|
-
|
61
|
-
lambda do
|
62
|
-
save_and_open_page
|
63
|
-
end.should_not raise_error
|
64
|
-
end
|
65
|
-
|
66
|
-
def filename
|
67
|
-
File.expand_path("./webrat-#{Time.now}.html")
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe "save_and_open_page" do
|
4
|
+
before do
|
5
|
+
with_html <<-HTML
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<link href="/stylesheets/foo.css" media="screen" rel="stylesheet" type="text/css" />
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<h1>Hello world</h1>
|
12
|
+
<img src="/images/bar.png" />
|
13
|
+
<img src='/images/foo.png' />
|
14
|
+
</body>
|
15
|
+
</html>
|
16
|
+
HTML
|
17
|
+
|
18
|
+
File.stub!(:exist? => true)
|
19
|
+
Time.stub!(:now => 1234)
|
20
|
+
|
21
|
+
require "launchy"
|
22
|
+
Launchy::Browser.stub!(:run)
|
23
|
+
|
24
|
+
@file_handle = mock("file handle")
|
25
|
+
File.stub!(:open).with(filename, 'w').and_yield(@file_handle)
|
26
|
+
@file_handle.stub!(:write)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should rewrite css rules" do
|
30
|
+
@file_handle.should_receive(:write) do |html|
|
31
|
+
html.should =~ %r|"#{webrat_session.doc_root}/stylesheets/foo.css"|s
|
32
|
+
end
|
33
|
+
|
34
|
+
save_and_open_page
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should rewrite image paths with double quotes" do
|
38
|
+
@file_handle.should_receive(:write) do |html|
|
39
|
+
html.should =~ %r|"#{webrat_session.doc_root}/images/bar.png"|s
|
40
|
+
end
|
41
|
+
|
42
|
+
save_and_open_page
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should rewrite image paths with single quotes" do
|
46
|
+
@file_handle.should_receive(:write) do |html|
|
47
|
+
html.should =~ %r|'#{webrat_session.doc_root}/images/foo.png'|s
|
48
|
+
end
|
49
|
+
|
50
|
+
save_and_open_page
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should open the temp file in a browser with Launchy" do
|
54
|
+
Launchy::Browser.should_receive(:run)
|
55
|
+
save_and_open_page
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should fail gracefully if Launchy is not available" do
|
59
|
+
Launchy::Browser.should_receive(:run).and_raise(LoadError)
|
60
|
+
|
61
|
+
lambda do
|
62
|
+
save_and_open_page
|
63
|
+
end.should_not raise_error
|
64
|
+
end
|
65
|
+
|
66
|
+
def filename
|
67
|
+
File.expand_path("./webrat-#{Time.now}.html")
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
@@ -1,112 +1,112 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
-
|
3
|
-
describe "select_date" do
|
4
|
-
it "should send the values for each individual date component" do
|
5
|
-
with_html <<-HTML
|
6
|
-
<html>
|
7
|
-
<form action="/appointments" method="post">
|
8
|
-
<label for="appointment_date">Date</label><br />
|
9
|
-
<select id="appointment_date_1i" name="appointment[date(1i)]">
|
10
|
-
<option value="2003">2003</option>
|
11
|
-
</select>
|
12
|
-
<select id="appointment_date_2i" name="appointment[date(2i)]">
|
13
|
-
<option value="12">December</option>
|
14
|
-
</select>
|
15
|
-
<select id="appointment_date_3i" name="appointment[date(3i)]">
|
16
|
-
<option value="25">25</option>
|
17
|
-
</select>
|
18
|
-
<input type="submit" />
|
19
|
-
</form>
|
20
|
-
</html>
|
21
|
-
HTML
|
22
|
-
webrat_session.should_receive(:post).with("/appointments",
|
23
|
-
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
|
24
|
-
select_date "December 25, 2003", :from => "Date"
|
25
|
-
click_button
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should accept a date object" do
|
29
|
-
with_html <<-HTML
|
30
|
-
<html>
|
31
|
-
<form action="/appointments" method="post">
|
32
|
-
<label for="appointment_date">date</label><br />
|
33
|
-
<select id="appointment_date_1i" name="appointment[date(1i)]">
|
34
|
-
<option value="2003">2003</option>
|
35
|
-
</select>
|
36
|
-
<select id="appointment_date_2i" name="appointment[date(2i)]">
|
37
|
-
<option value="12">December</option>
|
38
|
-
</select>
|
39
|
-
<select id="appointment_date_3i" name="appointment[date(3i)]">
|
40
|
-
<option value="25">25</option>
|
41
|
-
</select>
|
42
|
-
<input type="submit" />
|
43
|
-
</form>
|
44
|
-
</html>
|
45
|
-
HTML
|
46
|
-
webrat_session.should_receive(:post).with("/appointments",
|
47
|
-
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
|
48
|
-
select_date Date.parse("December 25, 2003"), :from => "date"
|
49
|
-
click_button
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should work when no label is specified" do
|
53
|
-
with_html <<-HTML
|
54
|
-
<html>
|
55
|
-
<form action="/appointments" method="post">
|
56
|
-
<select id="appointment_date_1i" name="appointment[date(1i)]">
|
57
|
-
<option value="2003">2003</option>
|
58
|
-
</select>
|
59
|
-
<select id="appointment_date_2i" name="appointment[date(2i)]">
|
60
|
-
<option value="12">December</option>
|
61
|
-
</select>
|
62
|
-
<select id="appointment_date_3i" name="appointment[date(3i)]">
|
63
|
-
<option value="25">25</option>
|
64
|
-
</select>
|
65
|
-
<input type="submit" />
|
66
|
-
</form>
|
67
|
-
</html>
|
68
|
-
HTML
|
69
|
-
webrat_session.should_receive(:post).with("/appointments",
|
70
|
-
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
|
71
|
-
select_date "December 25, 2003"
|
72
|
-
click_button
|
73
|
-
end
|
74
|
-
|
75
|
-
it "should work when the label ends in a non word character" do
|
76
|
-
with_html <<-HTML
|
77
|
-
<html>
|
78
|
-
<form action="/appointments" method="post">
|
79
|
-
<label for="appointment_date">date ?</label><br />
|
80
|
-
<select id="appointment_date_1i" name="appointment[date(1i)]">
|
81
|
-
<option value="2003">2003</option>
|
82
|
-
</select>
|
83
|
-
<select id="appointment_date_2i" name="appointment[date(2i)]">
|
84
|
-
<option value="12">December</option>
|
85
|
-
</select>
|
86
|
-
<select id="appointment_date_3i" name="appointment[date(3i)]">
|
87
|
-
<option value="25">25</option>
|
88
|
-
</select>
|
89
|
-
<input type="submit" />
|
90
|
-
</form>
|
91
|
-
</html>
|
92
|
-
HTML
|
93
|
-
webrat_session.should_receive(:post).with("/appointments",
|
94
|
-
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
|
95
|
-
select_date Date.parse("December 25, 2003"), :from => "date ?"
|
96
|
-
click_button
|
97
|
-
end
|
98
|
-
|
99
|
-
it "should fail if the specified label is not found" do
|
100
|
-
with_html <<-HTML
|
101
|
-
<html>
|
102
|
-
<form method="post" action="/appointments">
|
103
|
-
<select name="month"><option>January</option></select>
|
104
|
-
<input type="submit" />
|
105
|
-
</form>
|
106
|
-
</html>
|
107
|
-
HTML
|
108
|
-
|
109
|
-
lambda { select_date "December 25, 2003", :from => "date" }.should raise_error(Webrat::NotFoundError)
|
110
|
-
end
|
111
|
-
|
112
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe "select_date" do
|
4
|
+
it "should send the values for each individual date component" do
|
5
|
+
with_html <<-HTML
|
6
|
+
<html>
|
7
|
+
<form action="/appointments" method="post">
|
8
|
+
<label for="appointment_date">Date</label><br />
|
9
|
+
<select id="appointment_date_1i" name="appointment[date(1i)]">
|
10
|
+
<option value="2003">2003</option>
|
11
|
+
</select>
|
12
|
+
<select id="appointment_date_2i" name="appointment[date(2i)]">
|
13
|
+
<option value="12">December</option>
|
14
|
+
</select>
|
15
|
+
<select id="appointment_date_3i" name="appointment[date(3i)]">
|
16
|
+
<option value="25">25</option>
|
17
|
+
</select>
|
18
|
+
<input type="submit" />
|
19
|
+
</form>
|
20
|
+
</html>
|
21
|
+
HTML
|
22
|
+
webrat_session.should_receive(:post).with("/appointments",
|
23
|
+
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
|
24
|
+
select_date "December 25, 2003", :from => "Date"
|
25
|
+
click_button
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should accept a date object" do
|
29
|
+
with_html <<-HTML
|
30
|
+
<html>
|
31
|
+
<form action="/appointments" method="post">
|
32
|
+
<label for="appointment_date">date</label><br />
|
33
|
+
<select id="appointment_date_1i" name="appointment[date(1i)]">
|
34
|
+
<option value="2003">2003</option>
|
35
|
+
</select>
|
36
|
+
<select id="appointment_date_2i" name="appointment[date(2i)]">
|
37
|
+
<option value="12">December</option>
|
38
|
+
</select>
|
39
|
+
<select id="appointment_date_3i" name="appointment[date(3i)]">
|
40
|
+
<option value="25">25</option>
|
41
|
+
</select>
|
42
|
+
<input type="submit" />
|
43
|
+
</form>
|
44
|
+
</html>
|
45
|
+
HTML
|
46
|
+
webrat_session.should_receive(:post).with("/appointments",
|
47
|
+
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
|
48
|
+
select_date Date.parse("December 25, 2003"), :from => "date"
|
49
|
+
click_button
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should work when no label is specified" do
|
53
|
+
with_html <<-HTML
|
54
|
+
<html>
|
55
|
+
<form action="/appointments" method="post">
|
56
|
+
<select id="appointment_date_1i" name="appointment[date(1i)]">
|
57
|
+
<option value="2003">2003</option>
|
58
|
+
</select>
|
59
|
+
<select id="appointment_date_2i" name="appointment[date(2i)]">
|
60
|
+
<option value="12">December</option>
|
61
|
+
</select>
|
62
|
+
<select id="appointment_date_3i" name="appointment[date(3i)]">
|
63
|
+
<option value="25">25</option>
|
64
|
+
</select>
|
65
|
+
<input type="submit" />
|
66
|
+
</form>
|
67
|
+
</html>
|
68
|
+
HTML
|
69
|
+
webrat_session.should_receive(:post).with("/appointments",
|
70
|
+
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
|
71
|
+
select_date "December 25, 2003"
|
72
|
+
click_button
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should work when the label ends in a non word character" do
|
76
|
+
with_html <<-HTML
|
77
|
+
<html>
|
78
|
+
<form action="/appointments" method="post">
|
79
|
+
<label for="appointment_date">date ?</label><br />
|
80
|
+
<select id="appointment_date_1i" name="appointment[date(1i)]">
|
81
|
+
<option value="2003">2003</option>
|
82
|
+
</select>
|
83
|
+
<select id="appointment_date_2i" name="appointment[date(2i)]">
|
84
|
+
<option value="12">December</option>
|
85
|
+
</select>
|
86
|
+
<select id="appointment_date_3i" name="appointment[date(3i)]">
|
87
|
+
<option value="25">25</option>
|
88
|
+
</select>
|
89
|
+
<input type="submit" />
|
90
|
+
</form>
|
91
|
+
</html>
|
92
|
+
HTML
|
93
|
+
webrat_session.should_receive(:post).with("/appointments",
|
94
|
+
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
|
95
|
+
select_date Date.parse("December 25, 2003"), :from => "date ?"
|
96
|
+
click_button
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should fail if the specified label is not found" do
|
100
|
+
with_html <<-HTML
|
101
|
+
<html>
|
102
|
+
<form method="post" action="/appointments">
|
103
|
+
<select name="month"><option>January</option></select>
|
104
|
+
<input type="submit" />
|
105
|
+
</form>
|
106
|
+
</html>
|
107
|
+
HTML
|
108
|
+
|
109
|
+
lambda { select_date "December 25, 2003", :from => "date" }.should raise_error(Webrat::NotFoundError)
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
@@ -1,137 +1,137 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
-
|
3
|
-
describe "select_datetime" do
|
4
|
-
it "should send the values for each individual date and time components" do
|
5
|
-
with_html <<-HTML
|
6
|
-
<html>
|
7
|
-
<form action="/appointments" method="post">
|
8
|
-
<label for="appointment_time">Time</label><br />
|
9
|
-
<select id="appointment_time_1i" name="appointment[time(1i)]">
|
10
|
-
<option value="2003">2003</option>
|
11
|
-
</select>
|
12
|
-
<select id="appointment_time_2i" name="appointment[time(2i)]">
|
13
|
-
<option value="12">December</option>
|
14
|
-
</select>
|
15
|
-
<select id="appointment_time_3i" name="appointment[time(3i)]">
|
16
|
-
<option value="25">25</option>
|
17
|
-
</select>
|
18
|
-
<select id="appointment_time_4i" name="appointment[time(4i)]">
|
19
|
-
<option value="09">09</option>
|
20
|
-
</select>
|
21
|
-
: <select id="appointment_time_5i" name="appointment[time(5i)]">
|
22
|
-
<option value="30">30</option>
|
23
|
-
</select>
|
24
|
-
<input type="submit" />
|
25
|
-
</form>
|
26
|
-
</html>
|
27
|
-
HTML
|
28
|
-
webrat_session.should_receive(:post).with("/appointments",
|
29
|
-
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
|
30
|
-
select_datetime "December 25, 2003 9:30", :from => "Time"
|
31
|
-
click_button
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should accept a time object" do
|
35
|
-
with_html <<-HTML
|
36
|
-
<html>
|
37
|
-
<form action="/appointments" method="post">
|
38
|
-
<label for="appointment_time">Time</label><br />
|
39
|
-
<select id="appointment_time_1i" name="appointment[time(1i)]">
|
40
|
-
<option value="2003">2003</option>
|
41
|
-
</select>
|
42
|
-
<select id="appointment_time_2i" name="appointment[time(2i)]">
|
43
|
-
<option value="12">December</option>
|
44
|
-
</select>
|
45
|
-
<select id="appointment_time_3i" name="appointment[time(3i)]">
|
46
|
-
<option value="25">25</option>
|
47
|
-
</select>
|
48
|
-
<select id="appointment_time_4i" name="appointment[time(4i)]">
|
49
|
-
<option value="09">09</option>
|
50
|
-
</select>
|
51
|
-
: <select id="appointment_time_5i" name="appointment[time(5i)]">
|
52
|
-
<option value="30">30</option>
|
53
|
-
</select>
|
54
|
-
<input type="submit" />
|
55
|
-
</form>
|
56
|
-
</html>
|
57
|
-
HTML
|
58
|
-
webrat_session.should_receive(:post).with("/appointments",
|
59
|
-
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
|
60
|
-
select_datetime Time.parse("December 25, 2003 9:30"), :from => "Time"
|
61
|
-
click_button
|
62
|
-
end
|
63
|
-
|
64
|
-
it "should work when the label ends in a non word character" do
|
65
|
-
with_html <<-HTML
|
66
|
-
<html>
|
67
|
-
<form action="/appointments" method="post">
|
68
|
-
<label for="appointment_time">Time ?</label><br />
|
69
|
-
<select id="appointment_time_1i" name="appointment[time(1i)]">
|
70
|
-
<option value="2003">2003</option>
|
71
|
-
</select>
|
72
|
-
<select id="appointment_time_2i" name="appointment[time(2i)]">
|
73
|
-
<option value="12">December</option>
|
74
|
-
</select>
|
75
|
-
<select id="appointment_time_3i" name="appointment[time(3i)]">
|
76
|
-
<option value="25">25</option>
|
77
|
-
</select>
|
78
|
-
<select id="appointment_time_4i" name="appointment[time(4i)]">
|
79
|
-
<option value="09">09</option>
|
80
|
-
</select>
|
81
|
-
: <select id="appointment_time_5i" name="appointment[time(5i)]">
|
82
|
-
<option value="30">30</option>
|
83
|
-
</select>
|
84
|
-
<input type="submit" />
|
85
|
-
</form>
|
86
|
-
</html>
|
87
|
-
HTML
|
88
|
-
webrat_session.should_receive(:post).with("/appointments",
|
89
|
-
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
|
90
|
-
select_datetime "December 25, 2003 9:30", :from => "Time ?"
|
91
|
-
click_button
|
92
|
-
end
|
93
|
-
|
94
|
-
|
95
|
-
it "should work when no label is specified" do
|
96
|
-
with_html <<-HTML
|
97
|
-
<html>
|
98
|
-
<form action="/appointments" method="post">
|
99
|
-
<select id="appointment_time_1i" name="appointment[time(1i)]">
|
100
|
-
<option value="2003">2003</option>
|
101
|
-
</select>
|
102
|
-
<select id="appointment_time_2i" name="appointment[time(2i)]">
|
103
|
-
<option value="12">December</option>
|
104
|
-
</select>
|
105
|
-
<select id="appointment_time_3i" name="appointment[time(3i)]">
|
106
|
-
<option value="25">25</option>
|
107
|
-
</select>
|
108
|
-
<select id="appointment_time_4i" name="appointment[time(4i)]">
|
109
|
-
<option value="09">09</option>
|
110
|
-
</select>
|
111
|
-
: <select id="appointment_time_5i" name="appointment[time(5i)]">
|
112
|
-
<option value="30">30</option>
|
113
|
-
</select>
|
114
|
-
<input type="submit" />
|
115
|
-
</form>
|
116
|
-
</html>
|
117
|
-
HTML
|
118
|
-
webrat_session.should_receive(:post).with("/appointments",
|
119
|
-
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
|
120
|
-
select_datetime "December 25, 2003 9:30"
|
121
|
-
click_button
|
122
|
-
end
|
123
|
-
|
124
|
-
it "should fail if the specified label is not found" do
|
125
|
-
with_html <<-HTML
|
126
|
-
<html>
|
127
|
-
<form method="post" action="/appointments">
|
128
|
-
<select name="month"><option>January</option></select>
|
129
|
-
<input type="submit" />
|
130
|
-
</form>
|
131
|
-
</html>
|
132
|
-
HTML
|
133
|
-
|
134
|
-
lambda { select_datetime "December 25, 2003 9:30", :from => "Time" }.should raise_error(Webrat::NotFoundError)
|
135
|
-
end
|
136
|
-
|
137
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe "select_datetime" do
|
4
|
+
it "should send the values for each individual date and time components" do
|
5
|
+
with_html <<-HTML
|
6
|
+
<html>
|
7
|
+
<form action="/appointments" method="post">
|
8
|
+
<label for="appointment_time">Time</label><br />
|
9
|
+
<select id="appointment_time_1i" name="appointment[time(1i)]">
|
10
|
+
<option value="2003">2003</option>
|
11
|
+
</select>
|
12
|
+
<select id="appointment_time_2i" name="appointment[time(2i)]">
|
13
|
+
<option value="12">December</option>
|
14
|
+
</select>
|
15
|
+
<select id="appointment_time_3i" name="appointment[time(3i)]">
|
16
|
+
<option value="25">25</option>
|
17
|
+
</select>
|
18
|
+
<select id="appointment_time_4i" name="appointment[time(4i)]">
|
19
|
+
<option value="09">09</option>
|
20
|
+
</select>
|
21
|
+
: <select id="appointment_time_5i" name="appointment[time(5i)]">
|
22
|
+
<option value="30">30</option>
|
23
|
+
</select>
|
24
|
+
<input type="submit" />
|
25
|
+
</form>
|
26
|
+
</html>
|
27
|
+
HTML
|
28
|
+
webrat_session.should_receive(:post).with("/appointments",
|
29
|
+
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
|
30
|
+
select_datetime "December 25, 2003 9:30", :from => "Time"
|
31
|
+
click_button
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should accept a time object" do
|
35
|
+
with_html <<-HTML
|
36
|
+
<html>
|
37
|
+
<form action="/appointments" method="post">
|
38
|
+
<label for="appointment_time">Time</label><br />
|
39
|
+
<select id="appointment_time_1i" name="appointment[time(1i)]">
|
40
|
+
<option value="2003">2003</option>
|
41
|
+
</select>
|
42
|
+
<select id="appointment_time_2i" name="appointment[time(2i)]">
|
43
|
+
<option value="12">December</option>
|
44
|
+
</select>
|
45
|
+
<select id="appointment_time_3i" name="appointment[time(3i)]">
|
46
|
+
<option value="25">25</option>
|
47
|
+
</select>
|
48
|
+
<select id="appointment_time_4i" name="appointment[time(4i)]">
|
49
|
+
<option value="09">09</option>
|
50
|
+
</select>
|
51
|
+
: <select id="appointment_time_5i" name="appointment[time(5i)]">
|
52
|
+
<option value="30">30</option>
|
53
|
+
</select>
|
54
|
+
<input type="submit" />
|
55
|
+
</form>
|
56
|
+
</html>
|
57
|
+
HTML
|
58
|
+
webrat_session.should_receive(:post).with("/appointments",
|
59
|
+
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
|
60
|
+
select_datetime Time.parse("December 25, 2003 9:30"), :from => "Time"
|
61
|
+
click_button
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should work when the label ends in a non word character" do
|
65
|
+
with_html <<-HTML
|
66
|
+
<html>
|
67
|
+
<form action="/appointments" method="post">
|
68
|
+
<label for="appointment_time">Time ?</label><br />
|
69
|
+
<select id="appointment_time_1i" name="appointment[time(1i)]">
|
70
|
+
<option value="2003">2003</option>
|
71
|
+
</select>
|
72
|
+
<select id="appointment_time_2i" name="appointment[time(2i)]">
|
73
|
+
<option value="12">December</option>
|
74
|
+
</select>
|
75
|
+
<select id="appointment_time_3i" name="appointment[time(3i)]">
|
76
|
+
<option value="25">25</option>
|
77
|
+
</select>
|
78
|
+
<select id="appointment_time_4i" name="appointment[time(4i)]">
|
79
|
+
<option value="09">09</option>
|
80
|
+
</select>
|
81
|
+
: <select id="appointment_time_5i" name="appointment[time(5i)]">
|
82
|
+
<option value="30">30</option>
|
83
|
+
</select>
|
84
|
+
<input type="submit" />
|
85
|
+
</form>
|
86
|
+
</html>
|
87
|
+
HTML
|
88
|
+
webrat_session.should_receive(:post).with("/appointments",
|
89
|
+
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
|
90
|
+
select_datetime "December 25, 2003 9:30", :from => "Time ?"
|
91
|
+
click_button
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
it "should work when no label is specified" do
|
96
|
+
with_html <<-HTML
|
97
|
+
<html>
|
98
|
+
<form action="/appointments" method="post">
|
99
|
+
<select id="appointment_time_1i" name="appointment[time(1i)]">
|
100
|
+
<option value="2003">2003</option>
|
101
|
+
</select>
|
102
|
+
<select id="appointment_time_2i" name="appointment[time(2i)]">
|
103
|
+
<option value="12">December</option>
|
104
|
+
</select>
|
105
|
+
<select id="appointment_time_3i" name="appointment[time(3i)]">
|
106
|
+
<option value="25">25</option>
|
107
|
+
</select>
|
108
|
+
<select id="appointment_time_4i" name="appointment[time(4i)]">
|
109
|
+
<option value="09">09</option>
|
110
|
+
</select>
|
111
|
+
: <select id="appointment_time_5i" name="appointment[time(5i)]">
|
112
|
+
<option value="30">30</option>
|
113
|
+
</select>
|
114
|
+
<input type="submit" />
|
115
|
+
</form>
|
116
|
+
</html>
|
117
|
+
HTML
|
118
|
+
webrat_session.should_receive(:post).with("/appointments",
|
119
|
+
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
|
120
|
+
select_datetime "December 25, 2003 9:30"
|
121
|
+
click_button
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should fail if the specified label is not found" do
|
125
|
+
with_html <<-HTML
|
126
|
+
<html>
|
127
|
+
<form method="post" action="/appointments">
|
128
|
+
<select name="month"><option>January</option></select>
|
129
|
+
<input type="submit" />
|
130
|
+
</form>
|
131
|
+
</html>
|
132
|
+
HTML
|
133
|
+
|
134
|
+
lambda { select_datetime "December 25, 2003 9:30", :from => "Time" }.should raise_error(Webrat::NotFoundError)
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|