aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/template/template_file_test.rb
blob: d14a966c1cf3a8657ed119732dba3ff496c71926 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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