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
data/test/unit/template_test.rb
CHANGED
@@ -6,10 +6,88 @@ require File.join( currentPath, '../../lib/masterview' )
|
|
6
6
|
require File.join( currentPath, '../test_helper' )
|
7
7
|
|
8
8
|
class TestTemplate < Test::Unit::TestCase
|
9
|
+
DEBUG_DIRECTIVES_REGISTRY = false
|
9
10
|
def setup
|
10
|
-
MasterView::IOMgr.erb = MasterView::StringHashMIOTree.new({}, '.rhtml', :logging => true)
|
11
|
+
MasterView::IOMgr.erb = MasterView::MIO::StringHashMIOTree.new({}, '.rhtml', :logging => true)
|
12
|
+
# ensure that the system load path and directives registry are in standard state
|
13
|
+
MasterView::DirectiveLoadPath.reset_current()
|
14
|
+
MasterView::DirectiveRegistry.current.process_directives_load_path(MasterView::DirectiveLoadPath.current) # load directives and build maps
|
15
|
+
if DEBUG_DIRECTIVES_REGISTRY
|
16
|
+
STDOUT.puts "\n###TestTemplate reset load path and directives registry"
|
17
|
+
STDOUT.puts "...DirectiveLoadPath.current=#{MasterView::DirectiveLoadPath.current.inspect}"
|
18
|
+
STDOUT.puts "...DirectiveRegistry.current.mv_namespace_prefix: #{MasterView::DirectiveRegistry.current.mv_namespace_prefix}"
|
19
|
+
STDOUT.puts "...DirectiveRegistry.current.loaded_classes: #{MasterView::DirectiveRegistry.current.loaded_classes.size}"
|
20
|
+
STDOUT.puts "...DirectiveRegistry.current.loaded_namespaces: #{MasterView::DirectiveRegistry.current.loaded_namespaces.inspect}"
|
21
|
+
problems = []
|
22
|
+
nBuiltins = 0
|
23
|
+
MasterView::DirectiveRegistry.current.registered_directives.each { |dc|
|
24
|
+
if dc.default_namespace_prefix == 'mv:' or dc.name.starts_with?('MasterView::Directives::')
|
25
|
+
nBuiltins += 1
|
26
|
+
problems << dc.name.split(':').last if dc.namespace != 'mv'
|
27
|
+
end
|
28
|
+
}
|
29
|
+
problems.sort!
|
30
|
+
STDOUT.puts problems.empty? ? "...all #{nBuiltins} builtin directives ok" : "*****#{problems.size} of #{nBuiltins} MIS-REGISTERED: #{problems}"
|
31
|
+
STDOUT.puts ""
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# test that xml declaration is retained in output
|
36
|
+
def test_xml_decl_basic
|
37
|
+
template = %Q{<?xml version="1.0" ?>\n<greeting mv:generate="foo/bar"><hello>World</hello></greeting>}
|
38
|
+
expected = {
|
39
|
+
'foo/bar' => %Q{<?xml version="1.0" ?>\n<greeting><hello>World</hello></greeting>}
|
40
|
+
}
|
41
|
+
assert_template_result expected, template, {}, nil, false # lets not normalize whitespace so we can see if newlines are in there
|
42
|
+
end
|
43
|
+
|
44
|
+
# test that xml declaration is retained in output with encoding
|
45
|
+
def test_xml_decl_encoding
|
46
|
+
template = <<-END
|
47
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
48
|
+
<greeting mv:generate="foo/bar"><hello>World</hello></greeting>
|
49
|
+
END
|
50
|
+
expected = {
|
51
|
+
'foo/bar' => %q{<?xml version="1.0" encoding="UTF-8" ?><greeting><hello>World</hello></greeting>}
|
52
|
+
}
|
53
|
+
assert_template_result expected, template
|
54
|
+
end
|
55
|
+
|
56
|
+
# test that xml declaration is retained in output with encoding and standalone attribute
|
57
|
+
def test_xml_decl_encoding_standalone
|
58
|
+
template = <<-END
|
59
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
60
|
+
<greeting mv:generate="foo/bar"><hello>World</hello></greeting>
|
61
|
+
END
|
62
|
+
expected = {
|
63
|
+
'foo/bar' => %q{<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><greeting><hello>World</hello></greeting>}
|
64
|
+
}
|
65
|
+
assert_template_result expected, template
|
66
|
+
end
|
67
|
+
|
68
|
+
# test that xml declaration is retained in output with encoding
|
69
|
+
def test_xml_doctype_external
|
70
|
+
template = <<-END
|
71
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
72
|
+
<!DOCTYPE greeting SYSTEM "Hello DTD" "http://foo/hello.dtd">
|
73
|
+
<greeting mv:generate="foo/bar"><hello>World</hello></greeting>
|
74
|
+
END
|
75
|
+
expected = {
|
76
|
+
'foo/bar' => %q{<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE greeting SYSTEM "Hello DTD" "http://foo/hello.dtd"><greeting><hello>World</hello></greeting>}
|
77
|
+
}
|
78
|
+
assert_template_result expected, template
|
11
79
|
end
|
12
80
|
|
81
|
+
# test that xml doctype is retained in output
|
82
|
+
def test_xml_doctype_external_check_newlines
|
83
|
+
template = %Q{<?xml version="1.0" ?>\n<!DOCTYPE greeting SYSTEM "Hello DTD" "hello.dtd">\n<greeting mv:generate="foo/bar"><hello>World</hello></greeting>}
|
84
|
+
expected = {
|
85
|
+
'foo/bar' => %Q{<?xml version="1.0" ?>\n<!DOCTYPE greeting SYSTEM "Hello DTD" "hello.dtd">\n<greeting><hello>World</hello></greeting>}
|
86
|
+
}
|
87
|
+
assert_template_result expected, template, {}, nil, false # lets not normalize whitespace so we can see if newlines are in there
|
88
|
+
end
|
89
|
+
|
90
|
+
|
13
91
|
def test_attr
|
14
92
|
template = <<-END
|
15
93
|
<div mv:generate='foo/bar'>
|
@@ -93,7 +171,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
93
171
|
def test_block_and_content
|
94
172
|
template = <<-END
|
95
173
|
<div mv:generate='foo/bar'>
|
96
|
-
<table>
|
174
|
+
<table>
|
97
175
|
<tr mv:block="@products.each do |product|">
|
98
176
|
<td>Name:</td><td mv:content="product.name">hello world</td>
|
99
177
|
</tr>
|
@@ -101,7 +179,31 @@ class TestTemplate < Test::Unit::TestCase
|
|
101
179
|
</div>
|
102
180
|
END
|
103
181
|
expected = {
|
104
|
-
'foo/bar' => "<div><table><% @products.each do |product|
|
182
|
+
'foo/bar' => "<div><table><% @products.each do |product| -%><tr><td>Name:</td><td><%= product.name %></td></tr><% end -%></table></div>"
|
183
|
+
}
|
184
|
+
assert_template_result expected, template
|
185
|
+
end
|
186
|
+
|
187
|
+
def test_eval
|
188
|
+
template = <<-END
|
189
|
+
<div mv:generate='foo/bar'>
|
190
|
+
<span mv:eval="i = 1">foo bar</span>
|
191
|
+
</div>
|
192
|
+
END
|
193
|
+
expected = {
|
194
|
+
'foo/bar' => "<div><% i = 1 -%><span>foo bar</span></div>"
|
195
|
+
}
|
196
|
+
assert_template_result expected, template
|
197
|
+
end
|
198
|
+
|
199
|
+
def test_eval_and_if
|
200
|
+
template = <<-END
|
201
|
+
<div mv:generate='foo/bar'>
|
202
|
+
<span mv:if="cat == 'blue'" mv:eval="i = 1">foo bar</span>
|
203
|
+
</div>
|
204
|
+
END
|
205
|
+
expected = {
|
206
|
+
'foo/bar' => "<div><% if( cat == 'blue' ) -%><% i = 1 -%><span>foo bar</span><% end -%></div>"
|
105
207
|
}
|
106
208
|
assert_template_result expected, template
|
107
209
|
end
|
@@ -115,7 +217,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
115
217
|
</div>
|
116
218
|
END
|
117
219
|
expected = {
|
118
|
-
'foo/bar' => "<div><%= form_tag {:action => 'create'}, :method => \"get\" %>hello world
|
220
|
+
'foo/bar' => "<div><%= form_tag( { :action => 'create' }, :method => \"get\" ) %>hello world </form></div>"
|
119
221
|
}
|
120
222
|
assert_template_result expected, template
|
121
223
|
end
|
@@ -127,7 +229,31 @@ class TestTemplate < Test::Unit::TestCase
|
|
127
229
|
</div>
|
128
230
|
END
|
129
231
|
expected = {
|
130
|
-
'foo/bar' => "<div><%= link_to 'Hello World', :action => 'show', :id => @product %></div>"
|
232
|
+
'foo/bar' => "<div><%= link_to( 'Hello World', :action => 'show', :id => @product ) %></div>"
|
233
|
+
}
|
234
|
+
assert_template_result expected, template
|
235
|
+
end
|
236
|
+
|
237
|
+
def test_link_to_and_if
|
238
|
+
template = <<-END
|
239
|
+
<div mv:generate='foo/bar'>
|
240
|
+
<a href="#" mv:if="@product_pages.current.next" mv:link_to=":page => @product_pages.current.next">Hello World</a>
|
241
|
+
</div>
|
242
|
+
END
|
243
|
+
expected = {
|
244
|
+
'foo/bar' => "<div><% if( @product_pages.current.next ) -%><%= link_to( 'Hello World', :page => @product_pages.current.next ) %><% end -%></div>"
|
245
|
+
}
|
246
|
+
assert_template_result expected, template
|
247
|
+
end
|
248
|
+
|
249
|
+
def test_link_to_merge
|
250
|
+
template = <<-END
|
251
|
+
<div mv:generate='foo/bar'>
|
252
|
+
<a href="#" mv:link_to=":action => 'show', :id => @product" class="red">Hello World</a>
|
253
|
+
</div>
|
254
|
+
END
|
255
|
+
expected = {
|
256
|
+
'foo/bar' => "<div><%= link_to( 'Hello World', { :action => 'show', :id => @product }, :class => \"red\" ) %></div>"
|
131
257
|
}
|
132
258
|
assert_template_result expected, template
|
133
259
|
end
|
@@ -139,11 +265,60 @@ class TestTemplate < Test::Unit::TestCase
|
|
139
265
|
</div>
|
140
266
|
END
|
141
267
|
expected = {
|
142
|
-
'foo/bar' => "<div><%= link_to_if @product_pages.current.previous, 'Previous page', {:page => @product_pages.current.previous } %></div>"
|
268
|
+
'foo/bar' => "<div><%= link_to_if( @product_pages.current.previous, 'Previous page', {:page => @product_pages.current.previous } ) %></div>"
|
269
|
+
}
|
270
|
+
assert_template_result expected, template
|
271
|
+
end
|
272
|
+
|
273
|
+
def test_link_to_if_merge
|
274
|
+
template = <<-END
|
275
|
+
<div mv:generate='foo/bar'>
|
276
|
+
<a href="#" mv:link_to_if="@product_pages.current.previous, {:page => @product_pages.current.previous } " class="red">Previous page</a>
|
277
|
+
</div>
|
278
|
+
END
|
279
|
+
expected = {
|
280
|
+
'foo/bar' => "<div><%= link_to_if( @product_pages.current.previous, 'Previous page', {:page => @product_pages.current.previous }, :class => \"red\" ) %></div>"
|
281
|
+
}
|
282
|
+
assert_template_result expected, template
|
283
|
+
end
|
284
|
+
|
285
|
+
def test_link_to_function
|
286
|
+
template = <<-END
|
287
|
+
<div mv:generate='foo/bar'>
|
288
|
+
<a href="#" mv:link_to_function="alert('hi there');" id="hw" class="red">Hello World</a>
|
289
|
+
</div>
|
290
|
+
END
|
291
|
+
expected = {
|
292
|
+
'foo/bar' => "<div><%= link_to_function( 'Hello World', \"alert('hi there');\", :class => \"red\", :id => \"hw\" ) %></div>"
|
293
|
+
}
|
294
|
+
assert_template_result expected, template
|
295
|
+
end
|
296
|
+
|
297
|
+
def test_link_to_function_if_js
|
298
|
+
template = <<-END
|
299
|
+
<div mv:generate='foo/bar'>
|
300
|
+
<a href="#" mv:link_to_function="if(true){ alert('hi there'); }" id="hw" class="red">Hello World</a>
|
301
|
+
</div>
|
302
|
+
END
|
303
|
+
expected = {
|
304
|
+
'foo/bar' => "<div><%= link_to_function( 'Hello World', \"if(true){ alert('hi there'); }\", :class => \"red\", :id => \"hw\" ) %></div>"
|
143
305
|
}
|
144
306
|
assert_template_result expected, template
|
145
307
|
end
|
146
308
|
|
309
|
+
def test_link_to_function_if_js_merged
|
310
|
+
template = <<-END
|
311
|
+
<div mv:generate='foo/bar'>
|
312
|
+
<a href="#" mv:link_to_function="'foobarfun()', :id => 'hw'" class="red">Hello World</a>
|
313
|
+
</div>
|
314
|
+
END
|
315
|
+
expected = {
|
316
|
+
'foo/bar' => "<div><%= link_to_function( 'Hello World', 'foobarfun()', :id => 'hw', :class => \"red\" ) %></div>"
|
317
|
+
}
|
318
|
+
assert_template_result expected, template
|
319
|
+
end
|
320
|
+
|
321
|
+
|
147
322
|
def test_submit
|
148
323
|
template = <<-END
|
149
324
|
<div mv:generate='foo/bar'>
|
@@ -151,7 +326,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
151
326
|
</div>
|
152
327
|
END
|
153
328
|
expected = {
|
154
|
-
'foo/bar' => "<div><%= submit_tag 'Hello World', :foo => 'bar' %></div>"
|
329
|
+
'foo/bar' => "<div><%= submit_tag( 'Hello World', :foo => 'bar' ) %></div>"
|
155
330
|
}
|
156
331
|
assert_template_result expected, template
|
157
332
|
end
|
@@ -163,7 +338,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
163
338
|
</div>
|
164
339
|
END
|
165
340
|
expected = {
|
166
|
-
'foo/bar' => "<div><%= text_field 'product', 'price', :maxlength => 21, :size => 10 %></div>"
|
341
|
+
'foo/bar' => "<div><%= text_field( 'product', 'price', :maxlength => 21, :size => 10 ) %></div>"
|
167
342
|
}
|
168
343
|
assert_template_result expected, template
|
169
344
|
end
|
@@ -175,7 +350,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
175
350
|
</div>
|
176
351
|
END
|
177
352
|
expected = {
|
178
|
-
'foo/bar' => "<div><%= hidden_field 'product', 'price' %></div>"
|
353
|
+
'foo/bar' => "<div><%= hidden_field( 'product', 'price' ) %></div>"
|
179
354
|
}
|
180
355
|
assert_template_result expected, template
|
181
356
|
end
|
@@ -187,7 +362,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
187
362
|
</div>
|
188
363
|
END
|
189
364
|
expected = {
|
190
|
-
'foo/bar' => "<div><%= password_field 'product', 'price', :maxlength => 21, :size => 10 %></div>"
|
365
|
+
'foo/bar' => "<div><%= password_field( 'product', 'price', :maxlength => 21, :size => 10 ) %></div>"
|
191
366
|
}
|
192
367
|
assert_template_result expected, template
|
193
368
|
end
|
@@ -201,7 +376,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
201
376
|
</div>
|
202
377
|
END
|
203
378
|
expected = {
|
204
|
-
'foo/bar' => "<div><%= text_area 'product', 'desc', :class => \"foo\", :cols => 21, :disabled => true, :readonly => true, :rows => 10, :style => \"bar\" %></div>"
|
379
|
+
'foo/bar' => "<div><%= text_area( 'product', 'desc', :class => \"foo\", :cols => 21, :disabled => true, :readonly => true, :rows => 10, :style => \"bar\" ) %></div>"
|
205
380
|
}
|
206
381
|
assert_template_result expected, template
|
207
382
|
end
|
@@ -224,7 +399,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
224
399
|
<span mv:replace="h product[:price]">foo bar</span>
|
225
400
|
</div>
|
226
401
|
END
|
227
|
-
expected = { }
|
402
|
+
expected = { }
|
228
403
|
assert_template_result expected, template
|
229
404
|
end
|
230
405
|
|
@@ -301,7 +476,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
301
476
|
</div>
|
302
477
|
END
|
303
478
|
expected = {
|
304
|
-
'foo/bar' => "<div><% if @hello
|
479
|
+
'foo/bar' => "<div><% if( @hello ) -%><div><% end -%><foo>bar</foo><% if( @hello ) -%></div><% end -%></div>"
|
305
480
|
}
|
306
481
|
assert_template_result expected, template
|
307
482
|
end
|
@@ -361,10 +536,10 @@ class TestTemplate < Test::Unit::TestCase
|
|
361
536
|
|
362
537
|
# Only simplify elements that are specified in the DTD as being empty, collapsing others can cause parsing
|
363
538
|
# or rendering problems in browsers. Uses constant XHTMLEmptyElementNameSet to find elements that should be
|
364
|
-
# collapsed.
|
539
|
+
# collapsed.
|
365
540
|
# http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_XHTML-1.0-Strict
|
366
541
|
# xhtml-1.0-Strict empty elements are:
|
367
|
-
# base, meta, link, hr, br, param, img, area, input, col
|
542
|
+
# base, meta, link, hr, br, param, img, area, input, col
|
368
543
|
def test_simplify_empty_elements
|
369
544
|
template = <<-END
|
370
545
|
<div mv:generate='foo/bar'>
|
@@ -475,7 +650,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
475
650
|
</div>
|
476
651
|
END
|
477
652
|
expected = {
|
478
|
-
'foo/bar' => "<div><%= image_tag 'cat.jpg' %></div>"
|
653
|
+
'foo/bar' => "<div><%= image_tag( 'cat.jpg' ) %></div>"
|
479
654
|
}
|
480
655
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
481
656
|
end
|
@@ -487,7 +662,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
487
662
|
</div>
|
488
663
|
END
|
489
664
|
expected = {
|
490
|
-
'foo/bar' => "<div><%= image_tag 'cat.jpg' %></div>"
|
665
|
+
'foo/bar' => "<div><%= image_tag( 'cat.jpg' ) %></div>"
|
491
666
|
}
|
492
667
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
493
668
|
end
|
@@ -499,7 +674,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
499
674
|
</div>
|
500
675
|
END
|
501
676
|
expected = {
|
502
|
-
'foo/bar' => "<div><%= image_tag '/myimages/cat.jpg' %></div>"
|
677
|
+
'foo/bar' => "<div><%= image_tag( '/myimages/cat.jpg' ) %></div>"
|
503
678
|
}
|
504
679
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
505
680
|
end
|
@@ -511,7 +686,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
511
686
|
</div>
|
512
687
|
END
|
513
688
|
expected = {
|
514
|
-
'foo/bar' => "<div><%= image_tag 'cat.jpg', :
|
689
|
+
'foo/bar' => "<div><%= image_tag( 'cat.jpg', :height => 10, :width => 20 ) %></div>"
|
515
690
|
}
|
516
691
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
517
692
|
end
|
@@ -523,7 +698,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
523
698
|
</div>
|
524
699
|
END
|
525
700
|
expected = {
|
526
|
-
'foo/bar' => "<div><%= image_tag 'cat.jpg', :height =>
|
701
|
+
'foo/bar' => "<div><%= image_tag( 'cat.jpg', :height => 10 ) %></div>"
|
527
702
|
}
|
528
703
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
529
704
|
end
|
@@ -535,7 +710,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
535
710
|
</div>
|
536
711
|
END
|
537
712
|
expected = {
|
538
|
-
'foo/bar' => "<div><%= image_tag 'cat.jpg', :width =>
|
713
|
+
'foo/bar' => "<div><%= image_tag( 'cat.jpg', :width => 20 ) %></div>"
|
539
714
|
}
|
540
715
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
541
716
|
end
|
@@ -547,7 +722,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
547
722
|
</div>
|
548
723
|
END
|
549
724
|
expected = {
|
550
|
-
'foo/bar' => "<div><%= image_tag 'cat.jpg', :alt =>
|
725
|
+
'foo/bar' => "<div><%= image_tag( 'cat.jpg', :alt => \"my cat\", :height => 10, :width => 20 ) %></div>"
|
551
726
|
}
|
552
727
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
553
728
|
end
|
@@ -559,7 +734,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
559
734
|
</div>
|
560
735
|
END
|
561
736
|
expected = {
|
562
|
-
'foo/bar' => "<div><%= image_tag 'cat.jpg', :alt =>
|
737
|
+
'foo/bar' => "<div><%= image_tag( 'cat.jpg', :alt => \"my cat\" ) %></div>"
|
563
738
|
}
|
564
739
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
565
740
|
end
|
@@ -571,7 +746,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
571
746
|
</div>
|
572
747
|
END
|
573
748
|
expected = {
|
574
|
-
'foo/bar' => "<div><%= image_tag 'cat.jpg', :alt =>
|
749
|
+
'foo/bar' => "<div><%= image_tag( 'cat.jpg', :alt => \"my cat\", :class => \"blue\" ) %></div>"
|
575
750
|
}
|
576
751
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
577
752
|
end
|
@@ -583,7 +758,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
583
758
|
</div>
|
584
759
|
END
|
585
760
|
expected = {
|
586
|
-
'foo/bar' => "<div><%= javascript_include_tag 'cat.js' %></div>"
|
761
|
+
'foo/bar' => "<div><%= javascript_include_tag( 'cat.js' ) %></div>"
|
587
762
|
}
|
588
763
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
589
764
|
end
|
@@ -595,7 +770,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
595
770
|
</div>
|
596
771
|
END
|
597
772
|
expected = {
|
598
|
-
'foo/bar' => "<div><%= javascript_include_tag :defaults %></div>"
|
773
|
+
'foo/bar' => "<div><%= javascript_include_tag( :defaults ) %></div>"
|
599
774
|
}
|
600
775
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
601
776
|
end
|
@@ -607,7 +782,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
607
782
|
</div>
|
608
783
|
END
|
609
784
|
expected = {
|
610
|
-
'foo/bar' => "<div><%= javascript_include_tag 'cat.js' %></div>"
|
785
|
+
'foo/bar' => "<div><%= javascript_include_tag( 'cat.js' ) %></div>"
|
611
786
|
}
|
612
787
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
613
788
|
end
|
@@ -619,7 +794,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
619
794
|
</div>
|
620
795
|
END
|
621
796
|
expected = {
|
622
|
-
'foo/bar' => "<div><%= javascript_include_tag '/myjavascripts/cat.js' %></div>"
|
797
|
+
'foo/bar' => "<div><%= javascript_include_tag( '/myjavascripts/cat.js' ) %></div>"
|
623
798
|
}
|
624
799
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
625
800
|
end
|
@@ -631,7 +806,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
631
806
|
</div>
|
632
807
|
END
|
633
808
|
expected = {
|
634
|
-
'foo/bar' => "<div><%= check_box 'cat', 'dog', {:egg => 'chicken'}, 'yes', 'no' %></div>"
|
809
|
+
'foo/bar' => "<div><%= check_box( 'cat', 'dog', {:egg => 'chicken'}, 'yes', 'no' ) %></div>"
|
635
810
|
}
|
636
811
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
637
812
|
end
|
@@ -643,7 +818,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
643
818
|
</div>
|
644
819
|
END
|
645
820
|
expected = {
|
646
|
-
'foo/bar' => "<div><%= check_box 'cat', 'dog' %></div>"
|
821
|
+
'foo/bar' => "<div><%= check_box( 'cat', 'dog' ) %></div>"
|
647
822
|
}
|
648
823
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
649
824
|
end
|
@@ -655,7 +830,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
655
830
|
</div>
|
656
831
|
END
|
657
832
|
expected = {
|
658
|
-
'foo/bar' => "<div><%= check_box 'cat', 'dog', :egg => 'chicken' %></div>"
|
833
|
+
'foo/bar' => "<div><%= check_box( 'cat', 'dog', :egg => 'chicken' ) %></div>"
|
659
834
|
}
|
660
835
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
661
836
|
end
|
@@ -667,7 +842,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
667
842
|
</div>
|
668
843
|
END
|
669
844
|
expected = {
|
670
|
-
'foo/bar' => "<div><%= check_box 'cat', 'dog', :class => \"green\", :id => \"boo\" %></div>"
|
845
|
+
'foo/bar' => "<div><%= check_box( 'cat', 'dog', :class => \"green\", :id => \"boo\" ) %></div>"
|
671
846
|
}
|
672
847
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
673
848
|
end
|
@@ -679,7 +854,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
679
854
|
</div>
|
680
855
|
END
|
681
856
|
expected = {
|
682
|
-
'foo/bar' => "<div><%= check_box 'cat', 'dog', :hello => 'world', :class => \"green\", :id => \"boo\" %></div>"
|
857
|
+
'foo/bar' => "<div><%= check_box( 'cat', 'dog', :hello => 'world', :class => \"green\", :id => \"boo\" ) %></div>"
|
683
858
|
}
|
684
859
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
685
860
|
end
|
@@ -691,7 +866,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
691
866
|
</div>
|
692
867
|
END
|
693
868
|
expected = {
|
694
|
-
'foo/bar' => "<div><%= radio_button 'cat', 'dog', 'egg' %></div>"
|
869
|
+
'foo/bar' => "<div><%= radio_button( 'cat', 'dog', 'egg' ) %></div>"
|
695
870
|
}
|
696
871
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
697
872
|
end
|
@@ -703,7 +878,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
703
878
|
</div>
|
704
879
|
END
|
705
880
|
expected = {
|
706
|
-
'foo/bar' => "<div><%= radio_button 'cat', 'dog', 'egg' %></div>"
|
881
|
+
'foo/bar' => "<div><%= radio_button( 'cat', 'dog', 'egg' ) %></div>"
|
707
882
|
}
|
708
883
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
709
884
|
end
|
@@ -715,7 +890,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
715
890
|
</div>
|
716
891
|
END
|
717
892
|
expected = {
|
718
|
-
'foo/bar' => "<div><%= radio_button 'cat', 'dog', 'egg', :class => \"green\", :id => \"boo\" %></div>"
|
893
|
+
'foo/bar' => "<div><%= radio_button( 'cat', 'dog', 'egg', :class => \"green\", :id => \"boo\" ) %></div>"
|
719
894
|
}
|
720
895
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
721
896
|
end
|
@@ -727,7 +902,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
727
902
|
</div>
|
728
903
|
END
|
729
904
|
expected = {
|
730
|
-
'foo/bar' => "<div><%= radio_button 'cat', 'dog', 'egg', :hello => 'world', :class => \"green\", :id => \"boo\" %></div>"
|
905
|
+
'foo/bar' => "<div><%= radio_button( 'cat', 'dog', 'egg', :hello => 'world', :class => \"green\", :id => \"boo\" ) %></div>"
|
731
906
|
}
|
732
907
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
733
908
|
end
|
@@ -742,7 +917,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
742
917
|
</div>
|
743
918
|
END
|
744
919
|
expected = {
|
745
|
-
'foo/bar' => "<div><%= select 'product', 'category_id', ['hardware', 'software'], {:hello => 'world'}, :readonly => true %></div>"
|
920
|
+
'foo/bar' => "<div><%= select( 'product', 'category_id', ['hardware', 'software'], {:hello => 'world'}, :readonly => true ) %></div>"
|
746
921
|
}
|
747
922
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
748
923
|
end
|
@@ -757,7 +932,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
757
932
|
</div>
|
758
933
|
END
|
759
934
|
expected = {
|
760
|
-
'foo/bar' => "<div><%= select 'product', 'category_id', ['hardware', 'software'] %></div>"
|
935
|
+
'foo/bar' => "<div><%= select( 'product', 'category_id', ['hardware', 'software'] ) %></div>"
|
761
936
|
}
|
762
937
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
763
938
|
end
|
@@ -772,7 +947,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
772
947
|
</div>
|
773
948
|
END
|
774
949
|
expected = {
|
775
|
-
'foo/bar' => "<div><%= select 'product', 'category_id', Categories.find_all.collect{|c| [c.name, c.id]} %></div>"
|
950
|
+
'foo/bar' => "<div><%= select( 'product', 'category_id', Categories.find_all.collect{|c| [c.name, c.id]} ) %></div>"
|
776
951
|
}
|
777
952
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
778
953
|
end
|
@@ -787,7 +962,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
787
962
|
</div>
|
788
963
|
END
|
789
964
|
expected = {
|
790
|
-
'foo/bar' => "<div><%= select 'product', 'category_id', Categories.find_all.collect{|c| [c.name, c.id]}, {:hello => :world}, :readonly => true, :class => \"green\", :id => \"sel1\" %></div>"
|
965
|
+
'foo/bar' => "<div><%= select( 'product', 'category_id', Categories.find_all.collect{|c| [c.name, c.id]}, {:hello => :world}, :readonly => true, :class => \"green\", :id => \"sel1\" ) %></div>"
|
791
966
|
}
|
792
967
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
793
968
|
end
|
@@ -802,7 +977,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
802
977
|
</div>
|
803
978
|
END
|
804
979
|
expected = {
|
805
|
-
'foo/bar' => "<div><%= collection_select 'product', 'category_id', Category.find(:all), 'id', 'name', {:hello => 'world'}, :readonly => true %></div>"
|
980
|
+
'foo/bar' => "<div><%= collection_select( 'product', 'category_id', Category.find(:all), 'id', 'name', {:hello => 'world'}, :readonly => true ) %></div>"
|
806
981
|
}
|
807
982
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
808
983
|
end
|
@@ -817,7 +992,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
817
992
|
</div>
|
818
993
|
END
|
819
994
|
expected = {
|
820
|
-
'foo/bar' => "<div><%= collection_select 'product', 'category_id', Category.find(:all), 'id', 'name' %></div>"
|
995
|
+
'foo/bar' => "<div><%= collection_select( 'product', 'category_id', Category.find(:all), 'id', 'name' ) %></div>"
|
821
996
|
}
|
822
997
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
823
998
|
end
|
@@ -832,7 +1007,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
832
1007
|
</div>
|
833
1008
|
END
|
834
1009
|
expected = {
|
835
|
-
'foo/bar' => "<div><%= collection_select 'product', 'category_id', Category.find(:all), :id, :name, {:hello => 'world'}, :readonly => true %></div>"
|
1010
|
+
'foo/bar' => "<div><%= collection_select( 'product', 'category_id', Category.find(:all), :id, :name, {:hello => 'world'}, :readonly => true ) %></div>"
|
836
1011
|
}
|
837
1012
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
838
1013
|
end
|
@@ -847,7 +1022,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
847
1022
|
</div>
|
848
1023
|
END
|
849
1024
|
expected = {
|
850
|
-
'foo/bar' => "<div><%= collection_select 'product', 'category_id', Category.find(:all), 'id', 'name', {:hello => 'world'}, :readonly => true, :class => \"green\", :id => \"sel1\" %></div>"
|
1025
|
+
'foo/bar' => "<div><%= collection_select( 'product', 'category_id', Category.find(:all), 'id', 'name', {:hello => 'world'}, :readonly => true, :class => \"green\", :id => \"sel1\" ) %></div>"
|
851
1026
|
}
|
852
1027
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
853
1028
|
end
|
@@ -862,7 +1037,7 @@ class TestTemplate < Test::Unit::TestCase
|
|
862
1037
|
</div>
|
863
1038
|
END
|
864
1039
|
expected = {
|
865
|
-
'foo/bar' => "<div><%= collection_select 'product', 'category_id', Category.find(:all), 'id', 'name', {}, :class => \"green\", :id => \"sel1\" %></div>"
|
1040
|
+
'foo/bar' => "<div><%= collection_select( 'product', 'category_id', Category.find(:all), 'id', 'name', {}, :class => \"green\", :id => \"sel1\" ) %></div>"
|
866
1041
|
}
|
867
1042
|
assert_template_result expected, template, :template_pathname => 'one/two_three.four'
|
868
1043
|
end
|