spec/integration/rack/test/webrat_rack_test.rb in davidtrogers-webrat-0.4.4.2 vs spec/integration/rack/test/webrat_rack_test.rb in davidtrogers-webrat-0.7.0

- old
+ new

@@ -1,67 +1,73 @@ -require File.dirname(__FILE__) + "/test_helper" -require File.dirname(__FILE__) + "/../rack_app" +require File.dirname(__FILE__) + "/helper" class WebratRackTest < Test::Unit::TestCase - def test_visit_returns_response - response = visit "/" - assert response.ok? + include Rack::Test::Methods + include Webrat::Methods + include Webrat::Matchers + include Webrat::HaveTagMatcher + + def build_rack_mock_session + Rack::MockSession.new(app, "www.example.com") end - def test_last_response_is_available - visit "/" - assert last_response.ok? + def test_visits_pages + visit "/" + click_link "there" + + assert_have_tag("form[@method='post'][@action='/go']") end - def test_last_request_is_available + def test_submits_form + visit "/go" + fill_in "Name", :with => "World" + fill_in "Email", :with => "world@example.org" + click_button "Submit" + + assert_contain "Hello, World" + assert_contain "Your email is: world@example.org" + end + + def test_check_value_of_field visit "/" - assert_equal "/", last_request.env["PATH_INFO"] + assert_equal field_labeled("Prefilled").value, "text" end - def test_redirects - visit "/redirect_absolute_url" - assert_equal "spam", response_body + def test_follows_internal_redirects + visit "/internal_redirect" + assert_contain "visit" end - def test_assertions_after_visit - visit "/" - assert_contain "Hello World" + def test_does_not_follow_external_redirects + visit "/external_redirect" + assert last_response.redirect? end - def test_assertions_after_visit - get "/" - assert_contain "Hello World" + def test_absolute_url_redirect + visit "/absolute_redirect" + assert_contain "spam" end - # def test_visits_pages - # visit "/" - # assert response_body.include?("visit") - # - # click_link "there" - # assert response_body.include?('<form method="post" action="/go">') - # end - # - # def test_submits_form - # visit "/go" - # fill_in "Name", :with => "World" - # fill_in "Email", :with => "world@example.org" - # click_button "Submit" - # - # assert response_body.include?("Hello, World") - # assert response_body.include?("Your email is: world@example.org") - # end - # - # def test_check_value_of_field - # visit "/" - # assert field_labeled("Prefilled").value, "text" - # end - # - # def test_follows_internal_redirects - # visit "/internal_redirect" - # assert response_body.include?("visit") - # end - # - # def test_does_not_follow_external_redirects - # visit "/external_redirect" - # assert response_code == 302 - # end + def test_upload_file + visit "/upload" + attach_file "File", __FILE__, "text/ruby" + click_button "Upload" + + upload = YAML.load(response_body) + assert_equal "text/ruby", upload[:type] + assert_equal "webrat_rack_test.rb", upload[:filename] + assert upload[:tempfile].respond_to?(:read) + end +end + +class WebratRackSetupTest < Test::Unit::TestCase + def test_usable_without_mixin + rack_test_session = Rack::Test::Session.new(Rack::MockSession.new(app)) + adapter = Webrat::RackAdapter.new(rack_test_session) + session = Webrat::Session.new(adapter) + + session.visit "/foo" + + assert_equal "spam", session.response_body + assert_equal "spam", rack_test_session.last_response.body + end end