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