#!/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' ) require File.join( currentPath, '../directive_test_helper' ) DirectiveTestHelpers.load_masterview_directive('javascript_include') class JavascriptIncludeTest < Test::Unit::TestCase include DirectiveTestHelpers JavascriptInclude = MasterView::Directives::JavascriptInclude # test subject ELEMENT_TAG = 'script' def test_metadata assert_equal MasterView::ConfigSettings.namespace_prefix, JavascriptInclude.namespace_prefix assert_equal 'javascript_include', JavascriptInclude.attribute_name end def test_default create_template_element ELEMENT_TAG attr_value = "helloworld" create_directive JavascriptInclude, attr_value assert_equal '', render_element_event(:stag) assert_equal "<%= javascript_include_tag( 'helloworld' ) %>", render_element_event(:etag) end def test_symbol create_template_element ELEMENT_TAG attr_value = ":defaults" create_directive JavascriptInclude, attr_value assert_equal '', render_element_event(:stag) assert_equal "<%= javascript_include_tag( :defaults ) %>", render_element_event(:etag) end def test_empty_infer_path create_template_element ELEMENT_TAG, :attributes => { 'src' => '../../public/javascripts/foo.js' } attr_value = "" create_directive JavascriptInclude, attr_value assert_equal '', render_element_event(:stag) assert_equal "<%= javascript_include_tag( 'foo.js' ) %>", render_element_event(:etag) end def test_empty_infer_path_sub create_template_element ELEMENT_TAG, :attributes => { 'src' => '../../public/javascripts/bar/foo.js' } attr_value = "" create_directive JavascriptInclude, attr_value assert_equal '', render_element_event(:stag) assert_equal "<%= javascript_include_tag( 'bar/foo.js' ) %>", render_element_event(:etag) end def test_empty_use_src create_template_element ELEMENT_TAG, :attributes => { 'src' => '/myjavascripts/foo.js'} attr_value = "" create_directive JavascriptInclude, attr_value assert_equal '', render_element_event(:stag) assert_equal "<%= javascript_include_tag( '/myjavascripts/foo.js' ) %>", render_element_event(:etag) end def test_multiple create_template_element ELEMENT_TAG attr_value = "hello/world, foo/bar, :defaults, :baz, cat/dog" create_directive JavascriptInclude, attr_value assert_equal '', render_element_event(:stag) assert_equal "<%= javascript_include_tag( 'hello/world', 'foo/bar', :defaults, :baz, 'cat/dog' ) %>", render_element_event(:etag) end end