module RenderTestCases

Constants

CustomHandler

Public Instance Methods

combined_fragment_cache_key(key) click to toggle source
# File actionview/test/template/render_test.rb, line 15
def combined_fragment_cache_key(key)
  [ :views, key ]
end
setup_view(paths) click to toggle source
# File actionview/test/template/render_test.rb, line 10
def setup_view(paths)
  @assigns = { secret: "in the sauce" }
  @view = Class.new(ActionView::Base) do
    def view_cache_dependencies; end

    def combined_fragment_cache_key(key)
      [ :views, key ]
    end
  end.new(paths, @assigns)

  @controller_view = TestController.new.view_context

  # Reload and register danish language for testing
  I18n.backend.store_translations "da", {}
  I18n.backend.store_translations "pt-BR", {}

  # Ensure original are still the same since we are reindexing view paths
  assert_equal ORIGINAL_LOCALES, I18n.available_locales.map(&:to_s).sort
end
test_render_body() click to toggle source
# File actionview/test/template/render_test.rb, line 469
def test_render_body
  assert_equal "some body", @view.render(body: "some body")
end
test_render_does_not_use_unregistered_extension_and_template_handler() click to toggle source
# File actionview/test/template/render_test.rb, line 485
def test_render_does_not_use_unregistered_extension_and_template_handler
  ActionView::Template.register_template_handler :foo, CustomHandler
  ActionView::Template.unregister_template_handler :foo
  assert_not ActionView::Template::Handlers.extensions.include?(:foo)
  assert_equal "Hello, World!", @view.render(inline: "Hello, World!", type: :foo)
ensure
  ActionView::Template::Handlers.class_variable_get(:@@template_handlers).delete(:foo)
end
test_render_error_indentation() click to toggle source
# File actionview/test/template/render_test.rb, line 254
def test_render_error_indentation
  e = assert_raises(ActionView::Template::Error) { @view.render(partial: "test/raise_indentation") }
  error_lines = e.annoted_source_code
  assert_match %r!error\shere!, e.message
  assert_equal "11", e.line_number
  assert_equal "     9: <p>Ninth paragraph</p>", error_lines.second
  assert_equal "    10: <p>Tenth paragraph</p>", error_lines.third
end
test_render_fallbacks_to_erb_for_unknown_types() click to toggle source
# File actionview/test/template/render_test.rb, line 439
def test_render_fallbacks_to_erb_for_unknown_types
  assert_equal "Hello, World!", @view.render(inline: "Hello, World!", type: :bar)
end
test_render_file() click to toggle source
# File actionview/test/template/render_test.rb, line 35
def test_render_file
  assert_equal "Hello world!", @view.render(file: "test/hello_world")
end
test_render_file_at_top_level() click to toggle source
# File actionview/test/template/render_test.rb, line 138
def test_render_file_at_top_level
  assert_equal "Elastica", @view.render(file: "/shared")
end
test_render_file_not_using_full_path_with_dot_in_path() click to toggle source
# File actionview/test/template/render_test.rb, line 156
def test_render_file_not_using_full_path_with_dot_in_path
  assert_equal "The secret is in the sauce\n", @view.render(file: "test/dot.directory/render_file_with_ivar")
end
test_render_file_with_dashed_locale() click to toggle source
# File actionview/test/template/render_test.rb, line 131
def test_render_file_with_dashed_locale
  old_locale, @view.locale = @view.locale, :"pt-BR"
  assert_equal "Ola mundo", @view.render(file: "test/hello_world")
ensure
  @view.locale = old_locale
end
test_render_file_with_errors() click to toggle source
# File actionview/test/template/render_test.rb, line 271
def test_render_file_with_errors
  e = assert_raises(ActionView::Template::Error) { @view.render(file: File.expand_path("test/_raise", FIXTURE_LOAD_PATH)) }
  assert_match %r!method.*doesnt_exist!, e.message
  assert_equal "", e.sub_template_message
  assert_equal "1", e.line_number
  assert_equal "1: <%= doesnt_exist %>", e.annoted_source_code[0].strip
  assert_equal File.expand_path("#{FIXTURE_LOAD_PATH}/test/_raise.html.erb"), e.file_name
end
test_render_file_with_format() click to toggle source

Test if :formats, :locale etc. options are passed correctly to the resolvers.

# File actionview/test/template/render_test.rb, line 40
def test_render_file_with_format
  assert_match "<h1>No Comment</h1>", @view.render(file: "comments/empty", formats: [:html])
  assert_match "<error>No Comment</error>", @view.render(file: "comments/empty", formats: [:xml])
  assert_match "<error>No Comment</error>", @view.render(file: "comments/empty", formats: :xml)
