Sha256: ce4fffda2bb8e287c639b8329d1d406bc25e86d44b505c28b8af008fab9426be

Contents?: true

Size: 1.8 KB

Versions: 2

Compression:

Stored size: 1.8 KB

Contents

require "rubygems"
require File.dirname(__FILE__) + "/helper"

class WebratRackTest < Test::Unit::TestCase
  include Rack::Test::Methods
  include Webrat::Methods
  include Webrat::Matchers
  include Webrat::HaveTagMatcher

  def build_rack_mock_session
    Rack::MockSession.new(app, "example.net")
  end

  def test_visits_pages
     visit "/"
     click_link "there"

     assert_have_tag("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_contain "Hello, World"
    assert_contain "Your email is: world@example.org"
  end

  def test_check_value_of_field
    visit "/"
    assert_equal field_labeled("Prefilled").value, "text"
  end

  def test_follows_internal_redirects
    visit "/internal_redirect"
    assert_contain "visit"
  end

  def test_does_not_follow_external_redirects
    visit "/external_redirect"
    assert last_response.redirect?
  end

  def test_absolute_url_redirect
    visit "/absolute_redirect"
    assert_contain "spam"
  end

  def test_upload_file
    visit "/upload"
    attach_file "File", __FILE__, "text/ruby"
    click_button "Upload"

    upload = Marshal.load(response_body)
    assert_equal "text/ruby", upload[:type]
    assert_equal "webrat_rack_test.rb", upload[:filename]
    assert_equal File.read(__FILE__), upload[:tempfile]
  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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
indirect-webrat-0.7.5 spec/integration/rack/test/webrat_rack_test.rb
indirect-webrat-0.7.4 spec/integration/rack/test/webrat_rack_test.rb