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,8 +3,160 @@
|
|
3
3
|
require 'test/unit'
|
4
4
|
currentPath = File.dirname(__FILE__)
|
5
5
|
require File.join( currentPath, '../../lib/masterview' )
|
6
|
+
require File.join( currentPath, '../test_helper' )
|
7
|
+
|
8
|
+
class DirectiveExample < MasterView::DirectiveBase
|
9
|
+
attr_arg :obj, :quote => true
|
10
|
+
attr_arg(:method) { 'override' }
|
11
|
+
attr_arg(:foo) { |x| x.downcase }
|
12
|
+
attr_arg :collection, :quote => true
|
13
|
+
attr_arg :value_method, :quote => true
|
14
|
+
attr_arg :text_method, :quote => true
|
15
|
+
attr_arg :options, :default => {}
|
16
|
+
attr_arg :html_options, :append_element_attrs => [:common_html, :onclick]
|
17
|
+
|
18
|
+
event :before_stag do
|
19
|
+
render erb_content( 'text_area', :obj, :method, :foo )
|
20
|
+
end
|
21
|
+
|
22
|
+
event :after_stag, :foo => :bar do
|
23
|
+
render :nothing
|
24
|
+
end
|
25
|
+
|
26
|
+
event :content, :render => :nothing #rolls up all content between after_stag and before_etag
|
27
|
+
|
28
|
+
event :stag do
|
29
|
+
# unless render something or render :nothing is called, then dcs.render will still occur implicitely
|
30
|
+
end
|
31
|
+
|
32
|
+
event :etag do
|
33
|
+
con = render_result() # get the dcs.render result so we can modify it
|
34
|
+
con.gsub!( /foo/, 'bar' )
|
35
|
+
render con
|
36
|
+
end
|
37
|
+
|
38
|
+
event :element do # this will allow replacement of entire element and children
|
39
|
+
render erb_eval( 'execute something' )
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class DirectiveExampleNoStag < MasterView::DirectiveBase
|
44
|
+
event :before_stag do
|
45
|
+
render 'foo'
|
46
|
+
end
|
47
|
+
|
48
|
+
event :after_etag, :render => :nothing
|
49
|
+
end
|
50
|
+
|
51
|
+
class DirectiveExampleRenderNothingOption < MasterView::DirectiveBase
|
52
|
+
event :before_stag do
|
53
|
+
render 'foo'
|
54
|
+
end
|
55
|
+
|
56
|
+
event :stag, :render => :nothing
|
57
|
+
|
58
|
+
event :etag, :render => :nothing do
|
59
|
+
render 'this should not be rendered'
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
class DirectiveExampleRenderNothingContent < MasterView::DirectiveBase
|
64
|
+
event :stag do
|
65
|
+
self.content = 'this is content, but will not be rendered'
|
66
|
+
render 'foo'
|
67
|
+
end
|
68
|
+
|
69
|
+
event :content, :render => :nothing
|
70
|
+
|
71
|
+
event :etag do
|
72
|
+
render 'bar'
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
class DirectiveExampleRenderNothingElement < MasterView::DirectiveBase
|
77
|
+
event :stag do
|
78
|
+
self.content = 'this is content, but will not be rendered'
|
79
|
+
render 'foo'
|
80
|
+
end
|
81
|
+
|
82
|
+
event :etag do
|
83
|
+
render 'bar'
|
84
|
+
end
|
85
|
+
|
86
|
+
event :element, :render => :nothing
|
87
|
+
end
|
88
|
+
|
89
|
+
class DirectiveExampleRenderNothingMethod < MasterView::DirectiveBase
|
90
|
+
event :stag do
|
91
|
+
render 'this will be cancelled out by :nothing call'
|
92
|
+
render :nothing
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
class DirectiveExampleParamsArray < MasterView::DirectiveBase
|
97
|
+
attr_arg :obj
|
98
|
+
attr_arg :params, :varargs => true
|
99
|
+
|
100
|
+
event :stag do
|
101
|
+
render erb_content( 'foo', :obj, :params )
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
class DirectiveExampleNonhashFirstString < MasterView::DirectiveBase
|
106
|
+
attr_arg :name do |value, args|
|
107
|
+
if value.respond_to?(:include?) and value.include?('=>')
|
108
|
+
args.unshift value
|
109
|
+
nil
|
110
|
+
else
|
111
|
+
value
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
attr_arg :options
|
116
|
+
end
|
117
|
+
|
118
|
+
|
119
|
+
class DirectiveExampleInst < MasterView::DirectiveBase
|
120
|
+
attr_arg :name do |value, args, inst|
|
121
|
+
if value.respond_to?(:include?) and value.include?('=>')
|
122
|
+
args.unshift value
|
123
|
+
inst.quote(inst.element_attrs[:foo])
|
124
|
+
else
|
125
|
+
value
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
attr_arg :options
|
130
|
+
|
131
|
+
event :etag do
|
132
|
+
render erb_content( 'test', :name, :options )
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
class DirectiveWithChild < MasterView::DirectiveBase
|
138
|
+
event :before_child_td_stag do
|
139
|
+
end
|
140
|
+
|
141
|
+
event :child_any_etag do
|
142
|
+
end
|
143
|
+
|
144
|
+
event :descendant_th_content do
|
145
|
+
end
|
146
|
+
|
147
|
+
event :after_descendant_th_etag do
|
148
|
+
end
|
149
|
+
|
150
|
+
event :descendant_th_etag do
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
class TestDirectiveBaseNew < Test::Unit::TestCase
|
155
|
+
|
156
|
+
# shortcut refs for internal DirectiveDSL implementation classes
|
157
|
+
EventDef = MasterView::DirectiveProcessing::EventDef
|
158
|
+
RenderAccumulator = MasterView::DirectiveProcessing::RenderAccumulator
|
6
159
|
|
7
|
-
class TestDirectiveBase < Test::Unit::TestCase
|
8
160
|
def setup
|
9
161
|
@base = MasterView::DirectiveBase.new('')
|
10
162
|
end
|
@@ -13,6 +165,10 @@ class TestDirectiveBase < Test::Unit::TestCase
|
|
13
165
|
assert_equal '\'hello\'', @base.quote('hello')
|
14
166
|
end
|
15
167
|
|
168
|
+
def test_quote_double
|
169
|
+
assert_equal '"hello"', @base.quote('hello', '"')
|
170
|
+
end
|
171
|
+
|
16
172
|
def test_quote_if
|
17
173
|
assert_equal '\'helloWorld0123\'', @base.quote_if('helloWorld0123')
|
18
174
|
assert_equal 'hello world', @base.quote_if('hello world')
|
@@ -26,4 +182,367 @@ class TestDirectiveBase < Test::Unit::TestCase
|
|
26
182
|
assert_equal '\'\'', @base.quote_if('')
|
27
183
|
end
|
28
184
|
|
185
|
+
def test_event_def_valid_mappings
|
186
|
+
assert EventDef.valid_event_mapping?( :before_stag )
|
187
|
+
assert EventDef.valid_event_mapping?( :stag )
|
188
|
+
assert EventDef.valid_event_mapping?( :after_stag )
|
189
|
+
assert EventDef.valid_event_mapping?( :content )
|
190
|
+
assert EventDef.valid_event_mapping?( :before_etag )
|
191
|
+
assert EventDef.valid_event_mapping?( :etag )
|
192
|
+
assert EventDef.valid_event_mapping?( :after_etag )
|
193
|
+
assert EventDef.valid_event_mapping?( :element )
|
194
|
+
|
195
|
+
assert EventDef.valid_event_mapping?( :before_child_td_stag )
|
196
|
+
assert EventDef.valid_event_mapping?( :child_td_stag )
|
197
|
+
assert EventDef.valid_event_mapping?( :after_child_td_stag )
|
198
|
+
assert EventDef.valid_event_mapping?( :child_td_content )
|
199
|
+
assert EventDef.valid_event_mapping?( :child_td_element )
|
200
|
+
assert EventDef.valid_event_mapping?( :before_child_any_stag )
|
201
|
+
assert EventDef.valid_event_mapping?( :child_any_stag )
|
202
|
+
assert EventDef.valid_event_mapping?( :after_child_any_stag )
|
203
|
+
assert EventDef.valid_event_mapping?( :child_any_content )
|
204
|
+
assert EventDef.valid_event_mapping?( :child_any_element )
|
205
|
+
assert EventDef.valid_event_mapping?( :before_child_tbody_td_stag )
|
206
|
+
assert EventDef.valid_event_mapping?( :child_tbody_td_stag )
|
207
|
+
assert EventDef.valid_event_mapping?( :after_child_tbody_td_stag )
|
208
|
+
assert EventDef.valid_event_mapping?( :child_tbody_td_content )
|
209
|
+
assert EventDef.valid_event_mapping?( :child_tbody_td_element )
|
210
|
+
|
211
|
+
assert EventDef.valid_event_mapping?( :before_descendant_td_stag )
|
212
|
+
assert EventDef.valid_event_mapping?( :descendant_td_stag )
|
213
|
+
assert EventDef.valid_event_mapping?( :after_descendant_td_stag )
|
214
|
+
assert EventDef.valid_event_mapping?( :descendant_td_content )
|
215
|
+
assert EventDef.valid_event_mapping?( :descendant_td_element )
|
216
|
+
assert EventDef.valid_event_mapping?( :before_descendant_any_stag )
|
217
|
+
assert EventDef.valid_event_mapping?( :descendant_any_stag )
|
218
|
+
assert EventDef.valid_event_mapping?( :after_descendant_any_stag )
|
219
|
+
assert EventDef.valid_event_mapping?( :descendant_any_content )
|
220
|
+
assert EventDef.valid_event_mapping?( :descendant_any_element )
|
221
|
+
assert EventDef.valid_event_mapping?( :before_descendant_tbody_td_stag )
|
222
|
+
assert EventDef.valid_event_mapping?( :descendant_tbody_td_stag )
|
223
|
+
assert EventDef.valid_event_mapping?( :after_descendant_tbody_td_stag )
|
224
|
+
assert EventDef.valid_event_mapping?( :descendant_tbody_td_content )
|
225
|
+
assert EventDef.valid_event_mapping?( :descendant_tbody_td_element )
|
226
|
+
|
227
|
+
assert !EventDef.valid_event_mapping?( :foo )
|
228
|
+
assert !EventDef.valid_event_mapping?( :child_bar )
|
229
|
+
assert !EventDef.valid_event_mapping?( :before_child_hello )
|
230
|
+
end
|
231
|
+
|
232
|
+
def test_event_def_base_method
|
233
|
+
assert_equal [:stag], EventDef.base_methods_from_event( :before_stag )
|
234
|
+
assert_equal [:stag], EventDef.base_methods_from_event( :stag )
|
235
|
+
assert_equal [:stag], EventDef.base_methods_from_event( :after_stag )
|
236
|
+
assert_equal [:etag], EventDef.base_methods_from_event( :content )
|
237
|
+
assert_equal [:etag], EventDef.base_methods_from_event( :before_etag )
|
238
|
+
assert_equal [:etag], EventDef.base_methods_from_event( :etag )
|
239
|
+
assert_equal [:etag], EventDef.base_methods_from_event( :after_etag )
|
240
|
+
assert_equal [:stag, :etag], EventDef.base_methods_from_event( :element )
|
241
|
+
|
242
|
+
assert_equal [:child_td_stag], EventDef.base_methods_from_event( :before_child_td_stag )
|
243
|
+
assert_equal [:child_td_stag], EventDef.base_methods_from_event( :child_td_stag )
|
244
|
+
assert_equal [:child_td_stag], EventDef.base_methods_from_event( :after_child_td_stag )
|
245
|
+
assert_equal [:child_td_etag], EventDef.base_methods_from_event( :child_td_content )
|
246
|
+
assert_equal [:child_td_stag, :child_td_etag], EventDef.base_methods_from_event( :child_td_element )
|
247
|
+
assert_equal [:child_any_stag], EventDef.base_methods_from_event( :before_child_any_stag )
|
248
|
+
assert_equal [:child_any_stag], EventDef.base_methods_from_event( :child_any_stag )
|
249
|
+
assert_equal [:child_any_stag], EventDef.base_methods_from_event( :after_child_any_stag )
|
250
|
+
assert_equal [:child_any_etag], EventDef.base_methods_from_event( :child_any_content )
|
251
|
+
assert_equal [:child_any_stag, :child_any_etag], EventDef.base_methods_from_event( :child_any_element )
|
252
|
+
assert_equal [:child_tbody_td_stag], EventDef.base_methods_from_event( :before_child_tbody_td_stag )
|
253
|
+
assert_equal [:child_tbody_td_stag], EventDef.base_methods_from_event( :child_tbody_td_stag )
|
254
|
+
assert_equal [:child_tbody_td_stag], EventDef.base_methods_from_event( :after_child_tbody_td_stag )
|
255
|
+
assert_equal [:child_tbody_td_etag], EventDef.base_methods_from_event( :child_tbody_td_content )
|
256
|
+
assert_equal [:child_tbody_td_stag, :child_tbody_td_etag], EventDef.base_methods_from_event( :child_tbody_td_element )
|
257
|
+
|
258
|
+
assert_equal [:descendant_td_stag], EventDef.base_methods_from_event( :before_descendant_td_stag )
|
259
|
+
assert_equal [:descendant_td_stag], EventDef.base_methods_from_event( :descendant_td_stag )
|
260
|
+
assert_equal [:descendant_td_stag], EventDef.base_methods_from_event( :after_descendant_td_stag )
|
261
|
+
assert_equal [:descendant_td_etag], EventDef.base_methods_from_event( :descendant_td_content )
|
262
|
+
assert_equal [:descendant_td_stag, :descendant_td_etag], EventDef.base_methods_from_event( :descendant_td_element )
|
263
|
+
assert_equal [:descendant_any_stag], EventDef.base_methods_from_event( :before_descendant_any_stag )
|
264
|
+
assert_equal [:descendant_any_stag], EventDef.base_methods_from_event( :descendant_any_stag )
|
265
|
+
assert_equal [:descendant_any_stag], EventDef.base_methods_from_event( :after_descendant_any_stag )
|
266
|
+
assert_equal [:descendant_any_etag], EventDef.base_methods_from_event( :descendant_any_content )
|
267
|
+
assert_equal [:descendant_any_stag, :descendant_any_etag], EventDef.base_methods_from_event( :descendant_any_element )
|
268
|
+
assert_equal [:descendant_tbody_td_stag], EventDef.base_methods_from_event( :before_descendant_tbody_td_stag )
|
269
|
+
assert_equal [:descendant_tbody_td_stag], EventDef.base_methods_from_event( :descendant_tbody_td_stag )
|
270
|
+
assert_equal [:descendant_tbody_td_stag], EventDef.base_methods_from_event( :after_descendant_tbody_td_stag )
|
271
|
+
assert_equal [:descendant_tbody_td_etag], EventDef.base_methods_from_event( :descendant_tbody_td_content )
|
272
|
+
assert_equal [:descendant_tbody_td_stag, :descendant_tbody_td_etag], EventDef.base_methods_from_event( :descendant_tbody_td_element )
|
273
|
+
end
|
274
|
+
|
275
|
+
def test_event_def_method_events_from_base
|
276
|
+
assert_equal [:before_stag, :stag, :after_stag], EventDef.method_events_from_base( :stag )
|
277
|
+
assert_equal [:before_child_td_stag, :child_td_stag, :after_child_td_stag], EventDef.method_events_from_base( :child_td_stag )
|
278
|
+
assert_equal [:before_child_any_stag, :child_any_stag, :after_child_any_stag], EventDef.method_events_from_base( :child_any_stag )
|
279
|
+
assert_equal [:before_child_tbody_td_stag, :child_tbody_td_stag, :after_child_tbody_td_stag], EventDef.method_events_from_base( :child_tbody_td_stag )
|
280
|
+
assert_equal [:before_descendant_td_stag, :descendant_td_stag, :after_descendant_td_stag], EventDef.method_events_from_base( :descendant_td_stag )
|
281
|
+
assert_equal [:before_descendant_tbody_td_stag, :descendant_tbody_td_stag, :after_descendant_tbody_td_stag], EventDef.method_events_from_base( :descendant_tbody_td_stag )
|
282
|
+
|
283
|
+
assert_equal [:content, :before_etag, :etag, :after_etag, :element], EventDef.method_events_from_base( :etag )
|
284
|
+
assert_equal [:child_tbody_td_content, :before_child_tbody_td_etag, :child_tbody_td_etag, :after_child_tbody_td_etag, :child_tbody_td_element], EventDef.method_events_from_base( :child_tbody_td_etag )
|
285
|
+
assert_equal [:descendant_td_content, :before_descendant_td_etag, :descendant_td_etag, :after_descendant_td_etag, :descendant_td_element], EventDef.method_events_from_base( :descendant_td_etag )
|
286
|
+
assert_equal [:descendant_tbody_td_content, :before_descendant_tbody_td_etag, :descendant_tbody_td_etag, :after_descendant_tbody_td_etag, :descendant_tbody_td_element], EventDef.method_events_from_base( :descendant_tbody_td_etag )
|
287
|
+
end
|
288
|
+
|
289
|
+
|
290
|
+
# return array of events to check for the base
|
291
|
+
# :stag => [:before_stag, :stag, :after_stag],
|
292
|
+
# :etag => [:content, :before_etag, :etag, :after_etag, :element]
|
293
|
+
# def self.method_events_from_base(base_sym)
|
294
|
+
# base_str = base_sym.to_s
|
295
|
+
# case base_str
|
296
|
+
# when /(.*)stag/
|
297
|
+
# [
|
298
|
+
# ('before_'+base_str).to_sym,
|
299
|
+
# base_sym,
|
300
|
+
# ('after_'+base_str).to_sym
|
301
|
+
# ]
|
302
|
+
# when /(.*)etag/
|
303
|
+
# [
|
304
|
+
# ('\1content').to_sym,
|
305
|
+
# ('before_'+base_str).to_sym,
|
306
|
+
# base_sym,
|
307
|
+
# ('after_'+base_str).to_sym,
|
308
|
+
# ('\1element').to_sym
|
309
|
+
# ]
|
310
|
+
# end
|
311
|
+
# end
|
312
|
+
|
313
|
+
|
314
|
+
|
315
|
+
def test_attr_arg_defs
|
316
|
+
assert_equal 8, DirectiveExample.directive_class_def.attr_arg_defs.size
|
317
|
+
assert_equal :obj, DirectiveExample.directive_class_def.attr_arg_defs[0].name
|
318
|
+
assert_equal :method, DirectiveExample.directive_class_def.attr_arg_defs[1].name
|
319
|
+
assert_equal :foo, DirectiveExample.directive_class_def.attr_arg_defs[2].name
|
320
|
+
assert_equal :collection, DirectiveExample.directive_class_def.attr_arg_defs[3].name
|
321
|
+
assert_equal :value_method, DirectiveExample.directive_class_def.attr_arg_defs[4].name
|
322
|
+
assert_equal :text_method, DirectiveExample.directive_class_def.attr_arg_defs[5].name
|
323
|
+
assert_equal :options, DirectiveExample.directive_class_def.attr_arg_defs[6].name
|
324
|
+
assert_equal :html_options, DirectiveExample.directive_class_def.attr_arg_defs[7].name
|
325
|
+
|
326
|
+
assert_equal :obj, DirectiveExample.directive_class_def.find_attr_arg_def_by_name(:obj).name
|
327
|
+
assert_equal :method, DirectiveExample.directive_class_def.find_attr_arg_def_by_name(:method).name
|
328
|
+
assert_equal :foo, DirectiveExample.directive_class_def.find_attr_arg_def_by_name(:foo).name
|
329
|
+
assert_equal :collection, DirectiveExample.directive_class_def.find_attr_arg_def_by_name(:collection).name
|
330
|
+
assert_equal :value_method, DirectiveExample.directive_class_def.find_attr_arg_def_by_name(:value_method).name
|
331
|
+
assert_equal :text_method, DirectiveExample.directive_class_def.find_attr_arg_def_by_name(:text_method).name
|
332
|
+
assert_equal :options, DirectiveExample.directive_class_def.find_attr_arg_def_by_name(:options).name
|
333
|
+
assert_equal :html_options, DirectiveExample.directive_class_def.find_attr_arg_def_by_name(:html_options).name
|
334
|
+
|
335
|
+
assert_equal( { :quote => true }, DirectiveExample.directive_class_def.attr_arg_defs[0].options )
|
336
|
+
assert_equal( { }, DirectiveExample.directive_class_def.attr_arg_defs[1].options )
|
337
|
+
assert_equal( { }, DirectiveExample.directive_class_def.attr_arg_defs[2].options )
|
338
|
+
assert_equal( { :quote => true }, DirectiveExample.directive_class_def.attr_arg_defs[3].options )
|
339
|
+
assert_equal( { :quote => true }, DirectiveExample.directive_class_def.attr_arg_defs[4].options )
|
340
|
+
assert_equal( { :quote => true }, DirectiveExample.directive_class_def.attr_arg_defs[5].options )
|
341
|
+
assert_equal( { :default => {} }, DirectiveExample.directive_class_def.attr_arg_defs[6].options )
|
342
|
+
assert_equal( {}, DirectiveExample.directive_class_def.attr_arg_defs[6].optional_default )
|
343
|
+
assert_equal( { :append_element_attrs => [:common_html, :onclick] }, DirectiveExample.directive_class_def.attr_arg_defs[7].options )
|
344
|
+
end
|
345
|
+
|
346
|
+
def test_prepare_arg_instance_vars
|
347
|
+
d = DirectiveExample.new('product, desc, "Foo", coll, val, text, {:foo => :bar}, :readonly => false')
|
348
|
+
d.save_directive_call_stack(MasterView::ParserMock.createMockDCS())
|
349
|
+
d.element_attrs['class'] = 'red'
|
350
|
+
d.element_attrs['id'] = 'id1'
|
351
|
+
d.element_attrs['onclick'] = 'jsfunc'
|
352
|
+
d.prepare_arg_instance_vars
|
353
|
+
assert_equal "'product'", d.instance_variable_get(:@obj)
|
354
|
+
assert_equal 'override', d.instance_variable_get(:@method)
|
355
|
+
assert_equal '"foo"', d.instance_variable_get(:@foo)
|
356
|
+
assert_equal "'coll'", d.instance_variable_get(:@collection)
|
357
|
+
assert_equal "'val'", d.instance_variable_get(:@value_method)
|
358
|
+
assert_equal "'text'", d.instance_variable_get(:@text_method)
|
359
|
+
assert_equal '{:foo => :bar}', d.instance_variable_get(:@options)
|
360
|
+
assert_equal ':readonly => false, :class => "red", :id => "id1", :onclick => "jsfunc"', d.instance_variable_get(:@html_options)
|
361
|
+
end
|
362
|
+
|
363
|
+
def test_params_array
|
364
|
+
d = DirectiveExampleParamsArray.new('product, desc, "Foo", coll, val, text, {:foo => :bar}, :readonly => false')
|
365
|
+
dcs = MasterView::ParserMock.createMockDCS()
|
366
|
+
d.save_directive_call_stack(dcs)
|
367
|
+
d.prepare_arg_instance_vars
|
368
|
+
assert_equal "product", d.instance_variable_get(:@obj)
|
369
|
+
assert_equal ['desc', '"Foo"', 'coll', 'val', 'text', '{:foo => :bar}', ':readonly => false'], d.instance_variable_get(:@params)
|
370
|
+
|
371
|
+
d = DirectiveExampleParamsArray.new('product, desc, hello, world')
|
372
|
+
dcs = MasterView::ParserMock.createMockDCS()
|
373
|
+
d.save_directive_call_stack(dcs)
|
374
|
+
assert_equal ['<%= foo( product, desc, hello, world ) %>'], d.stag(dcs)
|
375
|
+
|
376
|
+
d = DirectiveExampleParamsArray.new('product')
|
377
|
+
d.save_directive_call_stack(MasterView::ParserMock.createMockDCS())
|
378
|
+
d.prepare_arg_instance_vars
|
379
|
+
assert_equal "product", d.instance_variable_get(:@obj)
|
380
|
+
assert_equal [], d.instance_variable_get(:@params)
|
381
|
+
|
382
|
+
d = DirectiveExampleParamsArray.new('product')
|
383
|
+
dcs = MasterView::ParserMock.createMockDCS()
|
384
|
+
d.save_directive_call_stack(dcs)
|
385
|
+
assert_equal ['<%= foo( product ) %>'], d.stag(dcs)
|
386
|
+
|
387
|
+
d = DirectiveExampleParamsArray.new(":action => 'create'")
|
388
|
+
d.save_directive_call_stack(MasterView::ParserMock.createMockDCS())
|
389
|
+
d.prepare_arg_instance_vars
|
390
|
+
assert_equal ":action => 'create'", d.instance_variable_get(:@obj)
|
391
|
+
end
|
392
|
+
|
393
|
+
def test_nonhash_first_string
|
394
|
+
d = DirectiveExampleNonhashFirstString.new('foo, :bar => :baz')
|
395
|
+
dcs = MasterView::ParserMock.createMockDCS()
|
396
|
+
d.save_directive_call_stack(dcs)
|
397
|
+
d.prepare_arg_instance_vars
|
398
|
+
assert_equal "foo", d.instance_variable_get(:@name)
|
399
|
+
assert_equal ":bar => :baz", d.instance_variable_get(:@options)
|
400
|
+
|
401
|
+
d = DirectiveExampleNonhashFirstString.new(':bar => :baz')
|
402
|
+
dcs = MasterView::ParserMock.createMockDCS()
|
403
|
+
d.save_directive_call_stack(dcs)
|
404
|
+
d.prepare_arg_instance_vars
|
405
|
+
assert_nil d.instance_variable_get(:@name)
|
406
|
+
assert_equal ":bar => :baz", d.instance_variable_get(:@options)
|
407
|
+
end
|
408
|
+
|
409
|
+
def test_inst
|
410
|
+
d = DirectiveExampleInst.new(':bar => :baz')
|
411
|
+
dcs = MasterView::ParserMock.createMockDCS()
|
412
|
+
d.save_directive_call_stack(dcs)
|
413
|
+
d.element_attrs[:foo] = 'hello'
|
414
|
+
d.prepare_arg_instance_vars
|
415
|
+
assert_equal "'hello'", d.instance_variable_get(:@name)
|
416
|
+
assert_equal ":bar => :baz", d.instance_variable_get(:@options)
|
417
|
+
end
|
418
|
+
|
419
|
+
def test_event_defs
|
420
|
+
assert_equal 6, DirectiveExample.directive_class_def.event_defs.size
|
421
|
+
assert DirectiveExample.directive_class_def.event_defs[:before_stag]
|
422
|
+
assert DirectiveExample.directive_class_def.event_defs[:after_stag]
|
423
|
+
assert DirectiveExample.directive_class_def.event_defs[:stag]
|
424
|
+
assert DirectiveExample.directive_class_def.event_defs[:content]
|
425
|
+
assert DirectiveExample.directive_class_def.event_defs[:etag]
|
426
|
+
assert DirectiveExample.directive_class_def.event_defs[:element]
|
427
|
+
assert !DirectiveExample.directive_class_def.event_defs[:doesnt_exist]
|
428
|
+
|
429
|
+
assert_equal( {}, DirectiveExample.directive_class_def.event_defs[:before_stag].options )
|
430
|
+
assert_equal( {:foo => :bar}, DirectiveExample.directive_class_def.event_defs[:after_stag].options )
|
431
|
+
assert_equal( {}, DirectiveExample.directive_class_def.event_defs[:stag].options )
|
432
|
+
assert_equal( { :render => :nothing }, DirectiveExample.directive_class_def.event_defs[:content].options )
|
433
|
+
assert_equal( {}, DirectiveExample.directive_class_def.event_defs[:etag].options )
|
434
|
+
assert_equal( {}, DirectiveExample.directive_class_def.event_defs[:element].options )
|
435
|
+
end
|
436
|
+
|
437
|
+
def test_methods_defined
|
438
|
+
assert DirectiveExample.public_method_defined?(:stag)
|
439
|
+
assert DirectiveExample.public_method_defined?(:etag)
|
440
|
+
assert !DirectiveExample.public_method_defined?(:before_stag)
|
441
|
+
assert !DirectiveExample.public_method_defined?(:after_stag)
|
442
|
+
end
|
443
|
+
|
444
|
+
def test_render_accumulator
|
445
|
+
ra = RenderAccumulator.new
|
446
|
+
assert_equal [], ra.method_level_content_array
|
447
|
+
assert_equal [], ra.event_level_content_array
|
448
|
+
assert_equal false, ra.render_call_found
|
449
|
+
assert_nil ra.instance_variable_get(:@render_result)
|
450
|
+
assert_nil ra.instance_variable_get(:@render_result_block)
|
451
|
+
|
452
|
+
ra.add_to_event_content 'foo'
|
453
|
+
assert_equal [], ra.method_level_content_array
|
454
|
+
assert_equal ['foo'], ra.event_level_content_array
|
455
|
+
assert_equal true, ra.render_call_found
|
456
|
+
|
457
|
+
ra.add_to_event_content 'bar'
|
458
|
+
assert_equal [], ra.method_level_content_array
|
459
|
+
assert_equal ['foo', 'bar'], ra.event_level_content_array
|
460
|
+
assert_equal true, ra.render_call_found
|
461
|
+
|
462
|
+
ra.add_event_content_to_method_content
|
463
|
+
assert_equal ['foo', 'bar'], ra.method_level_content_array
|
464
|
+
assert_equal [], ra.event_level_content_array
|
465
|
+
assert_equal true, ra.render_call_found
|
466
|
+
|
467
|
+
ra.add_to_event_content 'hello'
|
468
|
+
ra.replace_all_method_content_with_event_content
|
469
|
+
assert_equal ['hello'], ra.method_level_content_array
|
470
|
+
|
471
|
+
ra.add_to_event_content 'hello'
|
472
|
+
ra.reset_event_level_vars
|
473
|
+
assert_equal [], ra.event_level_content_array
|
474
|
+
assert_equal false, ra.render_call_found
|
475
|
+
assert_nil ra.instance_variable_get(:@render_result)
|
476
|
+
assert_nil ra.instance_variable_get(:@render_result_block)
|
477
|
+
|
478
|
+
ra.render_result_block = lambda { ra.render_result = 'wow' }
|
479
|
+
assert_equal 'wow', ra.call_render_result_block
|
480
|
+
assert_equal 'wow', ra.instance_variable_get(:@render_result)
|
481
|
+
ra.render_result = 'changed'
|
482
|
+
assert_nil ra.instance_variable_get(:@render_result_block)
|
483
|
+
assert_equal 'changed', ra.instance_variable_get(:@render_result)
|
484
|
+
end
|
485
|
+
|
486
|
+
def test_no_stag
|
487
|
+
assert DirectiveExampleNoStag.public_method_defined?(:stag)
|
488
|
+
assert DirectiveExampleNoStag.public_method_defined?(:etag)
|
489
|
+
end
|
490
|
+
|
491
|
+
def test_event_defs_no_stag
|
492
|
+
assert_equal 4, DirectiveExampleNoStag.directive_class_def.event_defs.size
|
493
|
+
assert DirectiveExampleNoStag.directive_class_def.event_defs[:before_stag]
|
494
|
+
assert DirectiveExampleNoStag.directive_class_def.event_defs[:after_etag]
|
495
|
+
assert DirectiveExampleNoStag.directive_class_def.event_defs[:stag]
|
496
|
+
assert DirectiveExampleNoStag.directive_class_def.event_defs[:etag]
|
497
|
+
end
|
498
|
+
|
499
|
+
def test_nothing_option
|
500
|
+
d = DirectiveExampleRenderNothingOption.new('')
|
501
|
+
dcs = MasterView::ParserMock.createMockDCS()
|
502
|
+
d.save_directive_call_stack(dcs)
|
503
|
+
assert_equal ['foo'], d.stag(dcs)
|
504
|
+
assert_equal [], d.etag(dcs)
|
505
|
+
end
|
506
|
+
|
507
|
+
def test_nothing_option_content
|
508
|
+
d = DirectiveExampleRenderNothingContent.new('')
|
509
|
+
dcs = MasterView::ParserMock.createMockDCS()
|
510
|
+
d.save_directive_call_stack(dcs)
|
511
|
+
d.etag(dcs)
|
512
|
+
assert_equal nil, dcs.content
|
513
|
+
end
|
514
|
+
|
515
|
+
def test_nothing_option_element
|
516
|
+
d = DirectiveExampleRenderNothingElement.new('')
|
517
|
+
dcs = MasterView::ParserMock.createMockDCS()
|
518
|
+
d.save_directive_call_stack(dcs)
|
519
|
+
assert_equal ['foo'], d.stag(dcs)
|
520
|
+
assert_equal [], d.etag(dcs)
|
521
|
+
assert_equal nil, dcs.content
|
522
|
+
assert_equal nil, dcs.stag
|
523
|
+
end
|
524
|
+
|
525
|
+
def test_nothing_method
|
526
|
+
d = DirectiveExampleRenderNothingMethod.new('')
|
527
|
+
dcs = MasterView::ParserMock.createMockDCS()
|
528
|
+
d.save_directive_call_stack(dcs)
|
529
|
+
assert_equal [], d.stag(dcs)
|
530
|
+
end
|
531
|
+
|
532
|
+
def test_event_defs_for_child
|
533
|
+
assert_equal 6, DirectiveWithChild.directive_class_def.event_defs.size
|
534
|
+
assert DirectiveWithChild.directive_class_def.event_defs[:before_child_td_stag]
|
535
|
+
assert DirectiveWithChild.directive_class_def.event_defs[:child_td_stag]
|
536
|
+
assert DirectiveWithChild.directive_class_def.event_defs[:child_any_etag]
|
537
|
+
assert DirectiveWithChild.directive_class_def.event_defs[:descendant_th_content]
|
538
|
+
assert DirectiveWithChild.directive_class_def.event_defs[:after_descendant_th_etag]
|
539
|
+
assert DirectiveWithChild.directive_class_def.event_defs[:descendant_th_etag]
|
540
|
+
assert DirectiveWithChild.public_method_defined?(:child_td_stag)
|
541
|
+
assert DirectiveWithChild.public_method_defined?(:child_any_etag)
|
542
|
+
assert DirectiveWithChild.public_method_defined?(:descendant_th_etag)
|
543
|
+
end
|
544
|
+
|
545
|
+
|
546
|
+
|
547
|
+
|
29
548
|
end
|
@@ -3,45 +3,53 @@
|
|
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/block')
|
6
|
+
#require File.join( currentPath, '../../lib/masterview/directives/block')
|
7
|
+
require File.join( currentPath, '../directive_test_helper' )
|
8
|
+
DirectiveTestHelpers.load_masterview_directive('block')
|
7
9
|
|
8
10
|
class TestBlock < Test::Unit::TestCase
|
9
|
-
include
|
11
|
+
include DirectiveTestHelpers
|
12
|
+
|
13
|
+
Block = MasterView::Directives::Block # test subject
|
14
|
+
DirectiveAttrName = Block.attribute_qname
|
15
|
+
|
16
|
+
ELEMENT_TAG = 'div'
|
10
17
|
|
11
18
|
def setup
|
12
|
-
|
19
|
+
create_template_element ELEMENT_TAG
|
13
20
|
end
|
14
21
|
|
15
|
-
def
|
16
|
-
|
22
|
+
def test_metadata
|
23
|
+
assert_equal MasterView::ConfigSettings.namespace_prefix, Block.namespace_prefix
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_block_do_end_notation
|
17
27
|
attr_value = 'if true do'
|
18
|
-
|
19
|
-
assert_equal "<% #{attr_value}
|
20
|
-
assert_equal "<% end
|
28
|
+
create_directive Block, attr_value
|
29
|
+
assert_equal "<% #{attr_value} -%>", render_element_event(:stag)
|
30
|
+
assert_equal "<% end -%>", render_element_event(:etag)
|
31
|
+
|
21
32
|
end
|
22
33
|
|
23
|
-
def
|
24
|
-
@directives.directives = []
|
34
|
+
def test_block_braces_notation
|
25
35
|
attr_value = 'if true {'
|
26
|
-
|
27
|
-
assert_equal "<% #{attr_value}
|
28
|
-
assert_equal "<% }
|
36
|
+
create_directive Block, attr_value
|
37
|
+
assert_equal "<% #{attr_value} -%>", render_element_event(:stag)
|
38
|
+
assert_equal "<% } -%>", render_element_event(:etag)
|
29
39
|
end
|
30
40
|
|
31
41
|
def test_brack2
|
32
|
-
@directives.directives = []
|
33
42
|
attr_value = 'if true { :foo => :bar } {'
|
34
|
-
|
35
|
-
assert_equal "<% #{attr_value}
|
36
|
-
assert_equal "<% }
|
43
|
+
create_directive Block, attr_value
|
44
|
+
assert_equal "<% #{attr_value} -%>", render_element_event(:stag)
|
45
|
+
assert_equal "<% } -%>", render_element_event(:etag)
|
37
46
|
end
|
38
47
|
|
39
48
|
def test_do2
|
40
|
-
@directives.directives = []
|
41
49
|
attr_value = 'if true { :foo => :bar } do'
|
42
|
-
|
43
|
-
assert_equal 1,
|
44
|
-
assert_equal "<% #{attr_value}
|
45
|
-
assert_equal "<% end
|
50
|
+
create_directive Block, attr_value
|
51
|
+
assert_equal 1, element_directives.size #??why are we checking this?? [deb 05-Oct-2006]
|
52
|
+
assert_equal "<% #{attr_value} -%>", render_element_event(:stag)
|
53
|
+
assert_equal "<% end -%>", render_element_event(:etag)
|
46
54
|
end
|
47
55
|
end
|
@@ -3,24 +3,37 @@
|
|
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/content')
|
6
|
+
#require File.join( currentPath, '../../lib/masterview/directives/content')
|
7
|
+
require File.join( currentPath, '../directive_test_helper' )
|
8
|
+
DirectiveTestHelpers.load_masterview_directive('content')
|
7
9
|
|
8
10
|
class TestContent < Test::Unit::TestCase
|
9
|
-
include
|
11
|
+
include DirectiveTestHelpers
|
12
|
+
|
13
|
+
Content = MasterView::Directives::Content # test subject
|
14
|
+
|
15
|
+
ELEMENT_TAG = 'div'
|
16
|
+
|
17
|
+
def check_element_rendering(expected)
|
18
|
+
|
19
|
+
erbized_content = "<%= #{expected} %>"
|
20
|
+
|
21
|
+
#??what should we do/check for :stag, :content prcessing points???
|
22
|
+
|
23
|
+
assert_equal '', render_element_event(:etag)
|
24
|
+
assert_equal erbized_content, element_content
|
25
|
+
###ISSUE: Needs work - this should be verifying that the original tags are preserved
|
10
26
|
|
11
|
-
def setup
|
12
|
-
@directives = MasterView::DirectiveSet.new
|
13
|
-
@tag = MasterView::Tag.new(@directives, 'foo', {}, :normal, nil)
|
14
27
|
end
|
15
28
|
|
16
29
|
def test_hello
|
17
|
-
|
30
|
+
|
31
|
+
create_template_element ELEMENT_TAG
|
18
32
|
attr_value = 'hello world'
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
assert_equal "<%= #{attr_value} %>", dcs.context[:tag].content
|
33
|
+
create_directive Content, attr_value
|
34
|
+
|
35
|
+
check_element_rendering attr_value
|
36
|
+
|
24
37
|
end
|
25
38
|
|
26
39
|
end
|