end
test_render_file_with_full_path() click to toggle source
# File actionview/test/template/render_test.rb, line 142
def test_render_file_with_full_path
  template_path = File.expand_path("../fixtures/test/hello_world", __dir__)
  assert_equal "Hello world!", @view.render(file: template_path)
end
test_render_file_with_handlers() click to toggle source
# File actionview/test/template/render_test.rb, line 92
def test_render_file_with_handlers
  assert_equal "<h1>No Comment</h1>\n", @view.render(file: "comments/empty", handlers: [:builder])
  assert_equal "<h1>No Comment</h1>\n", @view.render(file: "comments/empty", handlers: :builder)
end
test_render_file_with_instance_variables() click to toggle source
# File actionview/test/template/render_test.rb, line 147
def test_render_file_with_instance_variables
  assert_equal "The secret is in the sauce\n", @view.render(file: "test/render_file_with_ivar")
end
test_render_file_with_locale() click to toggle source
# File actionview/test/template/render_test.rb, line 79
def test_render_file_with_locale
  assert_equal "<h1>Kein Kommentar</h1>", @view.render(file: "comments/empty", locale: [:de])
  assert_equal "<h1>Kein Kommentar</h1>", @view.render(file: "comments/empty", locale: :de)
end
test_render_file_with_localization_on_context_level() click to toggle source
# File actionview/test/template/render_test.rb, line 124
def test_render_file_with_localization_on_context_level
  old_locale, @view.locale = @view.locale, :da
  assert_equal "Hey verden", @view.render(file: "test/hello_world")
ensure
  @view.locale = old_locale
end
test_render_file_with_locals() click to toggle source
# File actionview/test/template/render_test.rb, line 151
def test_render_file_with_locals
  locals = { secret: "in the sauce" }
  assert_equal "The secret is in the sauce\n", @view.render(file: "test/render_file_with_locals", locals: locals)
end
test_render_ignores_templates_with_malformed_template_handlers() click to toggle source
# File actionview/test/template/render_test.rb, line 494
def test_render_ignores_templates_with_malformed_template_handlers
  %w(malformed malformed.erb malformed.html.erb malformed.en.html.erb).each do |name|
    assert File.exist?(File.expand_path("#{FIXTURE_LOAD_PATH}/test/malformed/#{name}~")), "Malformed file (#{name}~) which should be ignored does not exists"
    assert_raises(ActionView::MissingTemplate) { @view.render(file: "test/malformed/#{name}") }
  end
end
test_render_inline() click to toggle source
# File actionview/test/template/render_test.rb, line 431
def test_render_inline
  assert_equal "Hello, World!", @view.render(inline: "Hello, World!")
end
test_render_inline_with_compilable_custom_type() click to toggle source
# File actionview/test/template/render_test.rb, line 455
def test_render_inline_with_compilable_custom_type
  ActionView::Template.register_template_handler :foo, CustomHandler
  assert_equal 'source: "Hello, World!"', @view.render(inline: "Hello, World!", type: :foo)
ensure
  ActionView::Template.unregister_template_handler :foo
end
test_render_inline_with_locals() click to toggle source
# File actionview/test/template/render_test.rb, line 435
def test_render_inline_with_locals
  assert_equal "Hello, Josh!", @view.render(inline: "Hello, <%= name %>!", locals: { name: "Josh" })
end
test_render_inline_with_locals_and_compilable_custom_type() click to toggle source
# File actionview/test/template/render_test.rb, line 462
def test_render_inline_with_locals_and_compilable_custom_type
  ActionView::Template.register_template_handler :foo, CustomHandler
  assert_equal 'source: "Hello, <%= name %>!"', @view.render(inline: "Hello, <%= name %>!", locals: { name: "Josh" }, type: :foo)
ensure
  ActionView::Template.unregister_template_handler :foo
end
test_render_inline_with_render_from_to_proc() click to toggle source
# File actionview/test/template/render_test.rb, line 448
def test_render_inline_with_render_from_to_proc
  ActionView::Template.register_template_handler :ruby_handler, :source.to_proc
  assert_equal "3", @view.render(inline: "(1 + 2).to_s", type: :ruby_handler)
ensure
  ActionView::Template.unregister_template_handler :ruby_handler
end
test_render_knows_about_types_registered_when_extensions_are_checked_earlier_in_initialization() click to toggle source
# File actionview/test/template/render_test.rb, line 477
def test_render_knows_about_types_registered_when_extensions_are_checked_earlier_in_initialization
  ActionView::Template::Handlers.extensions
  ActionView::Template.register_template_handler :foo, CustomHandler
  assert_includes ActionView::Template::Handlers.extensions, :foo
ensure
  ActionView::Template.unregister_template_handler :foo
