blob: 99dbfb878b0da56502a6eea107bbdf3f344ecdcd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
require File.join(File.expand_path(File.dirname(__FILE__)), "test_helper")
module HappyPath
# This has no layout and it works
class RenderActionController < ActionController::Base2
self.view_paths = [ActionView::FixtureTemplate::FixturePath.new(
"happy_path/render_action/hello_world.html.erb" => "Hello world!"
)]
def render_action_hello_world
render :action => "hello_world"
end
def render_action_hello_world_as_string
render "hello_world"
end
def render_action_hello_world_as_string_with_options
render "hello_world", :status => 404
end
def render_action_hello_world_as_symbol
render :hello_world
end
def render_action_hello_world_with_symbol
render :action => :hello_world
end
end
class TestRenderAction < SimpleRouteCase
describe "Rendering an action using :action => <String>"
get "/happy_path/render_action/render_action_hello_world"
assert_body "Hello world!"
assert_status 200
end
class TestRenderActionWithString < SimpleRouteCase
describe "Render an action using 'hello_world'"
get "/happy_path/render_action/render_action_hello_world_as_string"
assert_body "Hello world!"
assert_status 200
end
class TestRenderActionWithStringAndOptions < SimpleRouteCase
describe "Render an action using 'hello_world'"
get "/happy_path/render_action/render_action_hello_world_as_string_with_options"
assert_body "Hello world!"
assert_status 404
end
class TestRenderActionAsSymbol < SimpleRouteCase
describe "Render an action using :hello_world"
get "/happy_path/render_action/render_action_hello_world_as_symbol"
assert_body "Hello world!"
assert_status 200
end
class TestRenderActionWithSymbol < SimpleRouteCase
describe "Render an action using :action => :hello_world"
get "/happy_path/render_action/render_action_hello_world_with_symbol"
assert_body "Hello world!"
assert_status 200
end
# # ==== Render actions with layouts ====
class RenderActionWithLayoutController < ActionController::Base2
# Set the view path to an application view structure with layouts
self.view_paths = self.view_paths = [ActionView::FixtureTemplate::FixturePath.new({
"happy_path/render_action_with_layout/hello_world.html.erb" => "Hello World!",
"layouts/application.html.erb" => "OHAI <%= yield %> KTHXBAI"
})]
def hello_world
render :action => "hello_world"
end
end
class RenderActionWithControllerLayoutController < ActionController::Base2
self.view_paths = self.view_paths = [ActionView::FixtureTemplate::FixturePath.new({
"happy_path/render_action_with_controller_layout/hello_world.html.erb" => "Hello World!",
"layouts/happy_path/render_action_with_controller_layout.html.erb" => "With Controller Layout! <%= yield %> KTHXBAI"
})]
def hello_world
render :action => "hello_world"
end
end
class RenderActionWithControllerLayoutFirstController < ActionController::Base2
self.view_paths = self.view_paths = [ActionView::FixtureTemplate::FixturePath.new({
"happy_path/render_action_with_controller_layout_first/hello_world.html.erb" => "Hello World!",
"layouts/application.html.erb" => "OHAI <%= yield %> KTHXBAI",
"layouts/happy_path/render_action_with_controller_layout_first.html.erb" => "With Controller Layout! <%= yield %> KTHXBAI"
})]
def hello_world
render :action => "hello_world"
end
end
class TestRenderActionWithLayout < SimpleRouteCase
describe %(
Render hello_world and implicitly use application.html.erb as a layout if
no layout is specified and no controller layout is present
)
get "/happy_path/render_action_with_layout/hello_world"
assert_body "OHAI Hello World! KTHXBAI"
assert_status 200
end
class TestRenderActionWithControllerLayout < SimpleRouteCase
describe "Render hello_world and implicitly use <controller_path>.html.erb as a layout."
get "/happy_path/render_action_with_controller_layout/hello_world"
assert_body "With Controller Layout! Hello World! KTHXBAI"
assert_status 200
end
class TestRenderActionWithControllerLayoutFirst < SimpleRouteCase
describe "Render hello_world and implicitly use <controller_path>.html.erb over application.html.erb as a layout"
get "/happy_path/render_action_with_controller_layout_first/hello_world"
assert_body "With Controller Layout! Hello World! KTHXBAI"
assert_status 200
end
end
|