Merge branch 'master' into close-accounts
This commit is contained in:
@@ -51,5 +51,16 @@ class AliasAndImplicationImporterTest < ActiveSupport::TestCase
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
should "rename an aliased tag's artist entry and wiki page" do
|
||||
tag1 = FactoryGirl.create(:tag, :name => "aaa", :category => 1)
|
||||
tag2 = FactoryGirl.create(:tag, :name => "bbb")
|
||||
artist = FactoryGirl.create(:artist, :name => "aaa", :notes => "testing")
|
||||
@importer = AliasAndImplicationImporter.new("create alias aaa -> bbb", "", "1")
|
||||
@importer.process!
|
||||
artist.reload
|
||||
assert_equal("bbb", artist.name)
|
||||
assert_match(/automatically renamed/, artist.notes)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -95,6 +95,12 @@ class ArtistTest < ActiveSupport::TestCase
|
||||
assert_equal(["http://not.rembrandt.com/test.jpg"], artist.urls.map(&:to_s).sort)
|
||||
end
|
||||
|
||||
should "ignore pixiv.net/ and pixiv.net/img/ url matches" do
|
||||
a1 = FactoryGirl.create(:artist, :name => "yomosaka", :url_string => "http://i2.pixiv.net/img100/img/yomosaka/27618292.jpg")
|
||||
a2 = FactoryGirl.create(:artist, :name => "niwatazumi_bf", :url_string => "http://i2.pixiv.net/img16/img/niwatazumi_bf/35488864_big_p6.jpg")
|
||||
assert_equal([], Artist.find_all_by_url("http://i2.pixiv.net/img28/img/kyang692/35563903.jpg"))
|
||||
end
|
||||
|
||||
should "find matches by url" do
|
||||
a1 = FactoryGirl.create(:artist, :name => "rembrandt", :url_string => "http://rembrandt.com/x/test.jpg")
|
||||
a2 = FactoryGirl.create(:artist, :name => "subway", :url_string => "http://subway.com/x/test.jpg")
|
||||
|
||||
@@ -40,9 +40,9 @@ class ArtistUrlTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
should "normalize pixiv urls" do
|
||||
url = FactoryGirl.create(:artist_url, :url => "http://img55.pixiv.net/monet")
|
||||
assert_equal("http://img55.pixiv.net/monet", url.url)
|
||||
assert_equal("http://img.pixiv.net/monet/", url.normalized_url)
|
||||
url = FactoryGirl.create(:artist_url, :url => "http://img55.pixiv.net/img/monet")
|
||||
assert_equal("http://img55.pixiv.net/img/monet", url.url)
|
||||
assert_equal("http://img.pixiv.net/img/monet/", url.normalized_url)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
require 'test_helper'
|
||||
|
||||
module Downloads
|
||||
class NicoSeigaTest < ActiveSupport::TestCase
|
||||
context "a download for a nico seiga image" do
|
||||
setup do
|
||||
# @source = "http://img.tinami.com/illust2/img/330/4e85ecd880a8f.jpg"
|
||||
# @tempfile = Tempfile.new("danbooru-test")
|
||||
# @download = Downloads::File.new(@source, @tempfile.path)
|
||||
end
|
||||
|
||||
should "work" do
|
||||
# @download.download!
|
||||
# assert_equal(201248, ::File.size(@tempfile.path))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,18 +0,0 @@
|
||||
# require 'test_helper'
|
||||
#
|
||||
# module Downloads
|
||||
# class PixaTest < ActiveSupport::TestCase
|
||||
# context "a download for a pixa image" do
|
||||
# setup do
|
||||
# @source = "http://file0.pixa.cc/illustrations/6f/d6/3f/f9/51/61/29/72/23/ac/middle/sse.jpg?1317405928"
|
||||
# @tempfile = Tempfile.new("danbooru-test")
|
||||
# @download = Downloads::File.new(@source, @tempfile.path)
|
||||
# end
|
||||
#
|
||||
# should "work" do
|
||||
# @download.download!
|
||||
# assert_equal(104627, ::File.size(@tempfile.path))
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
@@ -7,7 +7,9 @@ module Downloads
|
||||
@source = "http://img65.pixiv.net/img/kiyoringo/21755794_p2.png"
|
||||
@tempfile = Tempfile.new("danbooru-test")
|
||||
@download = Downloads::File.new(@source, @tempfile.path)
|
||||
@download.download!
|
||||
VCR.use_cassette("download-pixiv-manga", :record => :new_episodes) do
|
||||
@download.download!
|
||||
end
|
||||
end
|
||||
|
||||
should "instead download the big version" do
|
||||
@@ -21,7 +23,9 @@ module Downloads
|
||||
@source = "http://www.pixiv.net/member_illust.php?mode=big&illust_id=4348318"
|
||||
@tempfile = Tempfile.new("danbooru-test")
|
||||
@download = Downloads::File.new(@source, @tempfile.path)
|
||||
@download.download!
|
||||
VCR.use_cassette("download-pixiv-html", :record => :new_episodes) do
|
||||
@download.download!
|
||||
end
|
||||
end
|
||||
|
||||
should "work" do
|
||||
@@ -34,7 +38,9 @@ module Downloads
|
||||
@source = "http://img02.pixiv.net/img/wanwandoh/4348318_m.jpg"
|
||||
@tempfile = Tempfile.new("danbooru-test")
|
||||
@download = Downloads::File.new(@source, @tempfile.path)
|
||||
@download.download!
|
||||
VCR.use_cassette("download-pixiv-small", :record => :new_episodes) do
|
||||
@download.download!
|
||||
end
|
||||
end
|
||||
|
||||
should "instead download the original version" do
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
# require 'test_helper'
|
||||
#
|
||||
# module Downloads
|
||||
# class TinamiTest < ActiveSupport::TestCase
|
||||
# context "a download for a pixa image" do
|
||||
# setup do
|
||||
# @source = "http://img.tinami.com/illust2/img/330/4e85ecd880a8f.jpg"
|
||||
# @tempfile = Tempfile.new("danbooru-test")
|
||||
# @download = Downloads::File.new(@source, @tempfile.path)
|
||||
# end
|
||||
#
|
||||
# should "work" do
|
||||
# @download.download!
|
||||
# assert_equal(201248, ::File.size(@tempfile.path))
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
@@ -18,9 +18,11 @@ class ForumPostTest < ActiveSupport::TestCase
|
||||
setup do
|
||||
Danbooru.config.stubs(:posts_per_page).returns(3)
|
||||
@posts = []
|
||||
10.times do
|
||||
9.times do
|
||||
@posts << FactoryGirl.create(:forum_post, :topic_id => @topic.id, :body => rand(100_000))
|
||||
end
|
||||
sleep 2
|
||||
@posts << FactoryGirl.create(:forum_post, :topic_id => @topic.id, :body => rand(100_000))
|
||||
end
|
||||
|
||||
should "know which page it's on" do
|
||||
@@ -29,6 +31,12 @@ class ForumPostTest < ActiveSupport::TestCase
|
||||
assert_equal(2, @posts[5].forum_topic_page)
|
||||
assert_equal(3, @posts[6].forum_topic_page)
|
||||
end
|
||||
|
||||
should "update the topic's updated_at when deleted" do
|
||||
@posts.last.destroy
|
||||
@topic.reload
|
||||
assert_equal(@posts[0].updated_at.to_s, @topic.updated_at.to_s)
|
||||
end
|
||||
end
|
||||
|
||||
context "belonging to a locked topic" do
|
||||
|
||||
@@ -34,7 +34,25 @@ class NoteTest < ActiveSupport::TestCase
|
||||
|
||||
context "creating a note" do
|
||||
setup do
|
||||
@post = FactoryGirl.create(:post)
|
||||
@post = FactoryGirl.create(:post, :image_width => 1000, :image_height => 1000)
|
||||
end
|
||||
|
||||
should "not validate if the note is outside the image" do
|
||||
@note = FactoryGirl.build(:note, :x => 1001, :y => 500, :post => @post)
|
||||
@note.save
|
||||
assert_equal(["Note must be inside the image"], @note.errors.full_messages)
|
||||
end
|
||||
|
||||
should "not validate if the note is larger than the image" do
|
||||
@note = FactoryGirl.build(:note, :x => 500, :y => 500, :height => 501, :width => 500, :post => @post)
|
||||
@note.save
|
||||
assert_equal(["Note must be inside the image"], @note.errors.full_messages)
|
||||
end
|
||||
|
||||
should "not validate if the post does not exist" do
|
||||
@note = FactoryGirl.build(:note, :x => 500, :y => 500, :post_id => -1)
|
||||
@note.save
|
||||
assert_equal(["Post must exist"], @note.errors.full_messages)
|
||||
end
|
||||
|
||||
should "create a version" do
|
||||
@@ -72,7 +90,7 @@ class NoteTest < ActiveSupport::TestCase
|
||||
|
||||
context "updating a note" do
|
||||
setup do
|
||||
@post = FactoryGirl.create(:post)
|
||||
@post = FactoryGirl.create(:post, :image_width => 1000, :image_height => 1000)
|
||||
@note = FactoryGirl.create(:note, :post => @post)
|
||||
end
|
||||
|
||||
@@ -84,7 +102,7 @@ class NoteTest < ActiveSupport::TestCase
|
||||
|
||||
should "update the post's last_noted_at field" do
|
||||
assert_nil(@post.last_noted_at)
|
||||
@note.update_attributes(:x => 1000)
|
||||
@note.update_attributes(:x => 500)
|
||||
@post.reload
|
||||
assert_equal(@post.last_noted_at.to_i, @note.updated_at.to_i)
|
||||
end
|
||||
@@ -105,7 +123,7 @@ class NoteTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
should "fail" do
|
||||
@note.update_attributes(:x => 1000)
|
||||
@note.update_attributes(:x => 500)
|
||||
assert_equal(["Post is note locked"], @note.errors.full_messages)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -690,6 +690,7 @@ class PostTest < ActiveSupport::TestCase
|
||||
CurrentUser.ip_addr = "127.0.0.1"
|
||||
@post = FactoryGirl.create(:post)
|
||||
@post.add_favorite!(@user)
|
||||
@user.reload
|
||||
end
|
||||
|
||||
teardown do
|
||||
@@ -698,9 +699,9 @@ class PostTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
should "decrement the user's favorite_count" do
|
||||
assert_difference("CurrentUser.favorite_count", -1) do
|
||||
assert_difference("@user.favorite_count", -1) do
|
||||
@post.remove_favorite!(@user)
|
||||
CurrentUser.reload
|
||||
@user.reload
|
||||
end
|
||||
end
|
||||
|
||||
@@ -721,9 +722,9 @@ class PostTest < ActiveSupport::TestCase
|
||||
|
||||
should "not decrement the user's favorite_count if the user did not favorite the post" do
|
||||
@post2 = FactoryGirl.create(:post)
|
||||
assert_difference("CurrentUser.favorite_count", 0) do
|
||||
assert_difference("@user.favorite_count", 0) do
|
||||
@post2.remove_favorite!(@user)
|
||||
CurrentUser.reload
|
||||
@user.reload
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,8 +7,10 @@ module Sources
|
||||
context "The source site for nico seiga" do
|
||||
setup do
|
||||
# Sources::Strategies::NicoSeiga.new("http://lohas.nicoseiga.jp/priv/2853566?e=1361296671&h=794b3686b02edfd64c22ed2f99a4c55650371854")
|
||||
@site = Sources::Site.new("http://seiga.nicovideo.jp/seiga/im1464351?track=ranking")
|
||||
@site.get
|
||||
|
||||
VCR.use_cassette("source-nico-seiga-unit-test", :record => :new_episodes) do
|
||||
@site = Sources::Site.new("http://seiga.nicovideo.jp/seiga/im1464351?track=ranking")
|
||||
end
|
||||
end
|
||||
|
||||
should "get the profile" do
|
||||
|
||||
@@ -6,8 +6,9 @@ module Sources
|
||||
class PixivTest < ActiveSupport::TestCase
|
||||
context "The source site for pixiv" do
|
||||
setup do
|
||||
@site = Sources::Site.new("http://www.pixiv.net/member_illust.php?mode=big&illust_id=9646484")
|
||||
@site.get
|
||||
VCR.use_cassette("source-pixiv-unit-test", :record => :new_episodes) do
|
||||
@site = Sources::Site.new("http://www.pixiv.net/member_illust.php?mode=big&illust_id=9646484")
|
||||
end
|
||||
end
|
||||
|
||||
should "get the profile" do
|
||||
|
||||
@@ -62,18 +62,6 @@ class TagAliasTest < ActiveSupport::TestCase
|
||||
end
|
||||
end
|
||||
|
||||
should "record the alias's creator in the tag history" do
|
||||
uploader = FactoryGirl.create(:user)
|
||||
post = nil
|
||||
CurrentUser.scoped(uploader, "127.0.0.1") do
|
||||
post = FactoryGirl.create(:post, :tag_string => "aaa bbb ccc")
|
||||
end
|
||||
tag_alias = FactoryGirl.create(:tag_alias, :antecedent_name => "aaa", :consequent_name => "xxx")
|
||||
post.reload
|
||||
assert_not_equal(tag_alias.creator_id, post.uploader_id)
|
||||
assert_equal(tag_alias.creator_id, post.versions.last.updater_id)
|
||||
end
|
||||
|
||||
should "push the antecedent's category to the consequent" do
|
||||
tag1 = FactoryGirl.create(:tag, :name => "aaa", :category => 1)
|
||||
tag2 = FactoryGirl.create(:tag, :name => "bbb")
|
||||
|
||||
@@ -8,6 +8,7 @@ class TagImplicationTest < ActiveSupport::TestCase
|
||||
CurrentUser.ip_addr = "127.0.0.1"
|
||||
@user = FactoryGirl.create(:user)
|
||||
MEMCACHE.flush_all
|
||||
Delayed::Worker.delay_jobs = false
|
||||
end
|
||||
|
||||
teardown do
|
||||
@@ -67,7 +68,18 @@ class TagImplicationTest < ActiveSupport::TestCase
|
||||
assert_equal("ddd", ti2.descendant_names)
|
||||
end
|
||||
|
||||
should "update the decendants for its parent on create" do
|
||||
should "update the descendants for its parent on destroy" do
|
||||
ti1 = FactoryGirl.create(:tag_implication, :antecedent_name => "aaa", :consequent_name => "bbb")
|
||||
ti2 = FactoryGirl.create(:tag_implication, :antecedent_name => "bbb", :consequent_name => "ccc")
|
||||
ti3 = FactoryGirl.create(:tag_implication, :antecedent_name => "ccc", :consequent_name => "ddd")
|
||||
ti2.destroy
|
||||
ti1.reload
|
||||
ti3.reload
|
||||
assert_equal("bbb", ti1.descendant_names)
|
||||
assert_equal("ddd", ti3.descendant_names)
|
||||
end
|
||||
|
||||
should "update the descendants for its parent on create" do
|
||||
ti1 = FactoryGirl.create(:tag_implication, :antecedent_name => "aaa", :consequent_name => "bbb")
|
||||
ti1.reload
|
||||
assert_equal("active", ti1.status)
|
||||
@@ -97,7 +109,17 @@ class TagImplicationTest < ActiveSupport::TestCase
|
||||
assert_equal("ccc ddd eee", ti2.descendant_names)
|
||||
assert_equal("ddd", ti3.descendant_names)
|
||||
assert_equal("eee", ti4.descendant_names)
|
||||
end
|
||||
|
||||
should "update any affected post upon destroy" do
|
||||
ti1 = FactoryGirl.create(:tag_implication, :antecedent_name => "aaa", :consequent_name => "bbb")
|
||||
ti2 = FactoryGirl.create(:tag_implication, :antecedent_name => "bbb", :consequent_name => "ccc")
|
||||
ti3 = FactoryGirl.create(:tag_implication, :antecedent_name => "ccc", :consequent_name => "ddd")
|
||||
p1 = FactoryGirl.create(:post, :tag_string => "aaa")
|
||||
assert_equal("aaa bbb ccc ddd", p1.tag_string)
|
||||
ti2.destroy
|
||||
p1.reload
|
||||
assert_equal("aaa bbb ddd", p1.tag_string)
|
||||
end
|
||||
|
||||
should "update any affected post upon save" do
|
||||
@@ -107,17 +129,5 @@ class TagImplicationTest < ActiveSupport::TestCase
|
||||
p1.reload
|
||||
assert_equal("aaa bbb ccc xxx yyy", p1.tag_string)
|
||||
end
|
||||
|
||||
should "record the implication's creator in the tag history" do
|
||||
user = FactoryGirl.create(:user)
|
||||
p1 = nil
|
||||
CurrentUser.scoped(user, "127.0.0.1") do
|
||||
p1 = FactoryGirl.create(:post, :tag_string => "aaa bbb ccc")
|
||||
end
|
||||
ti1 = FactoryGirl.create(:tag_implication, :antecedent_name => "aaa", :consequent_name => "xxx")
|
||||
p1.reload
|
||||
assert_not_equal(ti1.creator_id, p1.uploader_id)
|
||||
assert_equal(ti1.creator_id, p1.versions.last.updater_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -71,7 +71,7 @@ class UserTest < ActiveSupport::TestCase
|
||||
assert_difference("ModAction.count") do
|
||||
@user.invite!(User::Levels::CONTRIBUTOR)
|
||||
end
|
||||
assert_equal("#{@user.name} level changed Member -> Contributor by #{CurrentUser.name}", ModAction.last.description)
|
||||
assert_equal(%{"#{@user.name}":/users/#{@user.id} level changed Member -> Contributor}, ModAction.last.description)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user