uncommented tests

This commit is contained in:
albert 2010-02-11 23:19:56 -05:00
parent cdc1f653b6
commit 72d1ece96a

View File

@ -1,200 +1,200 @@
require File.dirname(__FILE__) + '/../test_helper' require File.dirname(__FILE__) + '/../test_helper'
class PostTest < ActiveSupport::TestCase class PostTest < ActiveSupport::TestCase
# context "During moderation a post" do context "During moderation a post" do
# setup do setup do
# @post = Factory.create(:post) @post = Factory.create(:post)
# @user = Factory.create(:user) @user = Factory.create(:user)
# end end
#
# should "be unapproved once and only once" do should "be unapproved once and only once" do
# @post.unapprove!("bad", @user, "127.0.0.1") @post.unapprove!("bad", @user, "127.0.0.1")
# assert(@post.is_flagged?, "Post should be flagged.") assert(@post.is_flagged?, "Post should be flagged.")
# assert_not_nil(@post.unapproval, "Post should have an unapproval record.") assert_not_nil(@post.unapproval, "Post should have an unapproval record.")
# assert_equal("bad", @post.unapproval.reason) assert_equal("bad", @post.unapproval.reason)
#
# assert_raise(Unapproval::Error) {@post.unapprove!("bad", @user, "127.0.0.1")} assert_raise(Unapproval::Error) {@post.unapprove!("bad", @user, "127.0.0.1")}
# end end
#
# should "not unapprove if no reason is given" do should "not unapprove if no reason is given" do
# assert_raise(Unapproval::Error) {@post.unapprove!("", @user, "127.0.0.1")} assert_raise(Unapproval::Error) {@post.unapprove!("", @user, "127.0.0.1")}
# end end
#
# should "be deleted" do should "be deleted" do
# @post.delete! @post.delete!
# assert(@post.is_deleted?, "Post should be deleted.") assert(@post.is_deleted?, "Post should be deleted.")
# end end
#
# should "be approved" do should "be approved" do
# @post.approve! @post.approve!
# assert(!@post.is_pending?, "Post should not be pending.") assert(!@post.is_pending?, "Post should not be pending.")
#
# @deleted_post = Factory.create(:post, :is_deleted => true) @deleted_post = Factory.create(:post, :is_deleted => true)
# @deleted_post.approve! @deleted_post.approve!
# assert(!@post.is_deleted?, "Post should not be deleted.") assert(!@post.is_deleted?, "Post should not be deleted.")
# end
# end
#
# context "A post version" do
# should "be created on any save" do
# @user = Factory.create(:user)
# @post = Factory.create(:post)
# assert_equal(1, @post.versions.size)
#
# @post.update_attributes(:rating => "e", :updater_id => @user.id, :updater_ip_addr => "125.0.0.0")
# assert_equal(2, @post.versions.size)
# assert_equal(@user.id, @post.versions.last.updater_id)
# assert_equal("125.0.0.0", @post.versions.last.updater_ip_addr)
# end
# end
#
# context "A post's tags" do
# setup do
# @post = Factory.create(:post)
# end
#
# should "have an array representation" do
# @post.set_tag_string("aaa bbb")
# assert_equal(%w(aaa bbb), @post.tag_array)
# assert_equal(%w(tag1 tag2), @post.tag_array_was)
# end
should "reset the tag array cache when updated" do
post = Factory.create(:post, :tag_string => "aaa bbb ccc")
user = Factory.create(:user)
assert_equal(%w(aaa bbb ccc), post.tag_array)
post.tag_string = "ddd eee fff"
post.update_attributes(
:updater_id => user.id,
:updater_ip_addr => "127.0.0.1",
:tag_string => "ddd eee fff"
)
assert_equal("ddd eee fff", post.tag_string)
assert_equal(%w(ddd eee fff), post.tag_array)
end
should "create the actual tag records" do
assert_difference("Tag.count", 3) do
post = Factory.create(:post, :tag_string => "aaa bbb ccc")
end end
end end
should "update the post counts of relevant tag records" do context "A post version" do
post1 = Factory.create(:post, :tag_string => "aaa bbb ccc") should "be created on any save" do
post2 = Factory.create(:post, :tag_string => "bbb ccc ddd") @user = Factory.create(:user)
post3 = Factory.create(:post, :tag_string => "ccc ddd eee") @post = Factory.create(:post)
assert_equal(1, Tag.find_by_name("aaa").post_count) assert_equal(1, @post.versions.size)
assert_equal(2, Tag.find_by_name("bbb").post_count)
assert_equal(3, Tag.find_by_name("ccc").post_count) @post.update_attributes(:rating => "e", :updater_id => @user.id, :updater_ip_addr => "125.0.0.0")
assert_equal(2, @post.versions.size)
assert_equal(@user.id, @post.versions.last.updater_id)
assert_equal("125.0.0.0", @post.versions.last.updater_ip_addr)
end
end end
# should "be counted" do context "A post's tags" do
# @user = Factory.create(:user) setup do
# @artist_tag = Factory.create(:artist_tag) @post = Factory.create(:post)
# @copyright_tag = Factory.create(:copyright_tag) end
# @general_tag = Factory.create(:tag)
# @new_post = Factory.create(:post, :tag_string => "#{@artist_tag.name} #{@copyright_tag.name} #{@general_tag.name}")
# assert_equal(1, @new_post.tag_count_artist)
# assert_equal(1, @new_post.tag_count_copyright)
# assert_equal(1, @new_post.tag_count_general)
# assert_equal(0, @new_post.tag_count_character)
# assert_equal(3, @new_post.tag_count)
#
# @new_post.update_attributes(:tag_string => "babs", :updater_id => @user.id, :updater_ip_addr => "127.0.0.1")
# assert_equal(0, @new_post.tag_count_artist)
# assert_equal(0, @new_post.tag_count_copyright)
# assert_equal(1, @new_post.tag_count_general)
# assert_equal(0, @new_post.tag_count_character)
# assert_equal(1, @new_post.tag_count)
# end
#
# should "be merged with any changes that were made after loading the initial set of tags part 1" do
# @user = Factory.create(:user)
# @post = Factory.create(:post, :tag_string => "aaa bbb ccc")
#
# # user a adds <ddd>
# @post_edited_by_user_a = Post.find(@post.id)
# @post_edited_by_user_a.update_attributes(
# :updater_id => @user.id,
# :updater_ip_addr => "127.0.0.1",
# :old_tag_string => "aaa bbb ccc",
# :tag_string => "aaa bbb ccc ddd"
# )
#
# # user b removes <ccc> adds <eee>
# @post_edited_by_user_b = Post.find(@post.id)
# @post_edited_by_user_b.update_attributes(
# :updater_id => @user.id,
# :updater_ip_addr => "127.0.0.1",
# :old_tag_string => "aaa bbb ccc",
# :tag_string => "aaa bbb eee"
# )
#
# # final should be <aaa>, <bbb>, <ddd>, <eee>
# @final_post = Post.find(@post.id)
# assert_equal(%w(aaa bbb ddd eee), Tag.scan_tags(@final_post.tag_string).sort)
# end
#
# should "be merged with any changes that were made after loading the initial set of tags part 2" do
# # This is the same as part 1, only the order of operations is reversed.
# # The results should be the same.
#
# @user = Factory.create(:user)
# @post = Factory.create(:post, :tag_string => "aaa bbb ccc")
#
# # user a removes <ccc> adds <eee>
# @post_edited_by_user_a = Post.find(@post.id)
# @post_edited_by_user_a.update_attributes(
# :updater_id => @user.id,
# :updater_ip_addr => "127.0.0.1",
# :old_tag_string => "aaa bbb ccc",
# :tag_string => "aaa bbb eee"
# )
#
# # user b adds <ddd>
# @post_edited_by_user_b = Post.find(@post.id)
# @post_edited_by_user_b.update_attributes(
# :updater_id => @user.id,
# :updater_ip_addr => "127.0.0.1",
# :old_tag_string => "aaa bbb ccc",
# :tag_string => "aaa bbb ccc ddd"
# )
#
# # final should be <aaa>, <bbb>, <ddd>, <eee>
# @final_post = Post.find(@post.id)
# assert_equal(%w(aaa bbb ddd eee), Tag.scan_tags(@final_post.tag_string).sort)
# end
# end
#
# context "Adding a meta-tag" do
# setup do
# @post = Factory.create(:post)
# end
#
# should "be ignored" do
# @user = Factory.create(:user)
#
# @post.update_attributes(
# :updater_id => @user.id,
# :updater_ip_addr => "127.0.0.1",
# :tag_string => "aaa pool:1234 pool:test rating:s fav:bob"
# )
# assert_equal("aaa", @post.tag_string)
# end
# end
#
# context "Favoriting a post" do
# should "update the favorite string" do
# @user = Factory.create(:user)
# @post = Factory.create(:post)
# @post.add_favorite(@user)
# assert_equal("fav:#{@user.name}", @post.fav_string)
#
# @post.remove_favorite(@user)
# assert_equal("", @post.fav_string)
# end
# end
should "have an array representation" do
@post.set_tag_string("aaa bbb")
assert_equal(%w(aaa bbb), @post.tag_array)
assert_equal(%w(tag1 tag2), @post.tag_array_was)
end
should "reset the tag array cache when updated" do
post = Factory.create(:post, :tag_string => "aaa bbb ccc")
user = Factory.create(:user)
assert_equal(%w(aaa bbb ccc), post.tag_array)
post.tag_string = "ddd eee fff"
post.update_attributes(
:updater_id => user.id,
:updater_ip_addr => "127.0.0.1",
:tag_string => "ddd eee fff"
)
assert_equal("ddd eee fff", post.tag_string)
assert_equal(%w(ddd eee fff), post.tag_array)
end
should "create the actual tag records" do
assert_difference("Tag.count", 3) do
post = Factory.create(:post, :tag_string => "aaa bbb ccc")
end
end
should "update the post counts of relevant tag records" do
post1 = Factory.create(:post, :tag_string => "aaa bbb ccc")
post2 = Factory.create(:post, :tag_string => "bbb ccc ddd")
post3 = Factory.create(:post, :tag_string => "ccc ddd eee")
assert_equal(1, Tag.find_by_name("aaa").post_count)
assert_equal(2, Tag.find_by_name("bbb").post_count)
assert_equal(3, Tag.find_by_name("ccc").post_count)
end
should "be counted" do
@user = Factory.create(:user)
@artist_tag = Factory.create(:artist_tag)
@copyright_tag = Factory.create(:copyright_tag)
@general_tag = Factory.create(:tag)
@new_post = Factory.create(:post, :tag_string => "#{@artist_tag.name} #{@copyright_tag.name} #{@general_tag.name}")
assert_equal(1, @new_post.tag_count_artist)
assert_equal(1, @new_post.tag_count_copyright)
assert_equal(1, @new_post.tag_count_general)
assert_equal(0, @new_post.tag_count_character)
assert_equal(3, @new_post.tag_count)
@new_post.update_attributes(:tag_string => "babs", :updater_id => @user.id, :updater_ip_addr => "127.0.0.1")
assert_equal(0, @new_post.tag_count_artist)
assert_equal(0, @new_post.tag_count_copyright)
assert_equal(1, @new_post.tag_count_general)
assert_equal(0, @new_post.tag_count_character)
assert_equal(1, @new_post.tag_count)
end
should "be merged with any changes that were made after loading the initial set of tags part 1" do
@user = Factory.create(:user)
@post = Factory.create(:post, :tag_string => "aaa bbb ccc")
# user a adds <ddd>
@post_edited_by_user_a = Post.find(@post.id)
@post_edited_by_user_a.update_attributes(
:updater_id => @user.id,
:updater_ip_addr => "127.0.0.1",
:old_tag_string => "aaa bbb ccc",
:tag_string => "aaa bbb ccc ddd"
)
# user b removes <ccc> adds <eee>
@post_edited_by_user_b = Post.find(@post.id)
@post_edited_by_user_b.update_attributes(
:updater_id => @user.id,
:updater_ip_addr => "127.0.0.1",
:old_tag_string => "aaa bbb ccc",
:tag_string => "aaa bbb eee"
)
# final should be <aaa>, <bbb>, <ddd>, <eee>
@final_post = Post.find(@post.id)
assert_equal(%w(aaa bbb ddd eee), Tag.scan_tags(@final_post.tag_string).sort)
end
should "be merged with any changes that were made after loading the initial set of tags part 2" do
# This is the same as part 1, only the order of operations is reversed.
# The results should be the same.
@user = Factory.create(:user)
@post = Factory.create(:post, :tag_string => "aaa bbb ccc")
# user a removes <ccc> adds <eee>
@post_edited_by_user_a = Post.find(@post.id)
@post_edited_by_user_a.update_attributes(
:updater_id => @user.id,
:updater_ip_addr => "127.0.0.1",
:old_tag_string => "aaa bbb ccc",
:tag_string => "aaa bbb eee"
)
# user b adds <ddd>
@post_edited_by_user_b = Post.find(@post.id)
@post_edited_by_user_b.update_attributes(
:updater_id => @user.id,
:updater_ip_addr => "127.0.0.1",
:old_tag_string => "aaa bbb ccc",
:tag_string => "aaa bbb ccc ddd"
)
# final should be <aaa>, <bbb>, <ddd>, <eee>
@final_post = Post.find(@post.id)
assert_equal(%w(aaa bbb ddd eee), Tag.scan_tags(@final_post.tag_string).sort)
end
end
context "Adding a meta-tag" do
setup do
@post = Factory.create(:post)
end
should "be ignored" do
@user = Factory.create(:user)
@post.update_attributes(
:updater_id => @user.id,
:updater_ip_addr => "127.0.0.1",
:tag_string => "aaa pool:1234 pool:test rating:s fav:bob"
)
assert_equal("aaa", @post.tag_string)
end
end
context "Favoriting a post" do
should "update the favorite string" do
@user = Factory.create(:user)
@post = Factory.create(:post)
@post.add_favorite(@user)
assert_equal("fav:#{@user.name}", @post.fav_string)
@post.remove_favorite(@user)
assert_equal("", @post.fav_string)
end
end
context "A tag search" do context "A tag search" do
should "return posts for 1 tag" do should "return posts for 1 tag" do
post1 = Factory.create(:post, :tag_string => "aaa") post1 = Factory.create(:post, :tag_string => "aaa")
@ -214,7 +214,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post2.id, relation.first.id) assert_equal(post2.id, relation.first.id)
end end
should "return posts for 1 tag with exclusion" do should "return posts for 1 tag with exclusion" do
post1 = Factory.create(:post, :tag_string => "aaa") post1 = Factory.create(:post, :tag_string => "aaa")
post2 = Factory.create(:post, :tag_string => "aaa bbb") post2 = Factory.create(:post, :tag_string => "aaa bbb")
@ -223,7 +223,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post1.id, relation.first.id) assert_equal(post1.id, relation.first.id)
end end
should "return posts for 1 tag with a pattern" do should "return posts for 1 tag with a pattern" do
post1 = Factory.create(:post, :tag_string => "aaa") post1 = Factory.create(:post, :tag_string => "aaa")
post2 = Factory.create(:post, :tag_string => "aaab bbb") post2 = Factory.create(:post, :tag_string => "aaab bbb")
@ -233,7 +233,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(post2.id, relation.all[0].id) assert_equal(post2.id, relation.all[0].id)
assert_equal(post1.id, relation.all[1].id) assert_equal(post1.id, relation.all[1].id)
end end
should "return posts for 2 tags, one with a pattern" do should "return posts for 2 tags, one with a pattern" do
post1 = Factory.create(:post, :tag_string => "aaa") post1 = Factory.create(:post, :tag_string => "aaa")
post2 = Factory.create(:post, :tag_string => "aaab bbb") post2 = Factory.create(:post, :tag_string => "aaab bbb")
@ -242,7 +242,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post2.id, relation.first.id) assert_equal(post2.id, relation.first.id)
end end
should "return posts for the <id> metatag" do should "return posts for the <id> metatag" do
post1 = Factory.create(:post) post1 = Factory.create(:post)
post2 = Factory.create(:post) post2 = Factory.create(:post)
@ -257,7 +257,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post1.id, relation.first.id) assert_equal(post1.id, relation.first.id)
end end
should "return posts for the <fav> metatag" do should "return posts for the <fav> metatag" do
post1 = Factory.create(:post) post1 = Factory.create(:post)
post2 = Factory.create(:post) post2 = Factory.create(:post)
@ -269,7 +269,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post1.id, relation.first.id) assert_equal(post1.id, relation.first.id)
end end
should "return posts for the <pool> metatag" do should "return posts for the <pool> metatag" do
post1 = Factory.create(:post) post1 = Factory.create(:post)
post2 = Factory.create(:post) post2 = Factory.create(:post)
@ -281,7 +281,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post1.id, relation.first.id) assert_equal(post1.id, relation.first.id)
end end
should "return posts for the <uploader> metatag" do should "return posts for the <uploader> metatag" do
user = Factory.create(:user) user = Factory.create(:user)
post1 = Factory.create(:post, :uploader => user) post1 = Factory.create(:post, :uploader => user)
@ -292,7 +292,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post1.id, relation.first.id) assert_equal(post1.id, relation.first.id)
end end
should "return posts for a list of md5 hashes" do should "return posts for a list of md5 hashes" do
post1 = Factory.create(:post, :md5 => "abcd") post1 = Factory.create(:post, :md5 => "abcd")
post2 = Factory.create(:post) post2 = Factory.create(:post)
@ -301,7 +301,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post1.id, relation.first.id) assert_equal(post1.id, relation.first.id)
end end
should "filter out deleted posts by default" do should "filter out deleted posts by default" do
post1 = Factory.create(:post, :is_deleted => true) post1 = Factory.create(:post, :is_deleted => true)
post2 = Factory.create(:post, :is_deleted => true) post2 = Factory.create(:post, :is_deleted => true)
@ -310,7 +310,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post3.id, relation.first.id) assert_equal(post3.id, relation.first.id)
end end
should "return posts for a particular status" do should "return posts for a particular status" do
post1 = Factory.create(:post, :is_deleted => true) post1 = Factory.create(:post, :is_deleted => true)
post2 = Factory.create(:post, :is_deleted => false) post2 = Factory.create(:post, :is_deleted => false)
@ -319,7 +319,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post1.id, relation.first.id) assert_equal(post1.id, relation.first.id)
end end
should "return posts for a source search" do should "return posts for a source search" do
post1 = Factory.create(:post, :source => "abcd") post1 = Factory.create(:post, :source => "abcd")
post2 = Factory.create(:post, :source => "abcdefg") post2 = Factory.create(:post, :source => "abcdefg")
@ -328,9 +328,9 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post2.id, relation.first.id) assert_equal(post2.id, relation.first.id)
end end
should "return posts for a tag subscription search" should "return posts for a tag subscription search"
should "return posts for a particular rating" do should "return posts for a particular rating" do
post1 = Factory.create(:post, :rating => "s") post1 = Factory.create(:post, :rating => "s")
post2 = Factory.create(:post, :rating => "q") post2 = Factory.create(:post, :rating => "q")
@ -339,7 +339,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post3.id, relation.first.id) assert_equal(post3.id, relation.first.id)
end end
should "return posts for a particular negated rating" do should "return posts for a particular negated rating" do
post1 = Factory.create(:post, :rating => "s") post1 = Factory.create(:post, :rating => "s")
post2 = Factory.create(:post, :rating => "s") post2 = Factory.create(:post, :rating => "s")
@ -348,7 +348,7 @@ class PostTest < ActiveSupport::TestCase
assert_equal(1, relation.count) assert_equal(1, relation.count)
assert_equal(post3.id, relation.first.id) assert_equal(post3.id, relation.first.id)
end end
should "return posts ordered by a particular attribute" do should "return posts ordered by a particular attribute" do
post1 = Factory.create(:post, :rating => "s") post1 = Factory.create(:post, :rating => "s")
post2 = Factory.create(:post, :rating => "s") post2 = Factory.create(:post, :rating => "s")