aboutsummaryrefslogblamecommitdiffstats
path: root/actionpack/test/template/template_file_test.rb
blob: d14a966c1cf3a8657ed119732dba3ff496c71926 (plain) (tree)






























































































                                                                                                             
require 'abstract_unit'

class TemplateFileTest < Test::Unit::TestCase
  LOAD_PATH_ROOT = File.join(File.dirname(__FILE__), '..', 'fixtures')

  def setup
    @template = ActionView::TemplateFile.new("test/hello_world.html.erb")
    @another_template = ActionView::TemplateFile.new("test/hello_world.erb")
    @file_only = ActionView::TemplateFile.new("hello_world.erb")
    @full_path = ActionView::TemplateFile.new("/u/app/scales/config/../app/views/test/hello_world.erb", true)
    @layout = ActionView::TemplateFile.new("layouts/hello")
    @multipart = ActionView::TemplateFile.new("test_mailer/implicitly_multipart_example.text.html.erb")
  end

  def test_path
    assert_equal "test/hello_world.html.erb", @template.path
    assert_equal "test/hello_world.erb", @another_template.path
    assert_equal "hello_world.erb", @file_only.path
    assert_equal "/u/app/scales/config/../app/views/test/hello_world.erb", @full_path.path
    assert_equal "layouts/hello", @layout.path
    assert_equal "test_mailer/implicitly_multipart_example.text.html.erb", @multipart.path
  end

  def test_path_without_extension
    assert_equal "test/hello_world.html", @template.path_without_extension
    assert_equal "test/hello_world", @another_template.path_without_extension
    assert_equal "hello_world", @file_only.path_without_extension
    assert_equal "layouts/hello", @layout.path_without_extension
    assert_equal "test_mailer/implicitly_multipart_example.text.html", @multipart.path_without_extension
  end

  def test_path_without_format_and_extension
    assert_equal "test/hello_world", @template.path_without_format_and_extension
    assert_equal "test/hello_world", @another_template.path_without_format_and_extension
    assert_equal "hello_world", @file_only.path_without_format_and_extension
    assert_equal "layouts/hello", @layout.path_without_format_and_extension
    assert_equal "test_mailer/implicitly_multipart_example", @multipart.path_without_format_and_extension
  end

  def test_name
    assert_equal "hello_world", @template.name
    assert_equal "hello_world", @another_template.name
    assert_equal "hello_world", @file_only.name
    assert_equal "hello_world", @full_path.name
    assert_equal "hello", @layout.name
    assert_equal "implicitly_multipart_example", @multipart.name
  end

  def test_format
    assert_equal "html", @template.format
    assert_equal nil, @another_template.format
    assert_equal nil, @layout.format
    assert_equal "text.html", @multipart.format
  end

  def test_extension
    assert_equal "erb", @template.extension
    assert_equal "erb", @another_template.extension
    assert_equal nil, @layout.extension
    assert_equal "erb", @multipart.extension
  end

  def test_format_and_extension
    assert_equal "html.erb", @template.format_and_extension
    assert_equal "erb", @another_template.format_and_extension
    assert_equal nil, @layout.format_and_extension
    assert_equal "text.html.erb", @multipart.format_and_extension
  end

  def test_new_file_with_extension
    file = @template.dup_with_extension(:haml)
    assert_equal "test/hello_world.html", file.path_without_extension
    assert_equal "haml", file.extension
    assert_equal "test/hello_world.html.haml", file.path

    file = @another_template.dup_with_extension(:haml)
    assert_equal "test/hello_world", file.path_without_extension
    assert_equal "haml", file.extension
    assert_equal "test/hello_world.haml", file.path

    file = @another_template.dup_with_extension(nil)
    assert_equal "test/hello_world", file.path_without_extension
    assert_equal nil, file.extension
    assert_equal "test/hello_world", file.path
  end

  def test_freezes_entire_contents
    @template.freeze
    assert @template.frozen?
    assert @template.base_path.frozen?
    assert @template.name.frozen?
    assert @template.format.frozen?
    assert @template.extension.frozen?
  end
end