Browse Source

Ignore implied formats for catch all route requests (#1340)

A request to `/test` would show the custom 404 page, but a request to
`/test.test` would return a 404 with an empty body.

This change ignores the format on incoming catch all route requests, so that the
html 404 page is returned on these requests.
closed-social-v3
Matt Jankowski 7 years ago
committed by Eugen
parent
commit
71706f21c2
2 changed files with 25 additions and 1 deletions
  1. +4
    -1
      config/routes.rb
  2. +21
    -0
      spec/requests/catch_all_route_request_spec.rb

+ 4
- 1
config/routes.rb View File

@ -194,5 +194,8 @@ Rails.application.routes.draw do
root 'home#index'
match '*unmatched_route', via: :all, to: 'application#raise_not_found'
match '*unmatched_route',
via: :all,
to: 'application#raise_not_found',
format: false
end

+ 21
- 0
spec/requests/catch_all_route_request_spec.rb View File

@ -0,0 +1,21 @@
require "rails_helper"
describe "The catch all route" do
describe "with a simple value" do
it "returns a 404 page as html" do
get "/test"
expect(response.status).to eq 404
expect(response.content_type).to eq "text/html"
end
end
describe "with an implied format" do
it "returns a 404 page as html" do
get "/test.test"
expect(response.status).to eq 404
expect(response.content_type).to eq "text/html"
end
end
end

Loading…
Cancel
Save