end
test_render_layout_with_a_nested_render_layout_call() click to toggle source
# File actionview/test/template/render_test.rb, line 551
def test_render_layout_with_a_nested_render_layout_call
  assert_equal %(Before (Foo!)\nBefore (Bar!)\npartial html\nAfter\npartial with layout\n\nAfter),
    @view.render(partial: "test/partial_with_layout", layout: "test/layout_for_partial", locals: { name: "Foo!" })
end
test_render_layout_with_a_nested_render_layout_call_using_block_with_render_content() click to toggle source
# File actionview/test/template/render_test.rb, line 561
def test_render_layout_with_a_nested_render_layout_call_using_block_with_render_content
  assert_equal %(Before (Foo!)\nBefore (Bar!)\n\n  Content from inside layout!\n\nAfterpartial with layout\n\nAfter),
    @view.render(partial: "test/partial_with_layout_block_content", layout: "test/layout_for_partial", locals: { name: "Foo!" })
end
test_render_layout_with_a_nested_render_layout_call_using_block_with_render_partial() click to toggle source
# File actionview/test/template/render_test.rb, line 556
def test_render_layout_with_a_nested_render_layout_call_using_block_with_render_partial
  assert_equal %(Before (Foo!)\nBefore (Bar!)\n\n  partial html\n\nAfterpartial with layout\n\nAfter),
    @view.render(partial: "test/partial_with_layout_block_partial", layout: "test/layout_for_partial", locals: { name: "Foo!" })
end
test_render_layout_with_block_and_other_partial_inside() click to toggle source
# File actionview/test/template/render_test.rb, line 426
def test_render_layout_with_block_and_other_partial_inside
  render = @view.render(layout: "test/layout_with_partial_and_yield") { "Yield!" }
  assert_equal "Before\npartial html\nYield!\nAfter\n", render
end
test_render_layout_with_block_and_yield() click to toggle source
# File actionview/test/template/render_test.rb, line 521
def test_render_layout_with_block_and_yield
  assert_equal %(Content from block!\n),
    @view.render(layout: "layouts/yield_only") { "Content from block!" }
end
test_render_layout_with_block_and_yield_with_params() click to toggle source
# File actionview/test/template/render_test.rb, line 526
def test_render_layout_with_block_and_yield_with_params
  assert_equal %(Yield! Content from block!\n),
    @view.render(layout: "layouts/yield_with_params") { |param| "#{param} Content from block!" }
end
test_render_layout_with_block_which_renders_another_partial_and_yields() click to toggle source
# File actionview/test/template/render_test.rb, line 531
def test_render_layout_with_block_which_renders_another_partial_and_yields
  assert_equal %(partial html\nContent from block!\n),
    @view.render(layout: "layouts/partial_and_yield") { "Content from block!" }
end
test_render_layout_with_object() click to toggle source
# File actionview/test/template/render_test.rb, line 581
def test_render_layout_with_object
  assert_equal %(<title>David</title>),
    @view.render(file: "test/layout_render_object")
end
test_render_object() click to toggle source
# File actionview/test/template/render_test.rb, line 280
def test_render_object
  assert_equal "Hello: david", @view.render(partial: "test/customer", object: Customer.new("david"))
  assert_equal "FalseClass", @view.render(partial: "test/klass", object: false)
  assert_equal "NilClass", @view.render(partial: "test/klass", object: nil)
end
test_render_object_with_array() click to toggle source
# File actionview/test/template/render_test.rb, line 286
def test_render_object_with_array
  assert_equal "[1, 2, 3]", @view.render(partial: "test/object_inspector", object: [1, 2, 3])
end
test_render_outside_path() click to toggle source
# File actionview/test/template/render_test.rb, line 164
def test_render_outside_path
  assert File.exist?(File.expand_path("../../test/abstract_unit.rb", __dir__))
  assert_raises ActionView::MissingTemplate do
    @view.render(template: "../\\../test/abstract_unit.rb")
  end
end
test_render_partial() click to toggle source
# File actionview/test/template/render_test.rb, line 171
def test_render_partial
  assert_equal "only partial", @view.render(partial: "test/partial_only")
end
test_render_partial_and_layout_without_block_with_locals() click to toggle source
# File actionview/test/template/render_test.rb, line 536
def test_render_partial_and_layout_without_block_with_locals
  assert_equal %(Before (Foo!)\npartial html\nAfter),
    @view.render(partial: "test/partial", layout: "test/layout_for_partial", locals: { name: "Foo!" })
end
test_render_partial_and_layout_without_block_with_locals_and_rendering_another_partial() click to toggle source
# File actionview/test/template/render_test.rb, line 541
def test_render_partial_and_layout_without_block_with_locals_and_rendering_another_partial
  assert_equal %(Before (Foo!)\npartial html\npartial with partial\n\nAfter),
    @view.render(partial: "test/partial_with_partial", layout: "test/layout_for_partial", locals: { name: "Foo!" })
