masterview 0.2.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +31 -1
- data/README +70 -69
- data/RELEASE_NOTES +70 -64
- data/Rakefile +26 -27
- data/TODO +13 -29
- data/doc/about.html +246 -0
- data/doc/configuration.html +49 -36
- data/doc/developer.html +423 -41
- data/doc/directives.html +139 -51
- data/doc/guide.html +19 -9
- data/doc/index.html +90 -224
- data/doc/installation.html +36 -28
- data/doc/media_list.html +30 -20
- data/doc/simple_diagram.html +3 -5
- data/doc/stylesheets/masterview.css +16 -1
- data/examples/rails_app_config/masterview/settings.rb +2 -1
- data/init.rb +1 -1
- data/lib/#ChangeLog# +6 -0
- data/lib/masterview/analyzer.rb +48 -34
- data/lib/masterview/attr_string_parser.rb +5 -1
- data/lib/masterview/case_insensitive_hash.rb +69 -0
- data/lib/masterview/{pathname_extensions.rb → core_ext/pathname.rb} +0 -0
- data/lib/masterview/{string_extensions.rb → core_ext/string.rb} +0 -0
- data/lib/masterview/deprecated/directive_base.rb +362 -0
- data/lib/masterview/directive_base.rb +201 -179
- data/lib/masterview/directive_dsl.rb +457 -0
- data/lib/masterview/directive_helpers.rb +28 -141
- data/lib/masterview/directive_load_path.rb +388 -0
- data/lib/masterview/directive_metadata.rb +377 -0
- data/lib/masterview/directive_registry.rb +259 -69
- data/lib/masterview/directives/.metadata +16 -0
- data/lib/masterview/directives/attr.rb +9 -8
- data/lib/masterview/directives/block.rb +11 -14
- data/lib/masterview/directives/check_box.rb +13 -18
- data/lib/masterview/directives/collection_select.rb +15 -29
- data/lib/masterview/directives/content.rb +9 -3
- data/lib/masterview/directives/else.rb +15 -13
- data/lib/masterview/directives/elsif.rb +14 -13
- data/lib/masterview/directives/eval.rb +20 -0
- data/lib/masterview/directives/form.rb +56 -9
- data/lib/masterview/directives/form_remote.rb +26 -0
- data/lib/masterview/directives/global_inline_erb.rb +10 -14
- data/lib/masterview/directives/hidden_field.rb +11 -20
- data/lib/masterview/directives/if.rb +13 -12
- data/lib/masterview/directives/image_tag.rb +20 -28
- data/lib/masterview/directives/import.rb +5 -12
- data/lib/masterview/directives/import_render.rb +7 -19
- data/lib/masterview/directives/insert_generated_comment.rb +8 -11
- data/lib/masterview/directives/javascript_include.rb +21 -12
- data/lib/masterview/directives/link_to.rb +14 -8
- data/lib/masterview/directives/link_to_function.rb +22 -0
- data/lib/masterview/directives/link_to_if.rb +15 -13
- data/lib/masterview/directives/link_to_remote.rb +13 -8
- data/lib/masterview/directives/omit_tag.rb +32 -16
- data/lib/masterview/directives/password_field.rb +10 -22
- data/lib/masterview/directives/radio_button.rb +11 -22
- data/lib/masterview/directives/replace.rb +7 -8
- data/lib/masterview/directives/select.rb +11 -24
- data/lib/masterview/directives/stylesheet_link.rb +20 -12
- data/lib/masterview/directives/submit.rb +11 -5
- data/lib/masterview/directives/text_area.rb +10 -23
- data/lib/masterview/directives/text_field.rb +10 -22
- data/lib/masterview/exceptions.rb +21 -0
- data/lib/masterview/extras/app/controllers/masterview_controller.rb +102 -75
- data/lib/masterview/extras/app/views/layouts/masterview_admin.rhtml +24 -23
- data/lib/masterview/extras/app/views/layouts/masterview_admin_config.rhtml +81 -0
- data/lib/masterview/extras/app/views/masterview/admin/configuration.rhtml +5 -1
- data/lib/masterview/extras/app/views/masterview/admin/create.rhtml +2 -2
- data/lib/masterview/extras/app/views/masterview/admin/directives.rhtml +5 -0
- data/lib/masterview/extras/app/views/masterview/admin/features.rhtml +5 -79
- data/lib/masterview/extras/app/views/masterview/admin/interact.rhtml +5 -0
- data/lib/masterview/extras/app/views/masterview/admin/list.rhtml +3 -71
- data/lib/masterview/extras/init_mv_admin_pages.rb +42 -23
- data/lib/masterview/filter_helpers.rb +26 -0
- data/lib/masterview/initializer.rb +99 -53
- data/lib/masterview/io.rb +19 -15
- data/lib/masterview/keyword_expander.rb +7 -2
- data/lib/masterview/masterview_info.rb +229 -23
- data/lib/masterview/masterview_version.rb +2 -2
- data/lib/masterview/parser.rb +275 -105
- data/lib/masterview/parser_helpers.rb +54 -0
- data/lib/masterview/rails_ext/action_controller_erb_direct.rb +29 -0
- data/lib/masterview/rails_ext/action_controller_reparse_checking.rb +27 -0
- data/lib/masterview/{extras/init_rails_erb_mv_direct.rb → rails_ext/action_view_erb_direct.rb} +12 -59
- data/lib/masterview/template_spec.rb +3 -2
- data/lib/masterview.rb +21 -12
- data/lib/rexml/parsers/baseparser_with_doctype_fix.rb +473 -0
- data/lib/rexml/parsers/sax2parser_with_doctype_fix.rb +243 -0
- data/test/directive_test_helper.rb +135 -0
- data/test/fixtures/directives/id_check.rb +18 -0
- data/test/fixtures/directives/test_directive_events.rb +70 -0
- data/test/test_helper.rb +18 -5
- data/test/tmp/views/layouts/product.rhtml +10 -10
- data/test/tmp/views/product/_form.rhtml +4 -4
- data/test/tmp/views/product/_product.rhtml +3 -3
- data/test/tmp/views/product/destroy.rhtml +5 -5
- data/test/tmp/views/product/edit.rhtml +4 -4
- data/test/tmp/views/product/list.rhtml +3 -3
- data/test/tmp/views/product/new.rhtml +4 -4
- data/test/tmp/views/product/show.rhtml +2 -2
- data/test/unit/attr_string_parser_test.rb +105 -0
- data/test/unit/case_insensitive_hash_mod_test.rb +104 -0
- data/test/unit/config_settings_test.rb +13 -1
- data/test/unit/default_generate_mio_filter_test.rb +3 -3
- data/test/unit/deprecated_directive_base_test.rb +30 -0
- data/test/unit/directive_attr_test.rb +111 -35
- data/test/unit/directive_base_test.rb +520 -1
- data/test/unit/directive_block_test.rb +30 -22
- data/test/unit/directive_content_test.rb +24 -11
- data/test/unit/directive_else_test.rb +18 -15
- data/test/unit/directive_elsif_test.rb +17 -15
- data/test/unit/directive_form_remote_test.rb +59 -0
- data/test/unit/directive_form_test.rb +31 -39
- data/test/unit/directive_global_inline_erb_test.rb +28 -17
- data/test/unit/directive_grid_test_notready.rb +38 -0
- data/test/unit/directive_helpers_test.rb +39 -0
- data/test/unit/directive_hidden_field_test.rb +44 -29
- data/test/unit/directive_if_test.rb +10 -7
- data/test/unit/directive_image_tag_test.rb +69 -61
- data/test/unit/directive_import_render_test.rb +28 -38
- data/test/unit/directive_import_test.rb +16 -14
- data/test/unit/directive_insert_generated_comment_test.rb +32 -0
- data/test/unit/directive_javascript_include_test.rb +40 -43
- data/test/unit/directive_link_to_function_test.rb +40 -0
- data/test/unit/directive_link_to_if_test.rb +52 -12
- data/test/unit/directive_link_to_remote_test.rb +58 -0
- data/test/unit/directive_link_to_test.rb +46 -31
- data/test/unit/directive_load_path_test.rb +257 -0
- data/test/unit/directive_metadata_test.rb +313 -0
- data/test/unit/directive_omit_tag_test.rb +73 -21
- data/test/unit/directive_password_field_test.rb +44 -38
- data/test/unit/directive_registry_test.rb +44 -0
- data/test/unit/directive_replace_test.rb +28 -12
- data/test/unit/directive_stylesheet_link_test.rb +43 -36
- data/test/unit/directive_submit_test.rb +29 -30
- data/test/unit/directive_text_area_test.rb +40 -36
- data/test/unit/directive_text_field_test.rb +44 -38
- data/test/unit/example_directive_child_events_test.rb +41 -0
- data/test/unit/example_test.rb +31 -4
- data/test/unit/file_mio_test.rb +18 -13
- data/test/unit/filter_helpers_test.rb +10 -8
- data/test/unit/find_directive_parent_test.rb +174 -0
- data/test/unit/keyword_expander_test.rb +4 -2
- data/test/unit/mio_test.rb +18 -11
- data/test/unit/mtime_string_hash_mio_tree_test.rb +5 -1
- data/test/unit/parser_test.rb +41 -29
- data/test/unit/pathname_extensions_test.rb +1 -1
- data/test/unit/run_parser_test.rb +2 -2
- data/test/unit/simplified_directive_base_test.rb +256 -0
- data/test/unit/string_hash_mio_test.rb +5 -1
- data/test/unit/template_file_watcher_test.rb +2 -2
- data/test/unit/template_test.rb +221 -46
- metadata +86 -45
- data/lib/masterview/directives/testfilter.rb +0 -55
- data/lib/masterview/extras/init_rails_reparse_checking.rb +0 -62
@@ -3,87 +3,95 @@
|
|
3
3
|
require 'test/unit'
|
4
4
|
currentPath = File.dirname(__FILE__)
|
5
5
|
require File.join( currentPath, '../../lib/masterview' )
|
6
|
-
require File.join( currentPath, '../../lib/masterview/directives/image_tag' )
|
6
|
+
#require File.join( currentPath, '../../lib/masterview/directives/image_tag' )
|
7
|
+
require File.join( currentPath, '../directive_test_helper' )
|
8
|
+
DirectiveTestHelpers.load_masterview_directive('image_tag')
|
7
9
|
|
8
10
|
class ImageTagTest < Test::Unit::TestCase
|
9
|
-
include
|
11
|
+
include DirectiveTestHelpers
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
+
ImageTag = MasterView::Directives::ImageTag # test subject
|
14
|
+
|
15
|
+
IMAGE_TAG = 'img'
|
16
|
+
IMAGE_REF = 'something.png'
|
17
|
+
|
18
|
+
def check_element_rendering(expected)
|
19
|
+
|
20
|
+
# nothing should be happening during stag processing
|
21
|
+
assert_equal '', render_element_event(:stag)
|
22
|
+
|
23
|
+
# all our work should be getting done at etag time
|
24
|
+
render_result = render_element_event(:etag)
|
25
|
+
assert_equal expected, render_result
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_metadata
|
30
|
+
assert_equal MasterView::ConfigSettings.namespace_prefix, ImageTag.namespace_prefix
|
31
|
+
assert_equal 'image_tag', ImageTag.attribute_name
|
13
32
|
end
|
14
33
|
|
34
|
+
# <img mv:image_tag="#{IMAGE_REF}" />
|
15
35
|
def test_default
|
16
|
-
|
17
|
-
|
18
|
-
attr_value =
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
assert_equal "<%= image_tag 'hello world' %>", dcs.render
|
36
|
+
|
37
|
+
create_template_element IMAGE_TAG #image element w/ no attrs
|
38
|
+
attr_value = IMAGE_REF # just the image ref
|
39
|
+
create_directive ImageTag, attr_value
|
40
|
+
|
41
|
+
check_element_rendering "<%= image_tag( '#{IMAGE_REF}' ) %>"
|
42
|
+
|
24
43
|
end
|
25
44
|
|
45
|
+
# <img width="20" height="10" mv:image_tag="#{IMAGE_REF}" />
|
26
46
|
def test_default_size
|
27
|
-
|
28
|
-
|
29
|
-
attr_value =
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
dcs.context[:tag].attributes['width'] = '20'
|
35
|
-
dcs.context[:tag].attributes['height'] = '10'
|
36
|
-
assert_equal "<%= image_tag 'hello world', :size => '20x10' %>", dcs.render
|
47
|
+
|
48
|
+
create_template_element IMAGE_TAG, :attributes => { 'width' => '20', 'height' => '10' }
|
49
|
+
attr_value = IMAGE_REF # just the image ref
|
50
|
+
create_directive ImageTag, attr_value
|
51
|
+
|
52
|
+
check_element_rendering "<%= image_tag( '#{IMAGE_REF}', :height => 10, :width => 20 ) %>"
|
53
|
+
|
37
54
|
end
|
38
55
|
|
56
|
+
# <img width="20" height="10" alt="img description" mv:image_tag="#{IMAGE_REF}" />
|
39
57
|
def test_default_size_alt
|
40
|
-
|
41
|
-
|
42
|
-
attr_value =
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
dcs.context[:tag].attributes['width'] = '20'
|
48
|
-
dcs.context[:tag].attributes['height'] = '10'
|
49
|
-
dcs.context[:tag].attributes['alt'] = 'foo'
|
50
|
-
assert_equal "<%= image_tag 'hello world', :alt => 'foo', :size => '20x10' %>", dcs.render
|
58
|
+
|
59
|
+
create_template_element IMAGE_TAG, :attributes => { 'width' => '20', 'height' => '10', 'alt' => 'img description' }
|
60
|
+
attr_value = IMAGE_REF # just the image ref
|
61
|
+
create_directive ImageTag, attr_value
|
62
|
+
|
63
|
+
check_element_rendering "<%= image_tag( '#{IMAGE_REF}', :alt => \"img description\", :height => 10, :width => 20 ) %>"
|
64
|
+
|
51
65
|
end
|
52
66
|
|
67
|
+
# <img src="../../public/images/foo.gif" mv:image_tag="" />
|
53
68
|
def test_empty_infer_path
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
dcs.context = tag.create_context
|
61
|
-
dcs.context[:tag].attributes['src'] = '../../public/images/foo.js'
|
62
|
-
assert_equal "<%= image_tag 'foo.js' %>", dcs.render
|
69
|
+
|
70
|
+
create_template_element IMAGE_TAG, :attributes => { 'src' => '../../public/images/foo.gif' }
|
71
|
+
create_directive ImageTag, ''
|
72
|
+
|
73
|
+
check_element_rendering "<%= image_tag( 'foo.gif' ) %>"
|
74
|
+
|
63
75
|
end
|
64
76
|
|
77
|
+
# <img src="../../public/images/foo/bar.gif" mv:image_tag="" />
|
65
78
|
def test_empty_infer_path_sub
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
dcs.context = tag.create_context
|
73
|
-
dcs.context[:tag].attributes['src'] = '../../public/images/bar/foo.js'
|
74
|
-
assert_equal "<%= image_tag 'bar/foo.js' %>", dcs.render
|
79
|
+
|
80
|
+
create_template_element IMAGE_TAG, :attributes => { 'src' => '../../public/images/foo/bar.gif' }
|
81
|
+
create_directive ImageTag, ''
|
82
|
+
|
83
|
+
check_element_rendering "<%= image_tag( 'foo/bar.gif' ) %>"
|
84
|
+
|
75
85
|
end
|
76
86
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
dcs.context[:tag].attributes['src'] = '/myimages/foo.js'
|
86
|
-
assert_equal "<%= image_tag '/myimages/foo.js' %>", dcs.render
|
87
|
+
# <img src="/stdimages/logo.gif" mv:image_tag="" />
|
88
|
+
def test_empty_use_src_no_path_inferred
|
89
|
+
|
90
|
+
create_template_element IMAGE_TAG, :attributes => { 'src' => '/stdimages/logo.gif' }
|
91
|
+
create_directive ImageTag, ''
|
92
|
+
|
93
|
+
check_element_rendering "<%= image_tag( '/stdimages/logo.gif' ) %>"
|
94
|
+
|
87
95
|
end
|
88
96
|
|
89
97
|
end
|
@@ -3,60 +3,50 @@
|
|
3
3
|
require 'test/unit'
|
4
4
|
currentPath = File.dirname(__FILE__)
|
5
5
|
require File.join( currentPath, '../../lib/masterview' )
|
6
|
-
require File.join( currentPath, '../../lib/masterview/directives/import_render')
|
6
|
+
#require File.join( currentPath, '../../lib/masterview/directives/import_render')
|
7
|
+
require File.join( currentPath, '../directive_test_helper' )
|
8
|
+
DirectiveTestHelpers.load_masterview_directive('import_render')
|
7
9
|
|
8
10
|
class TestImportRender < Test::Unit::TestCase
|
9
|
-
include
|
11
|
+
include DirectiveTestHelpers
|
12
|
+
|
10
13
|
include MasterView::DirectiveHelpers
|
11
14
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
15
|
+
# shortcut references for internal parser implementation classes
|
16
|
+
ImportRender = MasterView::Directives::ImportRender # test subject
|
17
|
+
|
18
|
+
ELEMENT_TAG = 'div'
|
19
|
+
|
20
|
+
def test_metadata
|
21
|
+
assert_equal MasterView::ConfigSettings.namespace_prefix, ImportRender.namespace_prefix
|
22
|
+
assert_equal 'import_render', ImportRender.attribute_name
|
16
23
|
end
|
17
24
|
|
18
25
|
def test_import_render
|
19
|
-
import_render_tag =
|
20
|
-
@directives.directives = []
|
26
|
+
import_render_tag = create_template_element ELEMENT_TAG
|
21
27
|
attr_value = ":partial => 'foo/bar'"
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
assert_equal nil, dcs.render
|
26
|
-
|
27
|
-
dcs = @directives.determine_dcs(:etag)
|
28
|
-
dcs.context = import_render_tag.create_context
|
29
|
-
assert_equal ERB_EVAL+'render( '+attr_value+' )'+ERB_END, dcs.render.join
|
28
|
+
create_directive ImportRender, attr_value
|
29
|
+
assert_equal '', render_element_event(:stag), 'nothing happens at :stag time'
|
30
|
+
assert_equal ERB_CONTENT_START+'render( '+attr_value+' )'+ERB_CONTENT_END, render_element_event(:etag)
|
30
31
|
end
|
31
32
|
|
32
33
|
def test_import_render_keyword_expansion
|
33
|
-
|
34
|
-
|
35
|
-
@directives.directives = []
|
34
|
+
import_render_tag = create_template_element ELEMENT_TAG
|
35
|
+
TestHelperRenderer.keyword_expander.set_template_pathname('foo/bar.html', '.rhtml') # set path after render is created
|
36
36
|
attr_value = %q[:partial => '{template_dir_path}/{template_basename}']
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
assert_equal nil, dcs.render
|
41
|
-
|
42
|
-
dcs = @directives.determine_dcs(:etag)
|
43
|
-
dcs.context = import_render_tag.create_context
|
44
|
-
assert_equal ERB_EVAL+ %q[render( :partial => 'foo/bar' )]+ERB_END, dcs.render.join
|
37
|
+
create_directive ImportRender, attr_value
|
38
|
+
assert_equal '', render_element_event(:stag), 'nothing happens at :stag time'
|
39
|
+
assert_equal ERB_CONTENT_START+ %q[render( :partial => 'foo/bar']+' )'+ERB_CONTENT_END, render_element_event(:etag)
|
45
40
|
end
|
46
41
|
|
47
42
|
def test_import_render_keyword_expansion_subdir
|
48
|
-
|
49
|
-
|
50
|
-
@directives.directives = []
|
43
|
+
import_render_tag = create_template_element ELEMENT_TAG
|
44
|
+
TestHelperRenderer.keyword_expander.set_template_pathname('one/foo/bar.html', '.rhtml') # set path after render is created
|
51
45
|
attr_value = %q[:partial => '{template_dir_path}/{template_basename}']
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
assert_equal
|
56
|
-
|
57
|
-
dcs = @directives.determine_dcs(:etag)
|
58
|
-
dcs.context = import_render_tag.create_context
|
59
|
-
assert_equal ERB_EVAL+ %q[render( :partial => 'one/foo/bar' )]+ERB_END, dcs.render.join
|
46
|
+
create_directive ImportRender, attr_value
|
47
|
+
|
48
|
+
assert_equal '', render_element_event(:stag), 'nothing happens at :stag time'
|
49
|
+
assert_equal ERB_CONTENT_START+ %q[render( :partial => 'one/foo/bar']+' )'+ERB_CONTENT_END, render_element_event(:etag)
|
60
50
|
end
|
61
51
|
|
62
52
|
end
|
@@ -3,27 +3,29 @@
|
|
3
3
|
require 'test/unit'
|
4
4
|
currentPath = File.dirname(__FILE__)
|
5
5
|
require File.join( currentPath, '../../lib/masterview' )
|
6
|
-
require File.join( currentPath, '../../lib/masterview/directives/import')
|
6
|
+
#require File.join( currentPath, '../../lib/masterview/directives/import')
|
7
|
+
require File.join( currentPath, '../directive_test_helper' )
|
8
|
+
DirectiveTestHelpers.load_masterview_directive('import')
|
9
|
+
|
7
10
|
|
8
11
|
class TestImport < Test::Unit::TestCase
|
9
|
-
include
|
12
|
+
include DirectiveTestHelpers
|
13
|
+
|
14
|
+
Import = MasterView::Directives::Import # test subject
|
15
|
+
|
16
|
+
ELEMENT_TAG = 'div'
|
10
17
|
|
11
|
-
def
|
12
|
-
|
18
|
+
def test_metadata
|
19
|
+
assert_equal MasterView::ConfigSettings.namespace_prefix, Import.namespace_prefix
|
20
|
+
assert_equal 'import', Import.attribute_name
|
13
21
|
end
|
14
22
|
|
15
23
|
def test_import
|
16
|
-
import_tag =
|
17
|
-
@directives.directives = []
|
24
|
+
import_tag = create_template_element ELEMENT_TAG
|
18
25
|
attr_value = 'foo/bar'
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
assert_equal nil, dcs.render
|
23
|
-
|
24
|
-
dcs = @directives.determine_dcs(:etag)
|
25
|
-
dcs.context = import_tag.create_context
|
26
|
-
assert_equal nil, dcs.render
|
26
|
+
create_directive Import, attr_value
|
27
|
+
assert_equal '', render_element_event(:stag), 'nothing happens at :stag time'
|
28
|
+
assert_equal '', render_element_event(:stag), 'this is strictly a design-time feature, so no effect on rendering output'
|
27
29
|
end
|
28
30
|
|
29
31
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
currentPath = File.dirname(__FILE__)
|
5
|
+
require File.join( currentPath, '../../lib/masterview' )
|
6
|
+
#require File.join( currentPath, '../../lib/masterview/directives/insert_generated_comment')
|
7
|
+
require File.join( currentPath, '../directive_test_helper' )
|
8
|
+
DirectiveTestHelpers.load_masterview_directive('insert_generated_comment')
|
9
|
+
|
10
|
+
class TestInsertGeneratedComment < Test::Unit::TestCase
|
11
|
+
include DirectiveTestHelpers
|
12
|
+
|
13
|
+
InsertGeneratedComment = MasterView::Directives::InsertGeneratedComment # test subject
|
14
|
+
|
15
|
+
ELEMENT_TAG = 'div'
|
16
|
+
|
17
|
+
def setup
|
18
|
+
create_template_element ELEMENT_TAG
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_metadata
|
22
|
+
assert_equal MasterView::ConfigSettings.namespace_prefix, InsertGeneratedComment.namespace_prefix
|
23
|
+
assert_equal 'insert_generated_comment', InsertGeneratedComment.attribute_name
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_insert_generated_comment
|
27
|
+
attr_value = ''
|
28
|
+
create_directive InsertGeneratedComment, attr_value
|
29
|
+
assert_equal "\n<%\n# WARNING - This is a generated file created by MasterView. \n# Do not edit - changes will be lost when this file is re-generated.\n# \n# To make changes, edit the MasterView source file located at: \n# \n-%>", render_element_event(:stag)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -3,71 +3,68 @@
|
|
3
3
|
require 'test/unit'
|
4
4
|
currentPath = File.dirname(__FILE__)
|
5
5
|
require File.join( currentPath, '../../lib/masterview' )
|
6
|
-
require File.join( currentPath, '../../lib/masterview/directives/javascript_include' )
|
6
|
+
#require File.join( currentPath, '../../lib/masterview/directives/javascript_include' )
|
7
|
+
require File.join( currentPath, '../directive_test_helper' )
|
8
|
+
DirectiveTestHelpers.load_masterview_directive('javascript_include')
|
7
9
|
|
8
10
|
class JavascriptIncludeTest < Test::Unit::TestCase
|
9
|
-
include
|
11
|
+
include DirectiveTestHelpers
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
+
JavascriptInclude = MasterView::Directives::JavascriptInclude # test subject
|
14
|
+
|
15
|
+
ELEMENT_TAG = 'script'
|
16
|
+
|
17
|
+
def test_metadata
|
18
|
+
assert_equal MasterView::ConfigSettings.namespace_prefix, JavascriptInclude.namespace_prefix
|
19
|
+
assert_equal 'javascript_include', JavascriptInclude.attribute_name
|
13
20
|
end
|
14
21
|
|
15
22
|
def test_default
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
assert_equal
|
21
|
-
dcs = @directives.determine_dcs(:etag)
|
22
|
-
dcs.context = tag.create_context
|
23
|
-
assert_equal "<%= javascript_include_tag 'hello world' %>", dcs.render
|
23
|
+
create_template_element ELEMENT_TAG
|
24
|
+
attr_value = "helloworld"
|
25
|
+
create_directive JavascriptInclude, attr_value
|
26
|
+
assert_equal '', render_element_event(:stag)
|
27
|
+
assert_equal "<%= javascript_include_tag( 'helloworld' ) %>", render_element_event(:etag)
|
24
28
|
end
|
25
29
|
|
26
30
|
def test_symbol
|
27
|
-
|
28
|
-
@directives.directives = []
|
31
|
+
create_template_element ELEMENT_TAG
|
29
32
|
attr_value = ":defaults"
|
30
|
-
|
31
|
-
assert_equal
|
32
|
-
|
33
|
-
dcs.context = tag.create_context
|
34
|
-
assert_equal "<%= javascript_include_tag :defaults %>", dcs.render
|
33
|
+
create_directive JavascriptInclude, attr_value
|
34
|
+
assert_equal '', render_element_event(:stag)
|
35
|
+
assert_equal "<%= javascript_include_tag( :defaults ) %>", render_element_event(:etag)
|
35
36
|
end
|
36
37
|
|
37
38
|
def test_empty_infer_path
|
38
|
-
|
39
|
-
@directives.directives = []
|
39
|
+
create_template_element ELEMENT_TAG, :attributes => { 'src' => '../../public/javascripts/foo.js' }
|
40
40
|
attr_value = ""
|
41
|
-
|
42
|
-
assert_equal
|
43
|
-
|
44
|
-
dcs.context = tag.create_context
|
45
|
-
dcs.context[:tag].attributes['src'] = '../../public/javascripts/foo.js'
|
46
|
-
assert_equal "<%= javascript_include_tag 'foo.js' %>", dcs.render
|
41
|
+
create_directive JavascriptInclude, attr_value
|
42
|
+
assert_equal '', render_element_event(:stag)
|
43
|
+
assert_equal "<%= javascript_include_tag( 'foo.js' ) %>", render_element_event(:etag)
|
47
44
|
end
|
48
45
|
|
49
46
|
def test_empty_infer_path_sub
|
50
|
-
|
51
|
-
@directives.directives = []
|
47
|
+
create_template_element ELEMENT_TAG, :attributes => { 'src' => '../../public/javascripts/bar/foo.js' }
|
52
48
|
attr_value = ""
|
53
|
-
|
54
|
-
assert_equal
|
55
|
-
|
56
|
-
dcs.context = tag.create_context
|
57
|
-
dcs.context[:tag].attributes['src'] = '../../public/javascripts/bar/foo.js'
|
58
|
-
assert_equal "<%= javascript_include_tag 'bar/foo.js' %>", dcs.render
|
49
|
+
create_directive JavascriptInclude, attr_value
|
50
|
+
assert_equal '', render_element_event(:stag)
|
51
|
+
assert_equal "<%= javascript_include_tag( 'bar/foo.js' ) %>", render_element_event(:etag)
|
59
52
|
end
|
60
53
|
|
61
54
|
def test_empty_use_src
|
62
|
-
|
63
|
-
@directives.directives = []
|
55
|
+
create_template_element ELEMENT_TAG, :attributes => { 'src' => '/myjavascripts/foo.js'}
|
64
56
|
attr_value = ""
|
65
|
-
|
66
|
-
assert_equal
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
57
|
+
create_directive JavascriptInclude, attr_value
|
58
|
+
assert_equal '', render_element_event(:stag)
|
59
|
+
assert_equal "<%= javascript_include_tag( '/myjavascripts/foo.js' ) %>", render_element_event(:etag)
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_multiple
|
63
|
+
create_template_element ELEMENT_TAG
|
64
|
+
attr_value = "hello/world, foo/bar, :defaults, :baz, cat/dog"
|
65
|
+
create_directive JavascriptInclude, attr_value
|
66
|
+
assert_equal '', render_element_event(:stag)
|
67
|
+
assert_equal "<%= javascript_include_tag( 'hello/world', 'foo/bar', :defaults, :baz, 'cat/dog' ) %>", render_element_event(:etag)
|
71
68
|
end
|
72
69
|
|
73
70
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
currentPath = File.dirname(__FILE__)
|
5
|
+
require File.join( currentPath, '../../lib/masterview' )
|
6
|
+
#require File.join( currentPath, '../../lib/masterview/directives/link_to_function')
|
7
|
+
require File.join( currentPath, '../directive_test_helper' )
|
8
|
+
DirectiveTestHelpers.load_masterview_directive('link_to_function')
|
9
|
+
|
10
|
+
class TestLinkToFunction < Test::Unit::TestCase
|
11
|
+
include DirectiveTestHelpers
|
12
|
+
|
13
|
+
LinkToFunction = MasterView::Directives::LinkToFunction # test subject
|
14
|
+
|
15
|
+
ELEMENT_TAG = 'a'
|
16
|
+
|
17
|
+
def test_metadata
|
18
|
+
assert_equal MasterView::ConfigSettings.namespace_prefix, LinkToFunction.namespace_prefix
|
19
|
+
assert_equal 'link_to_function', LinkToFunction.attribute_name
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_default
|
23
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'function_name'
|
24
|
+
attr_value = "alert('Hello world!')"
|
25
|
+
create_directive LinkToFunction, attr_value
|
26
|
+
assert_equal '', render_element_event(:stag)
|
27
|
+
expected_content = "<%= link_to_function( 'function_name', \"alert('Hello world!')\" ) %>"
|
28
|
+
assert_equal expected_content, render_element_event(:etag)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_default_quoted
|
32
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'function_name'
|
33
|
+
attr_value = "'dosomething()', :id => 'hw'"
|
34
|
+
create_directive LinkToFunction, attr_value
|
35
|
+
assert_equal '', render_element_event(:stag)
|
36
|
+
expected_content = "<%= link_to_function( 'function_name', 'dosomething()', :id => 'hw' ) %>"
|
37
|
+
assert_equal expected_content, render_element_event(:etag)
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -3,25 +3,65 @@
|
|
3
3
|
require 'test/unit'
|
4
4
|
currentPath = File.dirname(__FILE__)
|
5
5
|
require File.join( currentPath, '../../lib/masterview' )
|
6
|
-
require File.join( currentPath, '../../lib/masterview/directives/link_to_if')
|
6
|
+
#require File.join( currentPath, '../../lib/masterview/directives/link_to_if')
|
7
|
+
require File.join( currentPath, '../directive_test_helper' )
|
8
|
+
DirectiveTestHelpers.load_masterview_directive('link_to_if')
|
7
9
|
|
8
10
|
class TestLinkToIf < Test::Unit::TestCase
|
9
|
-
include
|
11
|
+
include DirectiveTestHelpers
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
+
LinkToIf = MasterView::Directives::LinkToIf # test subject
|
14
|
+
|
15
|
+
ELEMENT_TAG = 'a'
|
16
|
+
|
17
|
+
def test_metadata
|
18
|
+
assert_equal MasterView::ConfigSettings.namespace_prefix, LinkToIf.namespace_prefix
|
19
|
+
assert_equal 'link_to_if', LinkToIf.attribute_name
|
13
20
|
end
|
14
21
|
|
15
22
|
def test_previous
|
16
|
-
|
17
|
-
@directives.directives = []
|
23
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'Previous page'
|
18
24
|
attr_value = "@product_pages.current.previous, {:page => @product_pages.current.previous }"
|
19
|
-
|
20
|
-
assert_equal
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
+
create_directive LinkToIf, attr_value
|
26
|
+
assert_equal '', render_element_event(:stag)
|
27
|
+
expected_content = "<%= link_to_if( @product_pages.current.previous, 'Previous page', {:page => @product_pages.current.previous } ) %>"
|
28
|
+
assert_equal expected_content, render_element_event(:etag)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_dummy_name
|
32
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'Previous page'
|
33
|
+
attr_value = "@product_pages.current.previous, 'bar', {:page => @product_pages.current.previous }"
|
34
|
+
create_directive LinkToIf, attr_value
|
35
|
+
assert_equal '', render_element_event(:stag)
|
36
|
+
expected_content = "<%= link_to_if( @product_pages.current.previous, 'Previous page', {:page => @product_pages.current.previous } ) %>"
|
37
|
+
assert_equal expected_content, render_element_event(:etag)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_html
|
41
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'Previous page'
|
42
|
+
attr_value = "@product_pages.current.previous, {:page => @product_pages.current.previous }, :class => 'red'"
|
43
|
+
create_directive LinkToIf, attr_value
|
44
|
+
assert_equal '', render_element_event(:stag)
|
45
|
+
expected_content = "<%= link_to_if( @product_pages.current.previous, 'Previous page', {:page => @product_pages.current.previous }, :class => 'red' ) %>"
|
46
|
+
assert_equal expected_content, render_element_event(:etag)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_params
|
50
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'Previous page'
|
51
|
+
attr_value = "@product_pages.current.previous, {:page => @product_pages.current.previous }, {:class => 'red'}, 'foo', 1, 2, 3"
|
52
|
+
create_directive LinkToIf, attr_value
|
53
|
+
assert_equal '', render_element_event(:stag)
|
54
|
+
expected_content = "<%= link_to_if( @product_pages.current.previous, 'Previous page', {:page => @product_pages.current.previous }, {:class => 'red'}, 'foo', 1, 2, 3 ) %>"
|
55
|
+
assert_equal expected_content, render_element_event(:etag)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_block
|
59
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'Previous page'
|
60
|
+
attr_value = "@product_pages.current.previous, {:page => @product_pages.current.previous }, {:class => 'red'}, 'foo', 1, 2, 3 { hello }"
|
61
|
+
create_directive LinkToIf, attr_value
|
62
|
+
assert_equal '', render_element_event(:stag)
|
63
|
+
expected_content = "<%= link_to_if( @product_pages.current.previous, 'Previous page', {:page => @product_pages.current.previous }, {:class => 'red'}, 'foo', 1, 2, 3 { hello } ) %>"
|
64
|
+
assert_equal expected_content, render_element_event(:etag)
|
25
65
|
end
|
26
66
|
|
27
67
|
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
currentPath = File.dirname(__FILE__)
|
5
|
+
require File.join( currentPath, '../../lib/masterview' )
|
6
|
+
#require File.join( currentPath, '../../lib/masterview/directives/link_to_remote')
|
7
|
+
require File.join( currentPath, '../directive_test_helper' )
|
8
|
+
DirectiveTestHelpers.load_masterview_directive('link_to_remote')
|
9
|
+
|
10
|
+
class TestLinkToRemote < Test::Unit::TestCase
|
11
|
+
include DirectiveTestHelpers
|
12
|
+
|
13
|
+
LinkToRemote = MasterView::Directives::LinkToRemote # test subject
|
14
|
+
|
15
|
+
ELEMENT_TAG = 'a'
|
16
|
+
|
17
|
+
def test_metadata
|
18
|
+
assert_equal MasterView::ConfigSettings.namespace_prefix, LinkToRemote.namespace_prefix
|
19
|
+
assert_equal 'link_to_remote', LinkToRemote.attribute_name
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_default
|
23
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'Do It'
|
24
|
+
attr_value = ":action => 'show', :id => @product"
|
25
|
+
create_directive LinkToRemote, attr_value
|
26
|
+
assert_equal '', render_element_event(:stag)
|
27
|
+
expected_content = "<%= link_to_remote( 'Do It', :action => 'show', :id => @product ) %>"
|
28
|
+
assert_equal expected_content, render_element_event(:etag)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_junk_name
|
32
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'Do It'
|
33
|
+
attr_value = "'do not use (ignored)', :action => 'show', :id => @product"
|
34
|
+
create_directive LinkToRemote, attr_value
|
35
|
+
assert_equal '', render_element_event(:stag)
|
36
|
+
expected_content = "<%= link_to_remote( 'Do It', :action => 'show', :id => @product ) %>"
|
37
|
+
assert_equal expected_content, render_element_event(:etag)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_junk_plus
|
41
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'Do It'
|
42
|
+
attr_value = "'do not use (ignored)', :action => 'show', :id => @product"
|
43
|
+
create_directive LinkToRemote, attr_value
|
44
|
+
assert_equal '', render_element_event(:stag)
|
45
|
+
expected_content = "<%= link_to_remote( 'Do It', :action => 'show', :id => @product ) %>"
|
46
|
+
assert_equal expected_content, render_element_event(:etag)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_html
|
50
|
+
link_tag = create_template_element ELEMENT_TAG, :content => 'Do It'
|
51
|
+
attr_value = ":action => 'show', {:id => @product}, :class => 'red'"
|
52
|
+
create_directive LinkToRemote, attr_value
|
53
|
+
assert_equal '', render_element_event(:stag)
|
54
|
+
expected_content = "<%= link_to_remote( 'Do It', :action => 'show', {:id => @product}, :class => 'red' ) %>"
|
55
|
+
assert_equal expected_content, render_element_event(:etag)
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|