require File.expand_path(File.join('test', 'test_helper'))
# The Markaby Rails tests themselves.
class MarkabyControllerTest < Test::Unit::TestCase
include ActionController::TestProcess
include ActionController::TestCase::Assertions
include ActionController::Assertions::ResponseAssertions
def setup
@controller = MarkabyController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@expected_monkey_names = '
'
end
def test_index
get :index
assert_response :success
assert_template 'markaby/index'
assert_equal @expected_monkey_names, @response.body
end
def test_partial_rendering
Markaby::Builder.set :indent, 2
process :partial_rendering
expected_html = File.read(File.join(File.dirname(__FILE__), 'monkeys.html'))
assert_response :success
assert_template 'markaby/_monkeys'
assert_equal expected_html, @response.body
# From actionpack/lib/action_view/base.rb:
# String keys are deprecated and will be removed shortly.
#
assert_raise ActionView::TemplateError do
process :partial_rendering_with_stringy_keys_in_local_assigns
end
end
def test_inline_helper_rendering
process :inline_helper_rendering
assert_response :success
assert_equal @expected_monkey_names, @response.body
end
def test_basic_inline_rendering
process :basic_inline_rendering
assert_response :success
assert_equal @expected_monkey_names, @response.body
end
def test_flash_and_form_tag
process :create
assert_response :success
assert_select 'form div input[type=submit]', 1
assert_select 'p', 'Hello World'
end
def test_multiple_form_tags
process :multiple_forms
assert_response :success
assert_select 'form[id=monkeys]', 1
assert_select 'form[id=bananas]', 1
end
def test_template_error_has_correct_line_number
begin
process :broken
rescue ActionView::TemplateError => error
assert_equal 5, error.line_number.to_i
end
end
end