end
test_render_partial_at_top_level() click to toggle source
# File actionview/test/template/render_test.rb, line 188
def test_render_partial_at_top_level
  # file fixtures/_top_level_partial_only (not fixtures/test)
  assert_equal "top level partial", @view.render(partial: "/top_level_partial_only")
end
test_render_partial_collection() click to toggle source
# File actionview/test/template/render_test.rb, line 290
def test_render_partial_collection
  assert_equal "Hello: davidHello: mary", @view.render(partial: "test/customer", collection: [ Customer.new("david"), Customer.new("mary") ])
end
test_render_partial_collection_as_by_string() click to toggle source
# File actionview/test/template/render_test.rb, line 299
def test_render_partial_collection_as_by_string
  assert_equal "david david davidmary mary mary",
    @view.render(partial: "test/customer_with_var", collection: [ Customer.new("david"), Customer.new("mary") ], as: "customer")
end
test_render_partial_collection_as_by_symbol() click to toggle source
# File actionview/test/template/render_test.rb, line 304
def test_render_partial_collection_as_by_symbol
  assert_equal "david david davidmary mary mary",
    @view.render(partial: "test/customer_with_var", collection: [ Customer.new("david"), Customer.new("mary") ], as: :customer)
end
test_render_partial_collection_for_non_array() click to toggle source
# File actionview/test/template/render_test.rb, line 331
def test_render_partial_collection_for_non_array
  customers = Enumerator.new do |y|
    y.yield(Customer.new("david"))
    y.yield(Customer.new("mary"))
  end
  assert_equal "Hello: davidHello: mary", @view.render(partial: "test/customer", collection: customers)
end
test_render_partial_collection_with_different_partials_still_provides_partial_iteration() click to toggle source
# File actionview/test/template/render_test.rb, line 314
def test_render_partial_collection_with_different_partials_still_provides_partial_iteration
  a = {}
  b = {}
  def a.to_partial_path; "test/partial_iteration_1"; end
  def b.to_partial_path; "test/partial_iteration_2"; end

  assert_equal "local-variable\nlocal-variable", @controller_view.render([a, b])
end
test_render_partial_collection_with_partial_name_containing_dot() click to toggle source
# File actionview/test/template/render_test.rb, line 294
def test_render_partial_collection_with_partial_name_containing_dot
  assert_equal "Hello: davidHello: mary",
    @view.render(partial: "test/customer.mobile", collection: [ Customer.new("david"), Customer.new("mary") ])
end
test_render_partial_collection_without_as() click to toggle source
# File actionview/test/template/render_test.rb, line 309
def test_render_partial_collection_without_as
  assert_equal "local_inspector,local_inspector_counter,local_inspector_iteration",
    @view.render(partial: "test/local_inspector", collection: [ Customer.new("mary") ])
end
test_render_partial_from_default() click to toggle source
# File actionview/test/template/render_test.rb, line 160
def test_render_partial_from_default
  assert_equal "only partial", @view.render("test/partial_only")
end
test_render_partial_implicitly_use_format_of_the_rendered_partial() click to toggle source
# File actionview/test/template/render_test.rb, line 61
def test_render_partial_implicitly_use_format_of_the_rendered_partial
  @view.lookup_context.formats = [:html]
  assert_equal "Third level", @view.render(template: "test/html_template")
end
test_render_partial_implicitly_use_format_of_the_rendered_template() click to toggle source
# File actionview/test/template/render_test.rb, line 56
def test_render_partial_implicitly_use_format_of_the_rendered_template
  @view.lookup_context.formats = [:json]
  assert_equal "Hello world", @view.render(template: "test/one", formats: [:html])
end
test_render_partial_shortcut_with_block_content() click to toggle source
# File actionview/test/template/render_test.rb, line 546
def test_render_partial_shortcut_with_block_content
  assert_equal %(Before (shortcut test)\nBefore\n\n  Yielded: arg1/arg2\n\nAfter\nAfter),
    @view.render(partial: "test/partial_shortcut_with_block_content", layout: "test/layout_for_partial", locals: { name: "shortcut test" })
end
test_render_partial_starting_with_a_capital() click to toggle source
# File actionview/test/template/render_test.rb, line 219
def test_render_partial_starting_with_a_capital
  assert_nothing_raised { @view.render(partial: "test/FooBar") }
end
test_render_partial_use_last_prepended_format_for_partials_with_the_same_names() click to toggle source
# File actionview/test/template/render_test.rb, line 66
def test_render_partial_use_last_prepended_format_for_partials_with_the_same_names
  @view.lookup_context.formats = [:html]
  assert_equal "\nHTML Template, but JSON partial", @view.render(template: "test/change_priority")
