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,122 +1,122 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class WebratTest < ActionController::IntegrationTest
|
4
|
-
|
5
|
-
#Firefox raises a security concern under Selenium
|
6
|
-
unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
|
7
|
-
test "should visit fully qualified urls" do
|
8
|
-
visit root_url(:host => "chunkybacon.example.com")
|
9
|
-
assert_equal "chunkybacon", request.subdomains.first
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
test "should visit pages" do
|
14
|
-
visit root_path
|
15
|
-
assert_contain("Webrat Form")
|
16
|
-
assert URI.parse(current_url).path, root_path
|
17
|
-
end
|
18
|
-
|
19
|
-
test "should submit forms" do
|
20
|
-
visit root_path
|
21
|
-
fill_in "Text field", :with => "Hello"
|
22
|
-
check "TOS"
|
23
|
-
select "January"
|
24
|
-
click_button "Test"
|
25
|
-
end
|
26
|
-
|
27
|
-
test "should check the value of a field" do
|
28
|
-
webrat.simulate do
|
29
|
-
visit "/"
|
30
|
-
assert field_labeled("Prefilled").value, "text"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
test "should not carry params through redirects" do
|
35
|
-
visit before_redirect_form_path
|
36
|
-
fill_in "Text field", :with => "value"
|
37
|
-
click_button
|
38
|
-
|
39
|
-
automate do
|
40
|
-
selenium.wait_for_page_to_load
|
41
|
-
end
|
42
|
-
assert response.body !~ /value/
|
43
|
-
assert response.body =~ /custom_param/
|
44
|
-
end
|
45
|
-
|
46
|
-
test "should follow internal redirects" do
|
47
|
-
visit internal_redirect_path
|
48
|
-
webrat.simulate do
|
49
|
-
assert !response.redirect?
|
50
|
-
end
|
51
|
-
assert response.body.include?("OK")
|
52
|
-
end
|
53
|
-
|
54
|
-
test "should not follow external redirects" do
|
55
|
-
webrat.simulate do
|
56
|
-
visit external_redirect_path
|
57
|
-
assert response.redirect?
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
test "should recognize the host header to follow redirects properly" do
|
62
|
-
webrat.simulate do
|
63
|
-
header "Host", "foo.bar"
|
64
|
-
visit host_redirect_path
|
65
|
-
assert !response.redirect?
|
66
|
-
assert response.body.include?("OK")
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
test "should click link by text" do
|
71
|
-
visit internal_redirect_path
|
72
|
-
click_link "Test Link Text"
|
73
|
-
assert_contain("Webrat Form")
|
74
|
-
end
|
75
|
-
|
76
|
-
test "should click link by id" do
|
77
|
-
visit internal_redirect_path
|
78
|
-
click_link "link_id"
|
79
|
-
assert_contain("Webrat Form")
|
80
|
-
end
|
81
|
-
|
82
|
-
test "should be able to assert xpath" do
|
83
|
-
visit root_path
|
84
|
-
assert_have_xpath "//h1"
|
85
|
-
end
|
86
|
-
|
87
|
-
test "should be able to assert selector" do
|
88
|
-
visit root_path
|
89
|
-
assert_have_selector "h1"
|
90
|
-
end
|
91
|
-
|
92
|
-
test "should accept an Object argument to #within and translate using dom_id" do
|
93
|
-
webrat.simulate do
|
94
|
-
visit within_path
|
95
|
-
|
96
|
-
object = Object.new
|
97
|
-
def object.id
|
98
|
-
nil
|
99
|
-
end
|
100
|
-
|
101
|
-
within(object) do
|
102
|
-
click_link "Edit Object"
|
103
|
-
end
|
104
|
-
|
105
|
-
assert_contain "Webrat Form"
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
# Firefox detects and prevents infinite redirects under Selenium
|
110
|
-
unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
|
111
|
-
test "should detect infinite redirects" do
|
112
|
-
assert_raises Webrat::InfiniteRedirectError do
|
113
|
-
visit infinite_redirect_path
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
# test "should be able to assert have tag" do
|
119
|
-
# visit root_path
|
120
|
-
# assert_have_tag "h1"
|
121
|
-
# end
|
122
|
-
end
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class WebratTest < ActionController::IntegrationTest
|
4
|
+
|
5
|
+
#Firefox raises a security concern under Selenium
|
6
|
+
unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
|
7
|
+
test "should visit fully qualified urls" do
|
8
|
+
visit root_url(:host => "chunkybacon.example.com")
|
9
|
+
assert_equal "chunkybacon", request.subdomains.first
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
test "should visit pages" do
|
14
|
+
visit root_path
|
15
|
+
assert_contain("Webrat Form")
|
16
|
+
assert URI.parse(current_url).path, root_path
|
17
|
+
end
|
18
|
+
|
19
|
+
test "should submit forms" do
|
20
|
+
visit root_path
|
21
|
+
fill_in "Text field", :with => "Hello"
|
22
|
+
check "TOS"
|
23
|
+
select "January"
|
24
|
+
click_button "Test"
|
25
|
+
end
|
26
|
+
|
27
|
+
test "should check the value of a field" do
|
28
|
+
webrat.simulate do
|
29
|
+
visit "/"
|
30
|
+
assert field_labeled("Prefilled").value, "text"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
test "should not carry params through redirects" do
|
35
|
+
visit before_redirect_form_path
|
36
|
+
fill_in "Text field", :with => "value"
|
37
|
+
click_button
|
38
|
+
|
39
|
+
automate do
|
40
|
+
selenium.wait_for_page_to_load
|
41
|
+
end
|
42
|
+
assert response.body !~ /value/
|
43
|
+
assert response.body =~ /custom_param/
|
44
|
+
end
|
45
|
+
|
46
|
+
test "should follow internal redirects" do
|
47
|
+
visit internal_redirect_path
|
48
|
+
webrat.simulate do
|
49
|
+
assert !response.redirect?
|
50
|
+
end
|
51
|
+
assert response.body.include?("OK")
|
52
|
+
end
|
53
|
+
|
54
|
+
test "should not follow external redirects" do
|
55
|
+
webrat.simulate do
|
56
|
+
visit external_redirect_path
|
57
|
+
assert response.redirect?
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
test "should recognize the host header to follow redirects properly" do
|
62
|
+
webrat.simulate do
|
63
|
+
header "Host", "foo.bar"
|
64
|
+
visit host_redirect_path
|
65
|
+
assert !response.redirect?
|
66
|
+
assert response.body.include?("OK")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
test "should click link by text" do
|
71
|
+
visit internal_redirect_path
|
72
|
+
click_link "Test Link Text"
|
73
|
+
assert_contain("Webrat Form")
|
74
|
+
end
|
75
|
+
|
76
|
+
test "should click link by id" do
|
77
|
+
visit internal_redirect_path
|
78
|
+
click_link "link_id"
|
79
|
+
assert_contain("Webrat Form")
|
80
|
+
end
|
81
|
+
|
82
|
+
test "should be able to assert xpath" do
|
83
|
+
visit root_path
|
84
|
+
assert_have_xpath "//h1"
|
85
|
+
end
|
86
|
+
|
87
|
+
test "should be able to assert selector" do
|
88
|
+
visit root_path
|
89
|
+
assert_have_selector "h1"
|
90
|
+
end
|
91
|
+
|
92
|
+
test "should accept an Object argument to #within and translate using dom_id" do
|
93
|
+
webrat.simulate do
|
94
|
+
visit within_path
|
95
|
+
|
96
|
+
object = Object.new
|
97
|
+
def object.id
|
98
|
+
nil
|
99
|
+
end
|
100
|
+
|
101
|
+
within(object) do
|
102
|
+
click_link "Edit Object"
|
103
|
+
end
|
104
|
+
|
105
|
+
assert_contain "Webrat Form"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
# Firefox detects and prevents infinite redirects under Selenium
|
110
|
+
unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
|
111
|
+
test "should detect infinite redirects" do
|
112
|
+
assert_raises Webrat::InfiniteRedirectError do
|
113
|
+
visit infinite_redirect_path
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
# test "should be able to assert have tag" do
|
119
|
+
# visit root_path
|
120
|
+
# assert_have_tag "h1"
|
121
|
+
# end
|
122
|
+
end
|
@@ -1,26 +1,26 @@
|
|
1
|
-
ENV["RAILS_ENV"] = "test"
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
3
|
-
require 'test_help'
|
4
|
-
|
5
|
-
# begin
|
6
|
-
# require "redgreen"
|
7
|
-
# rescue MissingSourceFile
|
8
|
-
# end
|
9
|
-
|
10
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
|
11
|
-
require "webrat"
|
12
|
-
|
13
|
-
Webrat.configure do |config|
|
14
|
-
config.mode = ENV['WEBRAT_INTEGRATION_MODE'].to_sym
|
15
|
-
end
|
16
|
-
|
17
|
-
ActionController::Base.class_eval do
|
18
|
-
def perform_action
|
19
|
-
perform_action_without_rescue
|
20
|
-
end
|
21
|
-
end
|
22
|
-
Dispatcher.class_eval do
|
23
|
-
def self.failsafe_response(output, status, exception = nil)
|
24
|
-
raise exception
|
25
|
-
end
|
26
|
-
end
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
3
|
+
require 'test_help'
|
4
|
+
|
5
|
+
# begin
|
6
|
+
# require "redgreen"
|
7
|
+
# rescue MissingSourceFile
|
8
|
+
# end
|
9
|
+
|
10
|
+
$LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
|
11
|
+
require "webrat"
|
12
|
+
|
13
|
+
Webrat.configure do |config|
|
14
|
+
config.mode = ENV['WEBRAT_INTEGRATION_MODE'].to_sym
|
15
|
+
end
|
16
|
+
|
17
|
+
ActionController::Base.class_eval do
|
18
|
+
def perform_action
|
19
|
+
perform_action_without_rescue
|
20
|
+
end
|
21
|
+
end
|
22
|
+
Dispatcher.class_eval do
|
23
|
+
def self.failsafe_response(output, status, exception = nil)
|
24
|
+
raise exception
|
25
|
+
end
|
26
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
require "rake/testtask"
|
2
|
-
|
3
|
-
Rake::TestTask.new do |t|
|
4
|
-
t.test_files = FileList["test/*_test.rb"]
|
5
|
-
end
|
1
|
+
require "rake/testtask"
|
2
|
+
|
3
|
+
Rake::TestTask.new do |t|
|
4
|
+
t.test_files = FileList["test/*_test.rb"]
|
5
|
+
end
|
@@ -1,64 +1,64 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
require "sinatra"
|
3
|
-
|
4
|
-
use_in_file_templates!
|
5
|
-
|
6
|
-
get "/" do
|
7
|
-
erb :home
|
8
|
-
end
|
9
|
-
|
10
|
-
get "/go" do
|
11
|
-
erb :go
|
12
|
-
end
|
13
|
-
|
14
|
-
get "/internal_redirect" do
|
15
|
-
redirect "/"
|
16
|
-
end
|
17
|
-
|
18
|
-
get "/external_redirect" do
|
19
|
-
redirect "http://google.com"
|
20
|
-
end
|
21
|
-
|
22
|
-
post "/go" do
|
23
|
-
@user = params[:name]
|
24
|
-
@email = params[:email]
|
25
|
-
erb :hello
|
26
|
-
end
|
27
|
-
|
28
|
-
__END__
|
29
|
-
|
30
|
-
@@ layout
|
31
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
32
|
-
<html>
|
33
|
-
<title>sinatra testing with webrat</title>
|
34
|
-
<body>
|
35
|
-
<%= yield %>
|
36
|
-
</body>
|
37
|
-
</html>
|
38
|
-
|
39
|
-
@@ home
|
40
|
-
<p> visit <a href="/go">there</a></p>
|
41
|
-
|
42
|
-
<form>
|
43
|
-
<label>
|
44
|
-
Prefilled
|
45
|
-
<input type="text" name="prefilled" value="text" />
|
46
|
-
</label>
|
47
|
-
</form>
|
48
|
-
|
49
|
-
@@ go
|
50
|
-
<form method="post" action="/go">
|
51
|
-
<div>
|
52
|
-
<label for="name">Name</label>
|
53
|
-
<input type="text" name="name" id="name">
|
54
|
-
</div>
|
55
|
-
<div>
|
56
|
-
<label for="email">Email</label>
|
57
|
-
<input type="text" name="email" id="email">
|
58
|
-
</div>
|
59
|
-
<input type="submit" value="Submit" />
|
60
|
-
</form>
|
61
|
-
|
62
|
-
@@ hello
|
63
|
-
<p>Hello, <%= @user %></p>
|
64
|
-
<p>Your email is: <%= @email %></p>
|
1
|
+
require "rubygems"
|
2
|
+
require "sinatra"
|
3
|
+
|
4
|
+
use_in_file_templates!
|
5
|
+
|
6
|
+
get "/" do
|
7
|
+
erb :home
|
8
|
+
end
|
9
|
+
|
10
|
+
get "/go" do
|
11
|
+
erb :go
|
12
|
+
end
|
13
|
+
|
14
|
+
get "/internal_redirect" do
|
15
|
+
redirect "/"
|
16
|
+
end
|
17
|
+
|
18
|
+
get "/external_redirect" do
|
19
|
+
redirect "http://google.com"
|
20
|
+
end
|
21
|
+
|
22
|
+
post "/go" do
|
23
|
+
@user = params[:name]
|
24
|
+
@email = params[:email]
|
25
|
+
erb :hello
|
26
|
+
end
|
27
|
+
|
28
|
+
__END__
|
29
|
+
|
30
|
+
@@ layout
|
31
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
32
|
+
<html>
|
33
|
+
<title>sinatra testing with webrat</title>
|
34
|
+
<body>
|
35
|
+
<%= yield %>
|
36
|
+
</body>
|
37
|
+
</html>
|
38
|
+
|
39
|
+
@@ home
|
40
|
+
<p> visit <a href="/go">there</a></p>
|
41
|
+
|
42
|
+
<form>
|
43
|
+
<label>
|
44
|
+
Prefilled
|
45
|
+
<input type="text" name="prefilled" value="text" />
|
46
|
+
</label>
|
47
|
+
</form>
|
48
|
+
|
49
|
+
@@ go
|
50
|
+
<form method="post" action="/go">
|
51
|
+
<div>
|
52
|
+
<label for="name">Name</label>
|
53
|
+
<input type="text" name="name" id="name">
|
54
|
+
</div>
|
55
|
+
<div>
|
56
|
+
<label for="email">Email</label>
|
57
|
+
<input type="text" name="email" id="email">
|
58
|
+
</div>
|
59
|
+
<input type="submit" value="Submit" />
|
60
|
+
</form>
|
61
|
+
|
62
|
+
@@ hello
|
63
|
+
<p>Hello, <%= @user %></p>
|
64
|
+
<p>Your email is: <%= @email %></p>
|
@@ -1,16 +1,16 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
require "sinatra/base"
|
3
|
-
|
4
|
-
class MyModularApp < Sinatra::Default
|
5
|
-
get "/" do
|
6
|
-
"Hello World"
|
7
|
-
end
|
8
|
-
|
9
|
-
get "/redirect_absolute_url" do
|
10
|
-
redirect URI.join(request.url, "foo").to_s
|
11
|
-
end
|
12
|
-
|
13
|
-
get "/foo" do
|
14
|
-
"spam"
|
15
|
-
end
|
16
|
-
end
|
1
|
+
require "rubygems"
|
2
|
+
require "sinatra/base"
|
3
|
+
|
4
|
+
class MyModularApp < Sinatra::Default
|
5
|
+
get "/" do
|
6
|
+
"Hello World"
|
7
|
+
end
|
8
|
+
|
9
|
+
get "/redirect_absolute_url" do
|
10
|
+
redirect URI.join(request.url, "foo").to_s
|
11
|
+
end
|
12
|
+
|
13
|
+
get "/foo" do
|
14
|
+
"spam"
|
15
|
+
end
|
16
|
+
end
|
@@ -1,37 +1,37 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/test_helper"
|
2
|
-
require File.dirname(__FILE__) + "/../classic_app"
|
3
|
-
|
4
|
-
class MyClassicAppTest < Test::Unit::TestCase
|
5
|
-
def test_visits_pages
|
6
|
-
visit "/"
|
7
|
-
assert response_body.include?("visit")
|
8
|
-
|
9
|
-
click_link "there"
|
10
|
-
assert response_body.include?('<form method="post" action="/go">')
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_submits_form
|
14
|
-
visit "/go"
|
15
|
-
fill_in "Name", :with => "World"
|
16
|
-
fill_in "Email", :with => "world@example.org"
|
17
|
-
click_button "Submit"
|
18
|
-
|
19
|
-
assert response_body.include?("Hello, World")
|
20
|
-
assert response_body.include?("Your email is: world@example.org")
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_check_value_of_field
|
24
|
-
visit "/"
|
25
|
-
assert field_labeled("Prefilled").value, "text"
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_follows_internal_redirects
|
29
|
-
visit "/internal_redirect"
|
30
|
-
assert response_body.include?("visit")
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_does_not_follow_external_redirects
|
34
|
-
visit "/external_redirect"
|
35
|
-
assert response_code == 302
|
36
|
-
end
|
37
|
-
end
|
1
|
+
require File.dirname(__FILE__) + "/test_helper"
|
2
|
+
require File.dirname(__FILE__) + "/../classic_app"
|
3
|
+
|
4
|
+
class MyClassicAppTest < Test::Unit::TestCase
|
5
|
+
def test_visits_pages
|
6
|
+
visit "/"
|
7
|
+
assert response_body.include?("visit")
|
8
|
+
|
9
|
+
click_link "there"
|
10
|
+
assert response_body.include?('<form method="post" action="/go">')
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_submits_form
|
14
|
+
visit "/go"
|
15
|
+
fill_in "Name", :with => "World"
|
16
|
+
fill_in "Email", :with => "world@example.org"
|
17
|
+
click_button "Submit"
|
18
|
+
|
19
|
+
assert response_body.include?("Hello, World")
|
20
|
+
assert response_body.include?("Your email is: world@example.org")
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_check_value_of_field
|
24
|
+
visit "/"
|
25
|
+
assert field_labeled("Prefilled").value, "text"
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_follows_internal_redirects
|
29
|
+
visit "/internal_redirect"
|
30
|
+
assert response_body.include?("visit")
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_does_not_follow_external_redirects
|
34
|
+
visit "/external_redirect"
|
35
|
+
assert response_code == 302
|
36
|
+
end
|
37
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/test_helper"
|
2
|
-
require File.dirname(__FILE__) + "/../modular_app"
|
3
|
-
|
4
|
-
class MyModularAppTest < Test::Unit::TestCase
|
5
|
-
def app
|
6
|
-
MyModularApp
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_it_works
|
10
|
-
visit "/"
|
11
|
-
assert_contain "Hello World"
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_redirects
|
15
|
-
visit "/redirect_absolute_url"
|
16
|
-
assert_equal "spam", response_body
|
17
|
-
end
|
18
|
-
end
|
1
|
+
require File.dirname(__FILE__) + "/test_helper"
|
2
|
+
require File.dirname(__FILE__) + "/../modular_app"
|
3
|
+
|
4
|
+
class MyModularAppTest < Test::Unit::TestCase
|
5
|
+
def app
|
6
|
+
MyModularApp
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_it_works
|
10
|
+
visit "/"
|
11
|
+
assert_contain "Hello World"
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_redirects
|
15
|
+
visit "/redirect_absolute_url"
|
16
|
+
assert_equal "spam", response_body
|
17
|
+
end
|
18
|
+
end
|
@@ -1,17 +1,17 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
require "test/unit"
|
3
|
-
# require "redgreen"
|
4
|
-
|
5
|
-
$LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
|
6
|
-
require "webrat"
|
7
|
-
|
8
|
-
Webrat.configure do |config|
|
9
|
-
config.mode = :sinatra
|
10
|
-
end
|
11
|
-
|
12
|
-
class Test::Unit::TestCase
|
13
|
-
include Webrat::Methods
|
14
|
-
include Webrat::Matchers
|
15
|
-
|
16
|
-
Webrat::Methods.delegate_to_session :response_code, :response_body
|
17
|
-
end
|
1
|
+
require "rubygems"
|
2
|
+
require "test/unit"
|
3
|
+
# require "redgreen"
|
4
|
+
|
5
|
+
$LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
|
6
|
+
require "webrat"
|
7
|
+
|
8
|
+
Webrat.configure do |config|
|
9
|
+
config.mode = :sinatra
|
10
|
+
end
|
11
|
+
|
12
|
+
class Test::Unit::TestCase
|
13
|
+
include Webrat::Methods
|
14
|
+
include Webrat::Matchers
|
15
|
+
|
16
|
+
Webrat::Methods.delegate_to_session :response_code, :response_body
|
17
|
+
end
|