diff options
author | Piotr Sarnacki <drogus@gmail.com> | 2013-04-17 00:06:11 +0200 |
---|---|---|
committer | Łukasz Strzałkowski <lukasz.strzalkowski@gmail.com> | 2013-06-20 17:23:16 +0200 |
commit | eb23754ebbfbf2d465cc0f900720704fb3703633 (patch) | |
tree | 5bd1764233b59075341611b1e857d418c794d812 /actionview/test/template/dependency_tracker_test.rb | |
parent | 5bcdf4faa6da7acb762dab680372f8520a0533c2 (diff) | |
download | rails-eb23754ebbfbf2d465cc0f900720704fb3703633.tar.gz rails-eb23754ebbfbf2d465cc0f900720704fb3703633.tar.bz2 rails-eb23754ebbfbf2d465cc0f900720704fb3703633.zip |
Move template tests from actionpack to actionview
Diffstat (limited to 'actionview/test/template/dependency_tracker_test.rb')
-rw-r--r-- | actionview/test/template/dependency_tracker_test.rb | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/actionview/test/template/dependency_tracker_test.rb b/actionview/test/template/dependency_tracker_test.rb new file mode 100644 index 0000000000..7a9b4b26ac --- /dev/null +++ b/actionview/test/template/dependency_tracker_test.rb @@ -0,0 +1,74 @@ +require 'abstract_unit' +require 'action_view/dependency_tracker' + +class NeckbeardTracker + def self.call(name, template) + ["foo/#{name}"] + end +end + +class FakeTemplate + attr_reader :source, :handler + + def initialize(source, handler = Neckbeard) + @source, @handler = source, handler + end +end + +Neckbeard = lambda {|template| template.source } +Bowtie = lambda {|template| template.source } + +class DependencyTrackerTest < ActionView::TestCase + def tracker + ActionView::DependencyTracker + end + + def setup + ActionView::Template.register_template_handler :neckbeard, Neckbeard + tracker.register_tracker(:neckbeard, NeckbeardTracker) + end + + def teardown + tracker.remove_tracker(:neckbeard) + end + + def test_finds_tracker_by_template_handler + template = FakeTemplate.new("boo/hoo") + dependencies = tracker.find_dependencies("boo/hoo", template) + assert_equal ["foo/boo/hoo"], dependencies + end + + def test_returns_empty_array_if_no_tracker_is_found + template = FakeTemplate.new("boo/hoo", Bowtie) + dependencies = tracker.find_dependencies("boo/hoo", template) + assert_equal [], dependencies + end +end + +class ERBTrackerTest < Minitest::Test + def make_tracker(name, template) + ActionView::DependencyTracker::ERBTracker.new(name, template) + end + + def test_dependency_of_erb_template_with_number_in_filename + template = FakeTemplate.new("<%# render 'messages/message123' %>", :erb) + tracker = make_tracker('messages/_message123', template) + + assert_equal ["messages/message123"], tracker.dependencies + end + + def test_finds_dependency_in_correct_directory + template = FakeTemplate.new("<%# render(message.topic) %>", :erb) + tracker = make_tracker('messages/_message', template) + + assert_equal ["topics/topic"], tracker.dependencies + end + + def test_finds_dependency_in_correct_directory_with_underscore + template = FakeTemplate.new("<%# render(message_type.messages) %>", :erb) + tracker = make_tracker('message_types/_message_type', template) + + assert_equal ["messages/message"], tracker.dependencies + end +end + |