end
test_render_partial_using_collection() click to toggle source
# File actionview/test/template/render_test.rb, line 397
def test_render_partial_using_collection
  customers = [ Customer.new("Amazon"), Customer.new("Yahoo") ]
  assert_equal "Hello: AmazonHello: Yahoo",
    @controller_view.render(customers, greeting: "Hello")
end
test_render_partial_using_collection_without_path() click to toggle source
# File actionview/test/template/render_test.rb, line 403
def test_render_partial_using_collection_without_path
  assert_equal "hi good customer: david0", @controller_view.render([ GoodCustomer.new("david") ], greeting: "hi")
end
test_render_partial_using_object() click to toggle source
# File actionview/test/template/render_test.rb, line 392
def test_render_partial_using_object
  assert_equal "Hello: lifo",
    @controller_view.render(Customer.new("lifo"), greeting: "Hello")
end
test_render_partial_using_string() click to toggle source
# File actionview/test/template/render_test.rb, line 374
def test_render_partial_using_string
  assert_equal "Hello: Anonymous", @controller_view.render("customer")
end
test_render_partial_with_empty_array_should_return_nil() click to toggle source
# File actionview/test/template/render_test.rb, line 370
def test_render_partial_with_empty_array_should_return_nil
  assert_nil @view.render(partial: [])
end
test_render_partial_with_empty_collection_should_return_nil() click to toggle source
# File actionview/test/template/render_test.rb, line 323
def test_render_partial_with_empty_collection_should_return_nil
  assert_nil @view.render(partial: "test/customer", collection: [])
end
test_render_partial_with_errors() click to toggle source
# File actionview/test/template/render_test.rb, line 245
def test_render_partial_with_errors
  e = assert_raises(ActionView::Template::Error) { @view.render(partial: "test/raise") }
  assert_match %r!method.*doesnt_exist!, e.message
  assert_equal "", e.sub_template_message
  assert_equal "1", e.line_number
  assert_equal "1: <%= doesnt_exist %>", e.annoted_source_code[0].strip
  assert_equal File.expand_path("#{FIXTURE_LOAD_PATH}/test/_raise.html.erb"), e.file_name
end
test_render_partial_with_format() click to toggle source
# File actionview/test/template/render_test.rb, line 175
def test_render_partial_with_format
  assert_equal "partial html", @view.render(partial: "test/partial")
end
test_render_partial_with_format_at_top_level() click to toggle source
# File actionview/test/template/render_test.rb, line 193
def test_render_partial_with_format_at_top_level
  # file fixtures/_top_level_partial.html (not fixtures/test, with format extension)
  assert_equal "top level partial html", @view.render(partial: "/top_level_partial")
end
test_render_partial_with_html_only_extension() click to toggle source
# File actionview/test/template/render_test.rb, line 516
def test_render_partial_with_html_only_extension
  assert_equal %(<h1>partial html</h1>\nHello world!\n),
    @view.render(file: "test/hello_world", layout: "layouts/render_partial_html")
end
test_render_partial_with_hyphen() click to toggle source
# File actionview/test/template/render_test.rb, line 223
def test_render_partial_with_hyphen
  assert_nothing_raised { @view.render(partial: "test/a-in") }
end
test_render_partial_with_hyphen_and_invalid_option_as() click to toggle source
# File actionview/test/template/render_test.rb, line 238
def test_render_partial_with_hyphen_and_invalid_option_as
  e = assert_raises(ArgumentError) { @view.render(partial: "test/a-in", as: "a-in") }
  assert_equal "The value (a-in) of the option `as` is not a valid Ruby identifier; " \
    "make sure it starts with lowercase letter, " \
    "and is followed by any combination of letters, numbers and underscores.", e.message
end
test_render_partial_with_incompatible_object() click to toggle source
# File actionview/test/template/render_test.rb, line 214
def test_render_partial_with_incompatible_object
  e = assert_raises(ArgumentError) { @view.render(partial: nil) }
  assert_equal "'#{nil.inspect}' is not an ActiveModel-compatible object. It must implement :to_partial_path.", e.message
end
test_render_partial_with_invalid_option_as() click to toggle source
# File actionview/test/template/render_test.rb, line 231
def test_render_partial_with_invalid_option_as
  e = assert_raises(ArgumentError) { @view.render(partial: "test/partial_only", as: "a-in") }
  assert_equal "The value (a-in) of the option `as` is not a valid Ruby identifier; " \
    "make sure it starts with lowercase letter, " \
    "and is followed by any combination of letters, numbers and underscores.", e.message
