cells 3.3.10 → 3.4.0.beta1
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/CHANGES +0 -8
- data/Gemfile +4 -1
- data/README.rdoc +91 -107
- data/Rakefile +0 -4
- data/lib/cell.rb +5 -6
- data/lib/{cells/cell → cell}/active_helper.rb +1 -1
- data/lib/cell/base.rb +134 -0
- data/lib/cell/base_methods.rb +100 -0
- data/lib/cell/caching.rb +153 -0
- data/lib/cell/rails.rb +239 -0
- data/lib/cells.rb +25 -3
- data/lib/cells/assertions_helper.rb +1 -1
- data/lib/cells/helpers/capture_helper.rb +3 -3
- data/lib/cells/rails.rb +65 -4
- data/lib/cells/version.rb +3 -1
- data/rails_generators/cell/cell_generator.rb +47 -35
- data/rails_generators/cell/templates/cell.rb +1 -1
- data/rails_generators/cells_install/cells_install_generator.rb +5 -3
- data/rails_generators/erb/cell_generator.rb +20 -0
- data/rails_generators/{cell → erb}/templates/view.html.erb +0 -0
- data/test/active_helper_test.rb +1 -0
- data/test/app/cells/bad_guitarist_cell.rb +2 -0
- data/test/app/cells/bassist_cell.rb +1 -1
- data/test/app/controllers/musician_controller.rb +16 -0
- data/test/assertions_helper_test.rb +8 -18
- data/test/base_methods_test.rb +40 -0
- data/test/cell_generator_test.rb +33 -21
- data/test/helper_test.rb +31 -123
- data/test/rails/caching_test.rb +215 -0
- data/test/rails/capture_test.rb +52 -0
- data/test/rails/cells_test.rb +88 -0
- data/test/rails/integration_test.rb +37 -0
- data/test/rails/render_test.rb +140 -0
- data/test/rails/router_test.rb +74 -0
- data/test/rails/view_test.rb +24 -0
- data/test/test_helper.rb +30 -29
- metadata +68 -133
- data/.gitignore +0 -3
- data/about.yml +0 -7
- data/cells.gemspec +0 -26
- data/lib/cells/cell.rb +0 -16
- data/lib/cells/cell/base.rb +0 -470
- data/lib/cells/cell/caching.rb +0 -163
- data/lib/cells/cell/test_case.rb +0 -158
- data/lib/cells/cell/view.rb +0 -55
- data/lib/cells/rails/action_controller.rb +0 -37
- data/lib/cells/rails/action_view.rb +0 -37
- data/rails/init.rb +0 -44
- data/rails_generators/cells_install/templates/tasks.rake +0 -6
- data/test/app/cells/a/another_state.html.erb +0 -1
- data/test/app/cells/a/existing_view.html.erb +0 -1
- data/test/app/cells/a/inherited_view.html.erb +0 -1
- data/test/app/cells/a/inherited_view.js.erb +0 -1
- data/test/app/cells/a/view_with_locals.html.erb +0 -1
- data/test/app/cells/a/view_with_render_call.html.erb +0 -1
- data/test/app/cells/b/existing_view.html.erb +0 -1
- data/test/app/cells/b/existing_view.js.erb +0 -1
- data/test/app/cells/b/layouts/metal.html.erb +0 -1
- data/test/app/cells/b/view_with_render_call.html.erb +0 -1
- data/test/app/cells/bassist/jam.html.erb +0 -3
- data/test/app/cells/bassist/play.html.erb +0 -1
- data/test/app/cells/cells_test_one/renamed_instance_view.html.erb +0 -1
- data/test/app/cells/cells_test_one/super_state.html.erb +0 -1
- data/test/app/cells/cells_test_one_cell.rb +0 -20
- data/test/app/cells/cells_test_two_cell.rb +0 -4
- data/test/app/cells/helper_using/state_using_application_helper.html.erb +0 -3
- data/test/app/cells/helper_using/state_with_automatic_helper_invocation.html.erb +0 -3
- data/test/app/cells/helper_using/state_with_helper_invocation.html.erb +0 -3
- data/test/app/cells/helper_using/state_with_helper_method_invocation.html.erb +0 -3
- data/test/app/cells/layouts/metal.html.erb +0 -1
- data/test/app/cells/my_child/hello.html.erb +0 -1
- data/test/app/cells/my_mother/bye.html.erb +0 -1
- data/test/app/cells/my_mother/hello.html.erb +0 -1
- data/test/app/cells/my_test/_broken_partial.html.erb +0 -1
- data/test/app/cells/my_test/_partial.html.erb +0 -1
- data/test/app/cells/my_test/state_with_instance_var.html.erb +0 -1
- data/test/app/cells/my_test/state_with_link_to.html.erb +0 -3
- data/test/app/cells/my_test/state_with_not_included_helper_method.html.erb +0 -8
- data/test/app/cells/my_test/view_containing_broken_partial.html.erb +0 -3
- data/test/app/cells/my_test/view_containing_nonexistant_partial.html.erb +0 -3
- data/test/app/cells/my_test/view_containing_partial.html.erb +0 -3
- data/test/app/cells/my_test/view_containing_partial_without_cell_name.html.erb +0 -3
- data/test/app/cells/my_test/view_in_local_test_views_dir.html.erb +0 -1
- data/test/app/cells/my_test/view_with_explicit_english_translation.en.html.erb +0 -1
- data/test/app/cells/my_test/view_with_explicit_english_translation.html.erb +0 -1
- data/test/app/cells/my_test/view_with_instance_var.html.erb +0 -4
- data/test/app/cells/really_module/nested/happy_state.html.erb +0 -1
- data/test/app/cells/really_module/nested_cell.rb +0 -11
- data/test/app/cells/simple/two_templates_state.html.mytpl +0 -1
- data/test/app/cells/simple_cell.rb +0 -7
- data/test/app/cells/test/beep.html.erb +0 -1
- data/test/app/cells/test/state_invoking_capture.html.erb +0 -7
- data/test/app/cells/test/state_invoking_content_for.html.erb +0 -7
- data/test/app/cells/test/state_invoking_content_for_twice.html.erb +0 -9
- data/test/app/cells/test/state_with_not_included_helper_method.html.erb +0 -8
- data/test/app/cells/two_helpers_including/state_using_another_helper.html.erb +0 -3
- data/test/bugs_test.rb +0 -23
- data/test/caching_test.rb +0 -270
- data/test/capture_helper_test.rb +0 -59
- data/test/cells_test.rb +0 -352
- data/test/rails_test.rb +0 -35
- data/test/render_test.rb +0 -305
- data/test/test_case_test.rb +0 -106
data/test/capture_helper_test.rb
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
require File.join(File.dirname(__FILE__), *%w[test_helper])
|
|
3
|
-
require File.join(File.dirname(__FILE__), *%w[app cells test_cell])
|
|
4
|
-
|
|
5
|
-
class CaptureTest < ActionController::TestCase
|
|
6
|
-
tests CellsTestController
|
|
7
|
-
|
|
8
|
-
def setup
|
|
9
|
-
super
|
|
10
|
-
|
|
11
|
-
CellsTestController.class_eval do
|
|
12
|
-
def test_capture
|
|
13
|
-
@cell_content = render_cell(:test, :state_invoking_capture)
|
|
14
|
-
|
|
15
|
-
# captured_block comes from the cell view:
|
|
16
|
-
render :inline => '<h3><%= @captured_block %></h3>' << @cell_content
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def test_content_for
|
|
20
|
-
@cell_content = render_cell(:test, :state_invoking_content_for)
|
|
21
|
-
|
|
22
|
-
# :js comes from the cell views:
|
|
23
|
-
render :inline => '<pre><%= yield :js %></pre>' << @cell_content
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def test_global_capture
|
|
29
|
-
TestCell.class_eval do
|
|
30
|
-
helper ::Cells::Helpers::CaptureHelper
|
|
31
|
-
def state_invoking_capture
|
|
32
|
-
render
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
get :test_capture
|
|
37
|
-
|
|
38
|
-
assert_select 'h1', ''
|
|
39
|
-
assert_select 'h2', 'captured!'
|
|
40
|
-
assert_select 'h3', 'captured!', 'captured block not visible in controller'
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def test_global_content_for
|
|
44
|
-
TestCell.class_eval do
|
|
45
|
-
helper ::Cells::Helpers::CaptureHelper
|
|
46
|
-
def state_invoking_content_for
|
|
47
|
-
render
|
|
48
|
-
end
|
|
49
|
-
def state_invoking_content_for_twice
|
|
50
|
-
render
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
get :test_content_for
|
|
55
|
-
|
|
56
|
-
assert_select 'js', ''
|
|
57
|
-
assert_select 'pre', "\nfirst line\n\nsecond line\n\nthird line\n"
|
|
58
|
-
end
|
|
59
|
-
end
|
data/test/cells_test.rb
DELETED
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
require File.join(File.dirname(__FILE__), 'test_helper')
|
|
3
|
-
require File.join(File.dirname(__FILE__), *%w[app cells cells_test_one_cell])
|
|
4
|
-
|
|
5
|
-
module Some
|
|
6
|
-
class Cell < ::Cell::Base
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
class JustOneViewCell < ::Cell::Base
|
|
11
|
-
def some_state
|
|
12
|
-
render
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
class CellContainedInPlugin < ::Cell::Base
|
|
17
|
-
def some_view
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
class MyTestCell < ::Cell::Base
|
|
22
|
-
def direct_output
|
|
23
|
-
"<h9>this state method doesn't render a template but returns a string, which is great!</h9>"
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def state_with_link_to
|
|
27
|
-
render
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def view_in_local_test_views_dir
|
|
31
|
-
render
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def view_with_explicit_english_translation
|
|
35
|
-
render
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def view_containing_partial
|
|
39
|
-
render
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def view_containing_partial_without_cell_name
|
|
43
|
-
render
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def view_containing_nonexistant_partial
|
|
47
|
-
render
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def view_containing_broken_partial
|
|
51
|
-
render
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def view_with_instance_var
|
|
55
|
-
@instance_variable_one = 'yeah'
|
|
56
|
-
@instance_variable_two = 'wow'
|
|
57
|
-
render
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def missing_view
|
|
61
|
-
render
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def state_with_link_to_function
|
|
65
|
-
render
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
# fixtures for view inheritance -------------------------------
|
|
70
|
-
# views are located in cells/test/cells/my_mother_cell/
|
|
71
|
-
class MyMotherCell < ::Cell::Base
|
|
72
|
-
def hello
|
|
73
|
-
@message = 'hello, kid!'
|
|
74
|
-
render
|
|
75
|
-
end
|
|
76
|
-
def bye
|
|
77
|
-
@message = 'bye, you!'
|
|
78
|
-
render
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
# views are located in cells/test/cells/my_child_cell/
|
|
83
|
-
class MyChildCell < MyMotherCell
|
|
84
|
-
def hello
|
|
85
|
-
@message = 'hello, mom!'
|
|
86
|
-
render
|
|
87
|
-
end
|
|
88
|
-
# view is inherited and located in cells/test/cells/my_mother_cell/bye.html.erb
|
|
89
|
-
def bye
|
|
90
|
-
@message = 'bye, mom!'
|
|
91
|
-
render
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
module ReallyModule
|
|
96
|
-
class NestedCell < ::Cell::Base
|
|
97
|
-
# view: cells/test/cells/really_module/nested_cell/happy_state.html.erb
|
|
98
|
-
def happy_state
|
|
99
|
-
render
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
class CellsTest < ActionController::TestCase
|
|
105
|
-
tests CellsTestController
|
|
106
|
-
|
|
107
|
-
### FIXME:
|
|
108
|
-
# Cell::View.warn_cache_misses = true
|
|
109
|
-
def setup
|
|
110
|
-
super
|
|
111
|
-
MyTestCell.default_template_format = :html
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
def test_class_aliasing
|
|
115
|
-
assert_equal Cell::Base, Cells::Cell::Base
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def test_view_paths
|
|
119
|
-
assert_kind_of ActionView::PathSet, Cell::Base.view_paths, "must be a PathSet for proper template caching/reloading (see issue#2)"
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
def test_cells_view_paths=
|
|
123
|
-
swap( Cell::Base, :view_paths => ['you', 'are', 'here']) do
|
|
124
|
-
paths = Cell::Base.view_paths
|
|
125
|
-
assert_kind_of ActionView::PathSet, paths, "must not wipe out the PathSet"
|
|
126
|
-
assert_equal 3, Cell::Base.view_paths.size
|
|
127
|
-
assert_equal %w(you are here), Cell::Base.view_paths
|
|
128
|
-
end
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
def test_add_view_path
|
|
132
|
-
Cell::Base.add_view_path 'now'
|
|
133
|
-
assert_kind_of ActionView::PathSet, Cell::Base.view_paths
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
def test_controller_render_methods
|
|
138
|
-
get :call_render_cell_with_strings # render_cell("test", "state")
|
|
139
|
-
assert_response :success
|
|
140
|
-
assert_tag :tag => 'h9'
|
|
141
|
-
|
|
142
|
-
get :call_render_cell_with_syms
|
|
143
|
-
assert_response :success
|
|
144
|
-
assert_tag :tag => 'h9'
|
|
145
|
-
|
|
146
|
-
get :call_render_cell_with_state_view
|
|
147
|
-
assert_select '#view_with_instance_var'
|
|
148
|
-
end
|
|
149
|
-
|
|
150
|
-
# test simple rendering cycle -------------------------------------------------
|
|
151
|
-
|
|
152
|
-
def test_render_state_which_returns_a_string
|
|
153
|
-
cell = MyTestCell.new(@controller)
|
|
154
|
-
c = cell.render_state(:direct_output)
|
|
155
|
-
|
|
156
|
-
assert_kind_of String, c
|
|
157
|
-
assert_selekt c, 'h9'
|
|
158
|
-
|
|
159
|
-
#assert_raises (NoMethodError) { cell.render_state("non_existing_state") }
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
def test_render_state_with_view_file
|
|
163
|
-
cell = MyTestCell.new(@controller)
|
|
164
|
-
c = cell.render_state(:view_with_instance_var)
|
|
165
|
-
|
|
166
|
-
assert_selekt c, '#one', 'yeah'
|
|
167
|
-
assert_selekt c, '#two', 'wow'
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
def test_render_state_with_layout
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
def test_render_state_with_missing_view
|
|
174
|
-
cell = MyTestCell.new(@controller)
|
|
175
|
-
### TODO: production <-> development/test context.
|
|
176
|
-
|
|
177
|
-
assert_raises Cell::Base::MissingTemplate do
|
|
178
|
-
c = cell.render_state(:missing_view)
|
|
179
|
-
end
|
|
180
|
-
end
|
|
181
|
-
|
|
182
|
-
# test partial rendering ------------------------------------------------------
|
|
183
|
-
|
|
184
|
-
# ok
|
|
185
|
-
def test_not_existing_partial
|
|
186
|
-
cell = MyTestCell.new(@controller)
|
|
187
|
-
|
|
188
|
-
assert_raises ActionView::TemplateError do
|
|
189
|
-
cell.render_state(:view_containing_nonexistant_partial)
|
|
190
|
-
end
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
# ok
|
|
194
|
-
def test_broken_partial
|
|
195
|
-
cell = MyTestCell.new(@controller)
|
|
196
|
-
|
|
197
|
-
assert_raises ActionView::TemplateError do
|
|
198
|
-
cell.render_state(:view_containing_broken_partial)
|
|
199
|
-
end
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
# ok
|
|
203
|
-
def test_render_state_with_partial
|
|
204
|
-
cell = MyTestCell.new(@controller)
|
|
205
|
-
c = cell.render_state(:view_containing_partial)
|
|
206
|
-
|
|
207
|
-
assert_selekt c, '#partialContained > #partial'
|
|
208
|
-
end
|
|
209
|
-
|
|
210
|
-
def test_render_state_with_partial_without_cell_name
|
|
211
|
-
cell = MyTestCell.new(@controller)
|
|
212
|
-
c = cell.render_state(:view_containing_partial_without_cell_name)
|
|
213
|
-
|
|
214
|
-
assert_selekt c, '#partialContained > #partial'
|
|
215
|
-
end
|
|
216
|
-
|
|
217
|
-
# test advanced views (prototype_helper, ...) --------------------------------
|
|
218
|
-
### TODO: fix CellsTestController to allow rendering views with #link_to_function-
|
|
219
|
-
def dont_test_view_with_link_to_function
|
|
220
|
-
cell = MyTestCell.new(@controller)
|
|
221
|
-
c = cell.render_state(:state_with_link_to_function)
|
|
222
|
-
|
|
223
|
-
assert_selekt c, '#partialContained > #partial'
|
|
224
|
-
end
|
|
225
|
-
|
|
226
|
-
# test view inheritance ------------------------------------------------------
|
|
227
|
-
|
|
228
|
-
def test_possible_paths_for_state
|
|
229
|
-
cell = MyChildCell.new(@controller)
|
|
230
|
-
cell_paths = cell.possible_paths_for_state(:bye)
|
|
231
|
-
|
|
232
|
-
assert_equal 'my_child/bye', cell_paths.first
|
|
233
|
-
assert_equal 'my_mother/bye', cell_paths.last
|
|
234
|
-
end
|
|
235
|
-
|
|
236
|
-
def test_render_state_on_child_where_child_view_exists
|
|
237
|
-
cell = MyChildCell.new(@controller)
|
|
238
|
-
c = cell.render_state(:hello)
|
|
239
|
-
|
|
240
|
-
assert_selekt c, '#childHello', 'hello, mom!'
|
|
241
|
-
end
|
|
242
|
-
|
|
243
|
-
def test_render_state_on_child_where_view_is_inherited_from_mother
|
|
244
|
-
cell = MyChildCell.new(@controller)
|
|
245
|
-
# puts ' rendering cell!'
|
|
246
|
-
c = cell.render_state(:bye)
|
|
247
|
-
|
|
248
|
-
assert_selekt c, '#motherBye', 'bye, mom!'
|
|
249
|
-
end
|
|
250
|
-
|
|
251
|
-
# test Cell::View -------------------------------------------------------------
|
|
252
|
-
|
|
253
|
-
def test_find_family_view_for_state
|
|
254
|
-
cell = MyChildCell.new(@controller)
|
|
255
|
-
cells_path = File.join(File.dirname(__FILE__), 'app', 'cells')
|
|
256
|
-
cell_template = cell.find_family_view_for_state(:bye, ::Cell::View.new([cells_path], {}, @controller))
|
|
257
|
-
|
|
258
|
-
assert_equal 'my_mother/bye.html.erb', cell_template.path
|
|
259
|
-
end
|
|
260
|
-
|
|
261
|
-
### API test (unit) -----------------------------------------------------------
|
|
262
|
-
def test_cell_name
|
|
263
|
-
cell = CellsTestOneCell.new(@controller)
|
|
264
|
-
|
|
265
|
-
assert_equal 'cells_test_one', cell.cell_name
|
|
266
|
-
assert_equal 'cells_test_one', CellsTestOneCell.cell_name
|
|
267
|
-
end
|
|
268
|
-
|
|
269
|
-
def test_class_from_cell_name
|
|
270
|
-
assert_equal CellsTestOneCell, ::Cell::Base.class_from_cell_name('cells_test_one')
|
|
271
|
-
end
|
|
272
|
-
|
|
273
|
-
def test_default_template_format
|
|
274
|
-
# test getter
|
|
275
|
-
cell = MyTestCell.new(@controller)
|
|
276
|
-
|
|
277
|
-
assert_equal :html, ::Cell::Base.default_template_format
|
|
278
|
-
assert_equal :html, cell.class.default_template_format
|
|
279
|
-
|
|
280
|
-
# test setter
|
|
281
|
-
MyTestCell.default_template_format = :js
|
|
282
|
-
|
|
283
|
-
assert_equal :html, ::Cell::Base.default_template_format
|
|
284
|
-
assert_equal :js, cell.class.default_template_format
|
|
285
|
-
end
|
|
286
|
-
|
|
287
|
-
def test_defaultize_render_options_for
|
|
288
|
-
cell = MyTestCell.new(@controller)
|
|
289
|
-
|
|
290
|
-
assert_equal ({:template_format => :html, :view => :do_it}),
|
|
291
|
-
cell.defaultize_render_options_for({}, :do_it)
|
|
292
|
-
assert_equal ({:template_format => :html, :view => :do_it}),
|
|
293
|
-
cell.defaultize_render_options_for({}, :do_it)
|
|
294
|
-
assert_equal ({:template_format => :js, :view => :do_it}),
|
|
295
|
-
cell.defaultize_render_options_for({:template_format => :js}, :do_it)
|
|
296
|
-
assert_equal ({:template_format => :html, :layout => :metal, :view => :do_it}),
|
|
297
|
-
cell.defaultize_render_options_for({:layout => :metal}, :do_it)
|
|
298
|
-
assert_equal ({:template_format => :js, :layout => :metal, :view => :do_it}),
|
|
299
|
-
cell.defaultize_render_options_for({:layout => :metal, :template_format => :js}, :do_it)
|
|
300
|
-
end
|
|
301
|
-
|
|
302
|
-
def test_new_directory_hierarchy
|
|
303
|
-
cell = ReallyModule::NestedCell.new(@controller)
|
|
304
|
-
c = cell.render_state(:happy_state)
|
|
305
|
-
@response.body = c
|
|
306
|
-
|
|
307
|
-
assert_select '#happyStateView'
|
|
308
|
-
end
|
|
309
|
-
|
|
310
|
-
# Thanks to Fran Pena who made us aware of this bug and contributed a patch.
|
|
311
|
-
def test_i18n_support
|
|
312
|
-
swap I18n, :locale => :en do
|
|
313
|
-
cell = MyTestCell.new(@controller)
|
|
314
|
-
c = cell.render_state(:view_with_explicit_english_translation)
|
|
315
|
-
|
|
316
|
-
# the view "view_with_explicit_english_translation.en" exists, check if
|
|
317
|
-
# rails' i18n found it:
|
|
318
|
-
assert_selekt c, '#defaultTranslation', 0
|
|
319
|
-
assert_selekt c, '#explicitEnglishTranslation'
|
|
320
|
-
end
|
|
321
|
-
end
|
|
322
|
-
|
|
323
|
-
def test_modified_view_finding_for_testing
|
|
324
|
-
cell = MyTestCell.new(@controller)
|
|
325
|
-
c = cell.render_state(:view_in_local_test_views_dir)
|
|
326
|
-
|
|
327
|
-
assert_selekt c, '#localView'
|
|
328
|
-
end
|
|
329
|
-
|
|
330
|
-
def test_params_in_a_cell_state
|
|
331
|
-
@controller.params = {:my_param => 'value'}
|
|
332
|
-
cell = TestCell.new(@controller)
|
|
333
|
-
c = cell.render_state(:state_using_params)
|
|
334
|
-
|
|
335
|
-
assert_equal 'value', c
|
|
336
|
-
end
|
|
337
|
-
|
|
338
|
-
def test_log
|
|
339
|
-
assert_nothing_raised do
|
|
340
|
-
TestCell.new(@controller).log("everything is perfect!")
|
|
341
|
-
end
|
|
342
|
-
end
|
|
343
|
-
|
|
344
|
-
### functional tests: ---------------------------------------------------------
|
|
345
|
-
|
|
346
|
-
def test_link_to_in_view
|
|
347
|
-
get :render_state_with_link_to
|
|
348
|
-
|
|
349
|
-
assert_response :success
|
|
350
|
-
assert_select 'a', 'bla'
|
|
351
|
-
end
|
|
352
|
-
end
|
data/test/rails_test.rb
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
require File.join(File.dirname(__FILE__), 'test_helper')
|
|
3
|
-
|
|
4
|
-
class ACell < ::Cell::Base
|
|
5
|
-
def existing_view
|
|
6
|
-
@a = 'a'
|
|
7
|
-
render
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
class ActionControllerRenderTest < ActionController::TestCase
|
|
12
|
-
include Cells::Rails::ActionController
|
|
13
|
-
|
|
14
|
-
def test_render_cell
|
|
15
|
-
assert_equal 'A/existing_view/a', render_cell(:a, :existing_view)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
# Backward-compability.
|
|
19
|
-
def test_render_cell_to_string
|
|
20
|
-
assert_equal render_cell_to_string(:a, :existing_view), render_cell(:a, :existing_view)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
class ActionControllerRenderTest < ActionController::TestCase
|
|
25
|
-
include Cells::Rails::ActionView
|
|
26
|
-
|
|
27
|
-
def test_render_cell
|
|
28
|
-
assert_equal 'A/existing_view/a', render_cell(:a, :existing_view)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
# Backward-compability.
|
|
32
|
-
def test_render_cell_to_string
|
|
33
|
-
assert_equal render_cell_to_string(:a, :existing_view), render_cell(:a, :existing_view)
|
|
34
|
-
end
|
|
35
|
-
end
|
data/test/render_test.rb
DELETED
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
require File.join(File.dirname(__FILE__), 'test_helper')
|
|
3
|
-
|
|
4
|
-
class ACell < ::Cell::Base
|
|
5
|
-
def existing_view
|
|
6
|
-
@a = 'a'
|
|
7
|
-
render
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def not_existing_view
|
|
11
|
-
@a = 'a'
|
|
12
|
-
render
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
class BCell < ACell
|
|
17
|
-
def existing_view
|
|
18
|
-
@b = 'b'
|
|
19
|
-
render
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def not_existing_view
|
|
23
|
-
@b = 'b'
|
|
24
|
-
render
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
class RenderTest < ActiveSupport::TestCase
|
|
29
|
-
include Cells::Rails::ActionView
|
|
30
|
-
|
|
31
|
-
def test_return_nil_with_locally_existing_view
|
|
32
|
-
assert_equal 'A/existing_view/a', render_cell(:a, :existing_view)
|
|
33
|
-
assert_equal 'B/existing_view/b', render_cell(:b, :existing_view)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def test_return_nil_with_inherited_view
|
|
37
|
-
BCell.class_eval do
|
|
38
|
-
def inherited_view
|
|
39
|
-
@a = 'b'
|
|
40
|
-
render
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
assert_equal 'A/inherited_view/b', render_cell(:b, :inherited_view)
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def test_render_with_not_existing_view
|
|
47
|
-
assert_raises Cell::Base::MissingTemplate do
|
|
48
|
-
render_cell(:a, :not_existing_view)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
e = assert_raise Cell::Base::MissingTemplate do
|
|
52
|
-
render_cell(:b, :not_existing_view)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
assert_equal "Missing template a/not_existing_view.erb in view path app/cells:app/cells/layouts:/home/nick/projects/cells/test/app/cells:/home/nick/projects/cells/test/app/cells/layouts and possible paths [\"b/not_existing_view\", \"a/not_existing_view\"]", e.message
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def test_render_without_arguments_with_locally_existing_view
|
|
59
|
-
ACell.class_eval do
|
|
60
|
-
def existing_view
|
|
61
|
-
@a = 'a'
|
|
62
|
-
render
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
BCell.class_eval do
|
|
66
|
-
def existing_view
|
|
67
|
-
@b = 'b'
|
|
68
|
-
render
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
assert_equal 'A/existing_view/a', render_cell(:a, :existing_view)
|
|
72
|
-
assert_equal 'B/existing_view/b', render_cell(:b, :existing_view)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def test_render_passing_view_with_locally_existing_view
|
|
76
|
-
ACell.class_eval do
|
|
77
|
-
def existing_view
|
|
78
|
-
@a = 'a'
|
|
79
|
-
render :view => 'existing_view'
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
BCell.class_eval do
|
|
83
|
-
def existing_view
|
|
84
|
-
@b = 'b'
|
|
85
|
-
render :view => 'existing_view'
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
assert_equal 'A/existing_view/a', render_cell(:a, :existing_view)
|
|
89
|
-
assert_equal 'B/existing_view/b', render_cell(:b, :existing_view)
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
def test_render_passing_view_and_layout_with_locally_existing_view
|
|
93
|
-
BCell.class_eval do
|
|
94
|
-
def existing_view
|
|
95
|
-
@b = 'b'
|
|
96
|
-
render :view => 'existing_view', :layout => 'metal'
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
assert_equal "Metal:B/existing_view/b", render_cell(:b, :existing_view)
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def test_render_passing_view_and_template_format_with_locally_existing_view
|
|
103
|
-
BCell.class_eval do
|
|
104
|
-
def existing_view
|
|
105
|
-
@b = 'b'
|
|
106
|
-
render :view => 'existing_view', :template_format => :js
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
assert_equal 'B/existing_view/b/js', render_cell(:b, :existing_view)
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
def test_render_passing_view_and_template_format_and_layout_with_locally_existing_view
|
|
113
|
-
BCell.class_eval do
|
|
114
|
-
def existing_view
|
|
115
|
-
@b = 'b'
|
|
116
|
-
render :view => 'existing_view', :template_format => :js, :layout => 'metal'
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
assert_equal 'Metal:B/existing_view/b/js', render_cell(:b, :existing_view)
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
# test :layout
|
|
123
|
-
def test_render_passing_layout_located_in_cells_layout
|
|
124
|
-
ACell.class_eval do
|
|
125
|
-
def existing_view
|
|
126
|
-
@a = 'a'
|
|
127
|
-
render :layout => 'metal'
|
|
128
|
-
end
|
|
129
|
-
end
|
|
130
|
-
assert_equal 'Metal:A/existing_view/a', render_cell(:a, :existing_view)
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
### DISCUSS: currently undocumented feature:
|
|
134
|
-
def test_render_passing_layout_located_in_cells_b_layouts
|
|
135
|
-
BCell.class_eval do
|
|
136
|
-
def existing_view
|
|
137
|
-
@b = 'b'
|
|
138
|
-
render :layout => 'b/layouts/metal'
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
assert_equal 'B-Metal:B/existing_view/b', render_cell(:b, :existing_view)
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
# test with inherited view:
|
|
145
|
-
def test_render_without_arguments_with_inherited_view
|
|
146
|
-
BCell.class_eval do
|
|
147
|
-
def inherited_view
|
|
148
|
-
@a = 'b'
|
|
149
|
-
render
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
assert_equal 'A/inherited_view/b', render_cell(:b, :inherited_view)
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
def test_render_passing_view_with_inherited_view
|
|
156
|
-
BCell.class_eval do
|
|
157
|
-
def existing_view
|
|
158
|
-
@a = 'b'
|
|
159
|
-
render :view => 'inherited_view'
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
assert_equal 'A/inherited_view/b', render_cell(:b, :existing_view)
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
def test_render_passing_view_and_layout_with_inherited_view
|
|
166
|
-
BCell.class_eval do
|
|
167
|
-
def inherited_view
|
|
168
|
-
@a = 'b'
|
|
169
|
-
render :view => 'inherited_view', :layout => 'metal'
|
|
170
|
-
end
|
|
171
|
-
end
|
|
172
|
-
assert_equal 'Metal:A/inherited_view/b', render_cell(:b, :inherited_view)
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
def test_render_passing_view_and_template_format_with_inherited_view
|
|
176
|
-
BCell.class_eval do
|
|
177
|
-
def inherited_view
|
|
178
|
-
@a = 'b'
|
|
179
|
-
render :view => 'inherited_view', :template_format => :js
|
|
180
|
-
end
|
|
181
|
-
end
|
|
182
|
-
assert_equal 'A/inherited_view/b/js', render_cell(:b, :inherited_view)
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
def test_render_passing_view_and_template_format_and_layout_with_inherited_view
|
|
186
|
-
BCell.class_eval do
|
|
187
|
-
def existing_view
|
|
188
|
-
@a = 'b'
|
|
189
|
-
render :view => 'inherited_view', :template_format => :js, :layout => 'metal'
|
|
190
|
-
end
|
|
191
|
-
end
|
|
192
|
-
assert_equal 'Metal:A/inherited_view/b/js', render_cell(:b, :existing_view)
|
|
193
|
-
end
|
|
194
|
-
|
|
195
|
-
def test_render_passing_locals
|
|
196
|
-
ACell.class_eval do
|
|
197
|
-
def view_with_locals
|
|
198
|
-
@a = 'a'
|
|
199
|
-
render :locals => {:name => 'Nick'}
|
|
200
|
-
end
|
|
201
|
-
end
|
|
202
|
-
assert_equal 'A/view_with_locals/a/Nick', render_cell(:a, :view_with_locals)
|
|
203
|
-
end
|
|
204
|
-
|
|
205
|
-
def test_recursive_render_view_with_existing_view
|
|
206
|
-
ACell.class_eval do
|
|
207
|
-
def view_with_render_call
|
|
208
|
-
@a = 'a'
|
|
209
|
-
render
|
|
210
|
-
end
|
|
211
|
-
end
|
|
212
|
-
assert_equal 'A/view_with_render_call/a:A/existing_view/a', render_cell(:a, :view_with_render_call)
|
|
213
|
-
end
|
|
214
|
-
|
|
215
|
-
def test_recursive_render_view_with_inherited_view
|
|
216
|
-
BCell.class_eval do
|
|
217
|
-
def view_with_render_call
|
|
218
|
-
@a = 'b'
|
|
219
|
-
render
|
|
220
|
-
end
|
|
221
|
-
end
|
|
222
|
-
assert_equal 'B/view_with_render_call/b:A/inherited_view/b', render_cell(:b, :view_with_render_call)
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
def test_render_text
|
|
226
|
-
ACell.class_eval do
|
|
227
|
-
def existing_view
|
|
228
|
-
render :text => 'Cells kick ass!'
|
|
229
|
-
end
|
|
230
|
-
end
|
|
231
|
-
assert_equal 'Cells kick ass!', render_cell(:a, :existing_view)
|
|
232
|
-
end
|
|
233
|
-
|
|
234
|
-
def test_render_text_with_layout
|
|
235
|
-
ACell.class_eval do
|
|
236
|
-
def existing_view
|
|
237
|
-
render :text => 'Cells kick ass!', :layout => 'metal'
|
|
238
|
-
end
|
|
239
|
-
end
|
|
240
|
-
assert_equal 'Metal:Cells kick ass!', render_cell(:a, :existing_view)
|
|
241
|
-
end
|
|
242
|
-
|
|
243
|
-
def test_render_nothing
|
|
244
|
-
ACell.class_eval do
|
|
245
|
-
def existing_view
|
|
246
|
-
render :nothing => true
|
|
247
|
-
end
|
|
248
|
-
end
|
|
249
|
-
assert_equal '', render_cell(:a, :existing_view)
|
|
250
|
-
end
|
|
251
|
-
|
|
252
|
-
def test_render_inline
|
|
253
|
-
ACell.class_eval do
|
|
254
|
-
def existing_view
|
|
255
|
-
@a = 'a'
|
|
256
|
-
render :inline => 'A/existing_view/a:<%= a %>', :type => :erb, :locals => {:a => 'a'}
|
|
257
|
-
end
|
|
258
|
-
end
|
|
259
|
-
assert_equal 'A/existing_view/a:a', render_cell(:a, :existing_view)
|
|
260
|
-
end
|
|
261
|
-
|
|
262
|
-
def test_render_state
|
|
263
|
-
ACell.class_eval do
|
|
264
|
-
def existing_view
|
|
265
|
-
@a = 'a'
|
|
266
|
-
render :state => :another_state
|
|
267
|
-
end
|
|
268
|
-
def another_state
|
|
269
|
-
@b = 'b'
|
|
270
|
-
render
|
|
271
|
-
end
|
|
272
|
-
end
|
|
273
|
-
assert_equal "A/another_state/a,b", render_cell(:a, :existing_view)
|
|
274
|
-
end
|
|
275
|
-
|
|
276
|
-
def test_render_state_with_layout
|
|
277
|
-
ACell.class_eval do
|
|
278
|
-
def existing_view
|
|
279
|
-
@a = 'a'
|
|
280
|
-
render :state => :another_state, :layout => 'metal'
|
|
281
|
-
end
|
|
282
|
-
def another_state
|
|
283
|
-
@b = 'b'
|
|
284
|
-
render
|
|
285
|
-
end
|
|
286
|
-
end
|
|
287
|
-
assert_equal "Metal:A/another_state/a,b", render_cell(:a, :existing_view)
|
|
288
|
-
end
|
|
289
|
-
|
|
290
|
-
context "render :state within a view" do
|
|
291
|
-
should "return the state content" do
|
|
292
|
-
assert_equal( "\nDoo\n\nDoo\n\nDoo\n\nDoo\n",
|
|
293
|
-
bassist_mock do
|
|
294
|
-
def jam
|
|
295
|
-
@chords = %w(d a c g)
|
|
296
|
-
render
|
|
297
|
-
end
|
|
298
|
-
def play
|
|
299
|
-
render
|
|
300
|
-
end
|
|
301
|
-
end.render_state(:jam)
|
|
302
|
-
)
|
|
303
|
-
end
|
|
304
|
-
end
|
|
305
|
-
end
|