# Offense count: 41
# Configuration parameters: CountComments, ExcludedMethods.
Metrics/BlockLength:
- Max: 258
+ Max: 261
# Offense count: 11
# Configuration parameters: CountBlocks.
--- /dev/null
+.logo {
+ float: left;
+ margin: 10px;
+}
+
+.details {
+ float: left;
+}
--- /dev/null
+class ErrorsController < ApplicationController
+ layout "error"
+
+ def forbidden
+ render :status => :forbidden
+ end
+
+ def not_found
+ render :status => :not_found
+ end
+
+ def internal_server_error
+ render :status => :internal_server_error
+ end
+end
--- /dev/null
+<h1>Forbidden</h1>
+<p>The operation you requested on the OpenStreetMap server is only available to administrators (HTTP 403)</p>
+<p>Feel free to <a href="http://wiki.openstreetmap.org/wiki/Contact" title="Various contact channels explained">contact</a> the OpenStreetMap community if you have found a broken link / bug. Make a note of the exact URL of your request.</p>
--- /dev/null
+<h1>Application error</h1>
+<p>The OpenStreetMap server encountered an unexpected condition that prevented it from fulfilling the request (HTTP 500)</p>
+<p>Feel free to <a href="http://wiki.openstreetmap.org/wiki/Contact" title="Various contact channels explained">contact</a> the OpenStreetMap community if your problem persists. Make a note of the exact URL / post data of your request.</p>
+<p>This may be a problem in our Ruby On Rails code. 500 occurs with exceptions thrown outside of an action (like in Dispatcher setups or broken Ruby code)</p>
--- /dev/null
+<h1>File not found</h1>
+<p>Couldn't find a file/directory/API operation by that name on the OpenStreetMap server (HTTP 404)</p>
+<p>Feel free to <a href="http://wiki.openstreetmap.org/wiki/Contact" title="Various contact channels explained">contact</a> the OpenStreetMap community if you have found a broken link / bug. Make a note of the exact URL of your request.</p>
--- /dev/null
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="utf-8">
+ <title>OpenStreetMap</title>
+ <%= stylesheet_link_tag "errors", :media=> "screen" %>
+ </head>
+ <body>
+ <%= image_tag "osm_logo.png", :class => "logo" %>
+ <div class="details">
+ <%= yield %>
+ </div>
+ </body>
+</html>
Rails.application.config.assets.precompile += %w[leaflet-all.css leaflet.ie.css]
Rails.application.config.assets.precompile += %w[id.js id.css]
Rails.application.config.assets.precompile += %w[embed.js embed.css]
+Rails.application.config.assets.precompile += %w[errors.css]
Rails.application.config.assets.precompile += %w[html5shiv.js]
Rails.application.config.assets.precompile += %w[images/marker-*.png img/*-handle.png]
Rails.application.config.assets.precompile += %w[swfobject.js expressInstall.swf]
--- /dev/null
+Rails.application.config.exceptions_app = Rails.application.routes
# redactions
resources :redactions
+
+ # errors
+ match "/403", :to => "errors#forbidden", :via => :all
+ match "/404", :to => "errors#not_found", :via => :all
+ match "/500", :to => "errors#internal_server_error", :via => :all
end
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<body>
- <img src="/assets/osm_logo.png" style="float:left; margin:10px">
- <div style="float:left;">
- <h1>Forbidden</h1>
- <p>The operation you requested on the OpenStreetMap server is only available to administrators (HTTP 403)</p>
- <p>Feel free to <a href="http://wiki.openstreetmap.org/wiki/Contact" title="Various contact channels explained">contact</a> the OpenStreetMap community if you have found a broken link / bug. Make a note of the exact URL of your request.</p>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<body>
- <img src="/assets/osm_logo.png" style="float:left; margin:10px">
- <div style="float:left;">
- <h1>File not found</h1>
- <p>Couldn't find a file/directory/API operation by that name on the OpenStreetMap server (HTTP 404)</p>
- <p>Feel free to <a href="http://wiki.openstreetmap.org/wiki/Contact" title="Various contact channels explained">contact</a> the OpenStreetMap community if you have found a broken link / bug. Make a note of the exact URL of your request.</p>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<body>
- <img src="/assets/osm_logo.png" style="float:left; margin:10px">
- <div style="float:left;">
- <h1>Application error</h1>
- <p>The OpenStreetMap server encountered an unexpected condition that prevented it from fulfilling the request (HTTP 500)</p>
- <p>Feel free to <a href="http://wiki.openstreetmap.org/wiki/Contact" title="Various contact channels explained">contact</a> the OpenStreetMap community if your problem persists. Make a note of the exact URL / post data of your request.</p>
- <p>This may be a problem in our Ruby On Rails code. 500 occurs with exceptions thrown outside of an action (like in Dispatcher setups or broken Ruby code)</p>
- </div>
-</body>
-</html>
--- /dev/null
+require "test_helper"
+
+class ErrorsControllerTest < ActionController::TestCase
+ def test_routes
+ assert_routing(
+ { :path => "/403", :method => :get },
+ { :controller => "errors", :action => "forbidden" }
+ )
+ assert_routing(
+ { :path => "/404", :method => :get },
+ { :controller => "errors", :action => "not_found" }
+ )
+ assert_routing(
+ { :path => "/500", :method => :get },
+ { :controller => "errors", :action => "internal_server_error" }
+ )
+ end
+
+ def test_forbidden
+ get :forbidden
+ assert_response :forbidden
+ end
+
+ def test_not_found
+ get :not_found
+ assert_response :not_found
+ end
+
+ def test_internal_server_error
+ get :internal_server_error
+ assert_response :internal_server_error
+ end
+end