end
test_render_partial_with_layout_raises_descriptive_error() click to toggle source
# File actionview/test/template/render_test.rb, line 566
def test_render_partial_with_layout_raises_descriptive_error
  e = assert_raises(ActionView::MissingTemplate) { @view.render(partial: "test/partial", layout: true) }
  assert_match "Missing partial /_true with", e.message
end
test_render_partial_with_layout_using_collection_and_template() click to toggle source
# File actionview/test/template/render_test.rb, line 351
def test_render_partial_with_layout_using_collection_and_template
  assert_equal "<b>Hello: Amazon</b><b>Hello: Yahoo</b>", @view.render(partial: "test/customer", layout: "test/b_layout_for_partial", collection: [ Customer.new("Amazon"), Customer.new("Yahoo") ])
end
test_render_partial_with_layout_using_collection_and_template_makes_current_item_available_in_layout() click to toggle source
# File actionview/test/template/render_test.rb, line 355
def test_render_partial_with_layout_using_collection_and_template_makes_current_item_available_in_layout
  assert_equal '<b class="amazon">Hello: Amazon</b><b class="yahoo">Hello: Yahoo</b>',
    @view.render(partial: "test/customer", layout: "test/b_layout_for_partial_with_object", collection: [ Customer.new("Amazon"), Customer.new("Yahoo") ])
end
test_render_partial_with_layout_using_collection_and_template_makes_current_item_counter_available_in_layout() click to toggle source
# File actionview/test/template/render_test.rb, line 360
def test_render_partial_with_layout_using_collection_and_template_makes_current_item_counter_available_in_layout
  assert_equal '<b data-counter="0">Hello: Amazon</b><b data-counter="1">Hello: Yahoo</b>',
    @view.render(partial: "test/customer", layout: "test/b_layout_for_partial_with_object_counter", collection: [ Customer.new("Amazon"), Customer.new("Yahoo") ])
end
test_render_partial_with_layout_using_object_and_template_makes_object_available_in_layout() click to toggle source
# File actionview/test/template/render_test.rb, line 365
def test_render_partial_with_layout_using_object_and_template_makes_object_available_in_layout
  assert_equal '<b class="amazon">Hello: Amazon</b>',
    @view.render(partial: "test/customer", layout: "test/b_layout_for_partial_with_object", object: Customer.new("Amazon"))
end
test_render_partial_with_locals() click to toggle source
# File actionview/test/template/render_test.rb, line 198
def test_render_partial_with_locals
  assert_equal "5", @view.render(partial: "test/counter", locals: { counter_counter: 5 })
end
test_render_partial_with_locals_from_default() click to toggle source
# File actionview/test/template/render_test.rb, line 202
def test_render_partial_with_locals_from_default
  assert_equal "only partial", @view.render("test/partial_only", counter_counter: 5)
end
test_render_partial_with_locals_using_string() click to toggle source
# File actionview/test/template/render_test.rb, line 378
def test_render_partial_with_locals_using_string
  assert_equal "Hola: david", @controller_view.render("customer_greeting", greeting: "Hola", customer_greeting: Customer.new("david"))
end
test_render_partial_with_missing_filename() click to toggle source
# File actionview/test/template/render_test.rb, line 210
def test_render_partial_with_missing_filename
  assert_raises(ActionView::MissingTemplate) { @view.render(partial: "test/") }
end
test_render_partial_with_nil_collection_should_return_nil() click to toggle source
# File actionview/test/template/render_test.rb, line 327
def test_render_partial_with_nil_collection_should_return_nil
  assert_nil @view.render(partial: "test/customer", collection: nil)
end
test_render_partial_with_nil_object_puts_partial_name_to_local_assigns() click to toggle source
# File actionview/test/template/render_test.rb, line 343
def test_render_partial_with_nil_object_puts_partial_name_to_local_assigns
  assert_equal "true", @view.render(partial: "test/partial_name_in_local_assigns", object: nil)
end
test_render_partial_with_nil_values_in_collection() click to toggle source
# File actionview/test/template/render_test.rb, line 347
def test_render_partial_with_nil_values_in_collection
  assert_equal "Hello: davidHello: Anonymous", @view.render(partial: "test/customer", collection: [ Customer.new("david"), nil ])
end
test_render_partial_with_no_block_given_to_yield() click to toggle source
# File actionview/test/template/render_test.rb, line 415
def test_render_partial_with_no_block_given_to_yield
  assert_equal "Before (Josh)\n\nAfter", @view.render(partial: "test/layout_for_partial", locals: { name: "Josh" })
