#!/usr/bin/env ruby require 'test/unit' currentPath = File.dirname(__FILE__) require File.join( currentPath, '../../lib/masterview' ) require File.join( currentPath, '../../lib/masterview/directives/javascript_include' ) class JavascriptIncludeTest < Test::Unit::TestCase include MasterView::Directives def setup @directives = MasterView::DirectiveSet.new end def test_default tag = MasterView::Tag.new(@directives, 'foo', {}, :normal, nil) @directives.directives = [] attr_value = "hello world" @directives << Javascript_include.new(attr_value) assert_equal nil, @directives.determine_dcs(:stag).render dcs = @directives.determine_dcs(:etag) dcs.context = tag.create_context assert_equal "<%= javascript_include_tag 'hello world' %>", dcs.render end def test_symbol tag = MasterView::Tag.new(@directives, 'foo', {}, :normal, nil) @directives.directives = [] attr_value = ":defaults" @directives << Javascript_include.new(attr_value) assert_equal nil, @directives.determine_dcs(:stag).render dcs = @directives.determine_dcs(:etag) dcs.context = tag.create_context assert_equal "<%= javascript_include_tag :defaults %>", dcs.render end def test_empty_infer_path tag = MasterView::Tag.new(@directives, 'foo', {}, :normal, nil) @directives.directives = [] attr_value = "" @directives << Javascript_include.new(attr_value) assert_equal nil, @directives.determine_dcs(:stag).render dcs = @directives.determine_dcs(:etag) dcs.context = tag.create_context dcs.context[:tag].attributes['src'] = '../../public/javascripts/foo.js' assert_equal "<%= javascript_include_tag 'foo.js' %>", dcs.render end def test_empty_infer_path_sub tag = MasterView::Tag.new(@directives, 'foo', {}, :normal, nil) @directives.directives = [] attr_value = "" @directives << Javascript_include.new(attr_value) assert_equal nil, @directives.determine_dcs(:stag).render dcs = @directives.determine_dcs(:etag) dcs.context = tag.create_context dcs.context[:tag].attributes['src'] = '../../public/javascripts/bar/foo.js' assert_equal "<%= javascript_include_tag 'bar/foo.js' %>", dcs.render end def test_empty_use_src tag = MasterView::Tag.new(@directives, 'foo', {}, :normal, nil) @directives.directives = [] attr_value = "" @directives << Javascript_include.new(attr_value) assert_equal nil, @directives.determine_dcs(:stag).render dcs = @directives.determine_dcs(:etag) dcs.context = tag.create_context dcs.context[:tag].attributes['src'] = '/myjavascripts/foo.js' assert_equal "<%= javascript_include_tag '/myjavascripts/foo.js' %>", dcs.render end end