mirror of
https://github.com/discourse/discourse.git
synced 2025-02-10 05:14:59 +00:00
Merge pull request #643 from ZogStriP/fix-accessing-a-topic-with-a-page-parameter
FIX: accessing a topic with a 'page' parameter
This commit is contained in:
commit
9068fdae99
@ -140,8 +140,8 @@ class TopicView
|
|||||||
end
|
end
|
||||||
|
|
||||||
def filter_posts_paged(page)
|
def filter_posts_paged(page)
|
||||||
page ||= 0
|
page = [page, 1].max
|
||||||
min = (SiteSetting.posts_per_page * page)
|
min = SiteSetting.posts_per_page * (page - 1)
|
||||||
max = min + SiteSetting.posts_per_page
|
max = min + SiteSetting.posts_per_page
|
||||||
filter_posts_in_range(min, max)
|
filter_posts_in_range(min, max)
|
||||||
end
|
end
|
||||||
@ -283,7 +283,6 @@ class TopicView
|
|||||||
private
|
private
|
||||||
|
|
||||||
def filter_posts_in_range(min, max)
|
def filter_posts_in_range(min, max)
|
||||||
|
|
||||||
max_index = (filtered_post_ids.length - 1)
|
max_index = (filtered_post_ids.length - 1)
|
||||||
|
|
||||||
# If we're off the charts, return nil
|
# If we're off the charts, return nil
|
||||||
|
@ -334,12 +334,24 @@ describe TopicsController do
|
|||||||
|
|
||||||
context 'filters' do
|
context 'filters' do
|
||||||
|
|
||||||
|
it 'grabs first page when no filter is provided' do
|
||||||
it 'grabs first page when no post number is selected' do
|
SiteSetting.stubs(:posts_per_page).returns(20)
|
||||||
TopicView.any_instance.expects(:filter_posts_paged).with(0)
|
TopicView.any_instance.expects(:filter_posts_in_range).with(0, 20)
|
||||||
xhr :get, :show, id: topic.id
|
xhr :get, :show, id: topic.id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'grabs first page when first page is provided' do
|
||||||
|
SiteSetting.stubs(:posts_per_page).returns(20)
|
||||||
|
TopicView.any_instance.expects(:filter_posts_in_range).with(0, 20)
|
||||||
|
xhr :get, :show, id: topic.id, page: 1
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'grabs correct range when a page number is provided' do
|
||||||
|
SiteSetting.stubs(:posts_per_page).returns(20)
|
||||||
|
TopicView.any_instance.expects(:filter_posts_in_range).with(20, 40)
|
||||||
|
xhr :get, :show, id: topic.id, page: 2
|
||||||
|
end
|
||||||
|
|
||||||
it 'delegates a post_number param to TopicView#filter_posts_near' do
|
it 'delegates a post_number param to TopicView#filter_posts_near' do
|
||||||
TopicView.any_instance.expects(:filter_posts_near).with(p2.post_number)
|
TopicView.any_instance.expects(:filter_posts_near).with(p2.post_number)
|
||||||
xhr :get, :show, id: topic.id, post_number: p2.post_number
|
xhr :get, :show, id: topic.id, post_number: p2.post_number
|
||||||
|
Loading…
x
Reference in New Issue
Block a user