FIX: Can't clean a tag if the given string is frozen.

This commit is contained in:
Guo Xiang Tan 2018-10-15 14:45:28 +08:00
parent 4c8fe13500
commit 8fa59f0548
2 changed files with 8 additions and 4 deletions

View File

@ -202,10 +202,13 @@ module DiscourseTagging
end
def self.clean_tag(tag)
tag = tag.dup
tag.downcase! if SiteSetting.force_lowercase_tags
tag.strip
.gsub(/\s+/, '-').squeeze('-')
.gsub(TAGS_FILTER_REGEXP, '')[0...SiteSetting.max_tag_length]
tag.strip!
tag.gsub!(/\s+/, '-')
tag.squeeze!('-')
tag.gsub!(TAGS_FILTER_REGEXP, '')
tag[0...SiteSetting.max_tag_length]
end
def self.tags_for_saving(tags_arg, guardian, opts = {})

View File

@ -209,7 +209,8 @@ describe DiscourseTagging do
describe "clean_tag" do
it "downcases new tags if setting enabled" do
expect(DiscourseTagging.clean_tag("HeLlO")).to eq("hello")
expect(DiscourseTagging.clean_tag("HeLlO".freeze)).to eq("hello")
SiteSetting.force_lowercase_tags = false
expect(DiscourseTagging.clean_tag("HeLlO")).to eq("HeLlO")
end