FIX: 404 if we try to navigate to a non-existant page
This commit is contained in:
parent
7ae72dc2ff
commit
8c74255cbb
|
@ -57,6 +57,11 @@ class TopicsController < ApplicationController
|
||||||
redirect_to_correct_topic(topic, opts[:post_number]) && return
|
redirect_to_correct_topic(topic, opts[:post_number]) && return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
page = params[:page].to_i
|
||||||
|
if (page - 1) * SiteSetting.posts_per_page > @topic_view.topic.highest_post_number
|
||||||
|
raise Discourse::NotFound
|
||||||
|
end
|
||||||
|
|
||||||
discourse_expires_in 1.minute
|
discourse_expires_in 1.minute
|
||||||
|
|
||||||
redirect_to_correct_topic(@topic_view.topic, opts[:post_number]) && return if slugs_do_not_match || (!request.format.json? && params[:slug].nil?)
|
redirect_to_correct_topic(@topic_view.topic, opts[:post_number]) && return if slugs_do_not_match || (!request.format.json? && params[:slug].nil?)
|
||||||
|
|
|
@ -573,6 +573,11 @@ describe TopicsController do
|
||||||
response.should be_success
|
response.should be_success
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'return 404 for an invalid page' do
|
||||||
|
xhr :get, :show, topic_id: topic.id, slug: topic.slug, page: 2
|
||||||
|
response.code.should == "404"
|
||||||
|
end
|
||||||
|
|
||||||
it 'can find a topic given a slug in the id param' do
|
it 'can find a topic given a slug in the id param' do
|
||||||
xhr :get, :show, id: topic.slug
|
xhr :get, :show, id: topic.slug
|
||||||
expect(response).to redirect_to(topic.relative_url)
|
expect(response).to redirect_to(topic.relative_url)
|
||||||
|
|
Loading…
Reference in New Issue