end
test_render_partial_with_non_existent_format_and_raise_missing_template() click to toggle source
# File actionview/test/template/render_test.rb, line 419
def test_render_partial_with_non_existent_format_and_raise_missing_template
  @view.formats = [:xml]
  assert_raises(ActionView::MissingTemplate) { @view.render(partial: "test/layout_for_partial") }
ensure
  @view.formats = nil
end
test_render_partial_with_number() click to toggle source
# File actionview/test/template/render_test.rb, line 206
def test_render_partial_with_number
  assert_nothing_raised { @view.render(partial: "test/200") }
end
test_render_partial_with_object_and_format_uses_render_partial_path() click to toggle source
# File actionview/test/template/render_test.rb, line 387
def test_render_partial_with_object_and_format_uses_render_partial_path
  assert_equal "<greeting>Hello</greeting><name>lifo</name>",
    @controller_view.render(partial: Customer.new("lifo"), formats: :xml, locals: { greeting: "Hello" })
end
test_render_partial_with_object_uses_render_partial_path() click to toggle source
# File actionview/test/template/render_test.rb, line 382
def test_render_partial_with_object_uses_render_partial_path
  assert_equal "Hello: lifo",
    @controller_view.render(partial: Customer.new("lifo"), locals: { greeting: "Hello" })
end
test_render_partial_with_selected_format() click to toggle source
# File actionview/test/template/render_test.rb, line 183
def test_render_partial_with_selected_format
  assert_equal "partial html", @view.render(partial: "test/partial", formats: :html)
  assert_equal "partial js", @view.render(partial: "test/partial", formats: [:js])
end
test_render_partial_with_unicode_text() click to toggle source
# File actionview/test/template/render_test.rb, line 227
def test_render_partial_with_unicode_text
  assert_nothing_raised { @view.render(partial: "test/🍣") }
end
test_render_partial_with_variants() click to toggle source
# File actionview/test/template/render_test.rb, line 179
def test_render_partial_with_variants
  assert_equal "<h1>Partial with variants</h1>\n", @view.render(partial: "test/partial_with_variants", variants: :grid)
end
test_render_partial_without_object_does_not_put_partial_name_to_local_assigns() click to toggle source
# File actionview/test/template/render_test.rb, line 339
def test_render_partial_without_object_does_not_put_partial_name_to_local_assigns
  assert_equal "false", @view.render(partial: "test/partial_name_in_local_assigns")
end
test_render_partial_without_object_or_collection_does_not_generate_partial_name_local_variable() click to toggle source
# File actionview/test/template/render_test.rb, line 407
def test_render_partial_without_object_or_collection_does_not_generate_partial_name_local_variable
  exception = assert_raises ActionView::Template::Error do
    @controller_view.render("partial_name_local_variable")
  end
  assert_instance_of NameError, exception.cause
  assert_equal :partial_name_local_variable, exception.cause.name
end
test_render_plain() click to toggle source
# File actionview/test/template/render_test.rb, line 473
def test_render_plain
  assert_equal "some plaintext", @view.render(plain: "some plaintext")
end
test_render_raw_is_html_safe_and_does_not_escape_output() click to toggle source
# File actionview/test/template/render_test.rb, line 109
def test_render_raw_is_html_safe_and_does_not_escape_output
  buffer = ActiveSupport::SafeBuffer.new
  buffer << @view.render(file: "plain_text")
  assert_equal true, buffer.html_safe?
  assert_equal buffer, "<%= hello_world %>\n"
end
test_render_raw_template_with_handlers() click to toggle source
# File actionview/test/template/render_test.rb, line 101
def test_render_raw_template_with_handlers
  assert_equal "<%= hello_world %>\n", @view.render(template: "plain_text")
end
test_render_raw_template_with_quotes() click to toggle source
# File actionview/test/template/render_test.rb, line 105
def test_render_raw_template_with_quotes
  assert_equal %q;Here are some characters: !@#$%^&*()-="'}{`; + "\n", @view.render(template: "plain_text_with_characters")
end
test_render_ruby_template_inline() click to toggle source
# File actionview/test/template/render_test.rb, line 120
def test_render_ruby_template_inline
  assert_equal "4", @view.render(inline: "(2**2).to_s", type: :ruby)
end
test_render_ruby_template_with_handlers() click to toggle source
# File actionview/test/template/render_test.rb, line 116
def test_render_ruby_template_with_handlers
  assert_equal "Hello from Ruby code", @view.render(template: "ruby_template")
end
test_render_sub_template_with_errors() click to toggle source
# File actionview/test/template/render_test.rb, line 263
def test_render_sub_template_with_errors
  e = assert_raises(ActionView::Template::Error) { @view.render(template: "test/sub_template_raise") }
  assert_match %r!method.*doesnt_exist!, e.message
  assert_match %r{Trace of template inclusion: .*test/sub_template_raise\.html\.erb}, e.sub_template_message
  assert_equal "1", e.line_number
  assert_equal File.expand_path("#{FIXTURE_LOAD_PATH}/test/_raise.html.erb"), e.file_name
