add dedicated intro post set

This commit is contained in:
r888888888
2013-06-24 16:09:25 -07:00
parent d93c2c3546
commit 28f3d31a51
3 changed files with 58 additions and 1 deletions

View File

@@ -0,0 +1,15 @@
module PostSets
class Intro < PostSets::Post
def initialize(tags)
super(tags)
end
def posts
@posts ||= begin
temp = ::Post.tag_match("#{tag_string} fav_count:>3").paginate(page, :search_count => nil, :limit => 6)
temp.all
temp
end
end
end
end

View File

@@ -5,7 +5,7 @@ class IntroPresenter
def each
popular_tags.each do |tag|
yield(tag, PostSets::Post.new(tag, 1, 6))
yield(tag, PostSets::Intro.new(tag))
end
end
end

View File

@@ -0,0 +1,42 @@
require 'test_helper'
require "danbooru/paginator/pagination_error"
module PostSets
class IntroTest < ActiveSupport::TestCase
context "In all cases" do
setup do
@user = FactoryGirl.create(:user)
CurrentUser.user = @user
CurrentUser.ip_addr = "127.0.0.1"
MEMCACHE.flush_all
@post_1 = FactoryGirl.create(:post, :tag_string => "a")
@post_2 = FactoryGirl.create(:post, :tag_string => "b")
@post_3 = FactoryGirl.create(:post, :tag_string => "c")
end
teardown do
CurrentUser.user = nil
CurrentUser.ip_addr = nil
end
context "a set for the 'a' tag query" do
setup do
@post_4 = FactoryGirl.create(:post, :tag_string => "a")
@post_5 = FactoryGirl.create(:post, :tag_string => "a")
end
context "with no page" do
setup do
@set = PostSets::Intro.new("a")
::Post.stubs(:records_per_page).returns(1)
end
should "return the first element" do
assert_equal(@post_5.id, @set.posts.first.id)
end
end
end
end
end
end