forked from e621ng/e621ng
[Posts] Fix pool metatags with capital letters (#769)
This commit is contained in:
parent
26c681575e
commit
b3d3fbc6a0
@ -509,7 +509,7 @@ class Post < ApplicationRecord
|
||||
return unless tag_string_diff.present?
|
||||
|
||||
current_tags = tag_array
|
||||
diff = TagQuery.scan(tag_string_diff.downcase)
|
||||
diff = TagQuery.scan(tag_string_diff)
|
||||
to_remove, to_add = diff.partition {|x| x =~ /\A-/i}
|
||||
to_remove = to_remove.map {|x| x[1..-1]}
|
||||
to_remove = TagAlias.to_aliased(to_remove)
|
||||
@ -696,7 +696,7 @@ class Post < ApplicationRecord
|
||||
when /^newpool:(.+)$/i
|
||||
pool = Pool.find_by_name($1)
|
||||
if pool.nil?
|
||||
pool = Pool.create(:name => $1, :description => "This pool was automatically generated")
|
||||
pool = Pool.create(name: $1, description: "")
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -741,7 +741,7 @@ class Post < ApplicationRecord
|
||||
end
|
||||
|
||||
when /^-pool:(.+)$/i
|
||||
pool = Pool.find_by(name: $1)
|
||||
pool = Pool.find_by_name($1)
|
||||
if pool
|
||||
pool.remove!(self)
|
||||
if pool.errors.any?
|
||||
@ -759,7 +759,7 @@ class Post < ApplicationRecord
|
||||
end
|
||||
|
||||
when /^(?:new)?pool:(.+)$/i
|
||||
pool = Pool.find_by(name: $1)
|
||||
pool = Pool.find_by_name($1)
|
||||
if pool
|
||||
pool.add!(self)
|
||||
if pool.errors.any?
|
||||
|
@ -2331,6 +2331,7 @@ class PostTest < ActiveSupport::TestCase
|
||||
context "pool:" do
|
||||
setup do
|
||||
@pool = create(:pool)
|
||||
@pool2 = create(:pool, name: "Test_Pool")
|
||||
@post = create(:post)
|
||||
end
|
||||
|
||||
@ -2357,6 +2358,12 @@ class PostTest < ActiveSupport::TestCase
|
||||
assert_equal("pool:#{@pool.id}", @post.pool_string)
|
||||
end
|
||||
|
||||
should "work with capital letters" do
|
||||
@post.update(tag_string_diff: "pool:#{@pool2.name}")
|
||||
assert_equal([@post.id], @pool2.reload.post_ids)
|
||||
assert_equal("pool:#{@pool2.id}", @post.pool_string)
|
||||
end
|
||||
|
||||
should "gracefully fail if the pool is full" do
|
||||
Danbooru.config.stubs(:pool_post_limit).returns(0)
|
||||
@post.update(tag_string_diff: "pool:#{@pool.name}")
|
||||
@ -2379,6 +2386,17 @@ class PostTest < ActiveSupport::TestCase
|
||||
@pool = Pool.last
|
||||
assert_equal([@post.id], @pool.reload.post_ids)
|
||||
assert_equal("pool:#{@pool.id}", @post.pool_string)
|
||||
assert_equal("test", @pool.name)
|
||||
end
|
||||
|
||||
should "work with capital letters" do
|
||||
assert_difference("Pool.count", 1) do
|
||||
@post.update(tag_string_diff: "newpool:Test2_Pool")
|
||||
end
|
||||
@pool = Pool.last
|
||||
assert_equal([@post.id], @pool.reload.post_ids)
|
||||
assert_equal("pool:#{@pool.id}", @post.pool_string)
|
||||
assert_equal("Test2_Pool", @pool.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user