##// END OF EJS Templates
Use the base layout for all 403, 404, and 500 pages. #6172...
Eric Davis -
r3835:73ba49a7154a
parent child
Show More
@@ -0,0 +1,26
1 require "#{File.dirname(__FILE__)}/../test_helper"
2
3 class LayoutTest < ActionController::IntegrationTest
4 fixtures :all
5
6 test "browsing to a missing page should render the base layout" do
7 get "/users/100000000"
8
9 assert_response :not_found
10
11 # UsersController uses the admin layout by default
12 assert_select "#admin-menu", :count => 0
13 end
14
15 test "browsing to an unauthorized page should render the base layout" do
16 user = User.find(9)
17 user.password, user.password_confirmation = 'test', 'test'
18 user.save!
19
20 log_user('miscuser9','test')
21
22 get "/admin"
23 assert_response :forbidden
24 assert_select "#admin-menu", :count => 0
25 end
26 end
@@ -258,7 +258,7 class ApplicationController < ActionController::Base
258 258 def render_403
259 259 @project = nil
260 260 respond_to do |format|
261 format.html { render :template => "common/403", :layout => (request.xhr? ? false : 'base'), :status => 403 }
261 format.html { render :template => "common/403", :layout => use_layout, :status => 403 }
262 262 format.atom { head 403 }
263 263 format.xml { head 403 }
264 264 format.js { head 403 }
@@ -269,7 +269,7 class ApplicationController < ActionController::Base
269 269
270 270 def render_404
271 271 respond_to do |format|
272 format.html { render :template => "common/404", :layout => !request.xhr?, :status => 404 }
272 format.html { render :template => "common/404", :layout => use_layout, :status => 404 }
273 273 format.atom { head 404 }
274 274 format.xml { head 404 }
275 275 format.js { head 404 }
@@ -282,7 +282,7 class ApplicationController < ActionController::Base
282 282 respond_to do |format|
283 283 format.html {
284 284 flash.now[:error] = msg
285 render :text => '', :layout => !request.xhr?, :status => 500
285 render :text => '', :layout => use_layout, :status => 500
286 286 }
287 287 format.atom { head 500 }
288 288 format.xml { head 500 }
@@ -290,6 +290,13 class ApplicationController < ActionController::Base
290 290 format.json { head 500 }
291 291 end
292 292 end
293
294 # Picks which layout to use based on the request
295 #
296 # @return [boolean, string] name of the layout to use or false for no layout
297 def use_layout
298 request.xhr? ? false : 'base'
299 end
293 300
294 301 def invalid_authenticity_token
295 302 if api_request?
General Comments 0
You need to be logged in to leave comments. Login now