end
test_render_template_with_a_missing_partial_of_another_format() click to toggle source
# File actionview/test/template/render_test.rb, line 71
def test_render_template_with_a_missing_partial_of_another_format
  @view.lookup_context.formats = [:html]
  e = assert_raise ActionView::Template::Error do
    @view.render(template: "with_format", formats: [:json])
  end
  assert_includes(e.message, "Missing partial /_missing with {:locale=>[:en], :formats=>[:json], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby]}.")
end
test_render_template_with_format() click to toggle source
# File actionview/test/template/render_test.rb, line 46
def test_render_template_with_format
  assert_match "<h1>No Comment</h1>", @view.render(template: "comments/empty", formats: [:html])
  assert_match "<error>No Comment</error>", @view.render(template: "comments/empty", formats: [:xml])
end
test_render_template_with_handlers() click to toggle source
# File actionview/test/template/render_test.rb, line 97
def test_render_template_with_handlers
  assert_equal "<h1>No Comment</h1>\n", @view.render(template: "comments/empty", handlers: [:builder])
end
test_render_template_with_locale() click to toggle source
# File actionview/test/template/render_test.rb, line 84
def test_render_template_with_locale
  assert_equal "<h1>Kein Kommentar</h1>", @view.render(template: "comments/empty", locale: [:de])
end
test_render_template_with_variants() click to toggle source
# File actionview/test/template/render_test.rb, line 88
def test_render_template_with_variants
  assert_equal "<h1>No Comment</h1>\n", @view.render(template: "comments/empty", variants: :grid)
end
test_render_throws_exception_when_no_extensions_passed_to_register_template_handler_function_call() click to toggle source
# File actionview/test/template/render_test.rb, line 593
def test_render_throws_exception_when_no_extensions_passed_to_register_template_handler_function_call
  assert_raises(ArgumentError) { ActionView::Template.register_template_handler CustomHandler }
end
test_render_with_file_in_layout() click to toggle source
# File actionview/test/template/render_test.rb, line 576
def test_render_with_file_in_layout
  assert_equal %(\n<title>title</title>\n\n),
    @view.render(file: "test/layout_render_file")
end
test_render_with_layout() click to toggle source
# File actionview/test/template/render_test.rb, line 501
def test_render_with_layout
  assert_equal %(<title></title>\nHello world!\n),
    @view.render(file: "test/hello_world", layout: "layouts/yield")
end
test_render_with_layout_which_has_render_inline() click to toggle source
# File actionview/test/template/render_test.rb, line 506
def test_render_with_layout_which_has_render_inline
  assert_equal %(welcome\nHello world!\n),
    @view.render(file: "test/hello_world", layout: "layouts/yield_with_render_inline_inside")
end
test_render_with_layout_which_renders_another_partial() click to toggle source
# File actionview/test/template/render_test.rb, line 511
def test_render_with_layout_which_renders_another_partial
  assert_equal %(partial html\nHello world!\n),
    @view.render(file: "test/hello_world", layout: "layouts/yield_with_render_partial_inside")
end
test_render_with_nested_layout() click to toggle source
# File actionview/test/template/render_test.rb, line 571
def test_render_with_nested_layout
  assert_equal %(<title>title</title>\n\n<div id="column">column</div>\n<div id="content">content</div>\n),
    @view.render(file: "test/nested_layout", layout: "layouts/yield")
end
test_render_with_passing_couple_extensions_to_one_register_template_handler_function_call() click to toggle source
# File actionview/test/template/render_test.rb, line 586
def test_render_with_passing_couple_extensions_to_one_register_template_handler_function_call
  ActionView::Template.register_template_handler :foo1, :foo2, CustomHandler
  assert_equal @view.render(inline: "Hello, World!".dup, type: :foo1), @view.render(inline: "Hello, World!".dup, type: :foo2)
ensure
  ActionView::Template.unregister_template_handler :foo1, :foo2
end
test_render_without_options() click to toggle source
# File actionview/test/template/render_test.rb, line 30
def test_render_without_options
  e = assert_raises(ArgumentError) { @view.render() }
  assert_match(/You invoked render but did not give any of (.+) option\./, e.message)
end
test_rendered_format_without_format() click to toggle source
# File actionview/test/template/render_test.rb, line 51
def test_rendered_format_without_format
  @view.render(inline: "test")
  assert_equal :html, @view.lookup_context.rendered_format
end
view_cache_dependencies() click to toggle source
# File actionview/test/template/render_test.rb, line 13
def view_cache_dependencies; end