Merge pull request #3077 from evazion/fix-dmail-title-search

Fix case sensitivity bug in dmail title search.
This commit is contained in:
Albert Yi
2017-05-22 11:59:22 -07:00
committed by GitHub
3 changed files with 5 additions and 2 deletions

View File

@@ -19,7 +19,7 @@ class Ban < ActiveRecord::Base
def self.reason_matches(query)
if query =~ /\*/
where("lower(bans.reason) LIKE ?", query.to_escaped_for_sql_like)
where("lower(bans.reason) LIKE ?", query.mb_chars.downcase.to_escaped_for_sql_like)
else
where("bans.reason @@ plainto_tsquery(?)", query)
end

View File

@@ -104,7 +104,7 @@ class Dmail < ActiveRecord::Base
def title_matches(query)
query = "*#{query}*" unless query =~ /\*/
where("lower(dmails.title) LIKE ?", query.to_escaped_for_sql_like)
where("lower(dmails.title) LIKE ?", query.mb_chars.downcase.to_escaped_for_sql_like)
end
def search_message(query)

View File

@@ -78,6 +78,9 @@ class DmailTest < ActiveSupport::TestCase
matches = Dmail.search(title_matches: "x")
assert_equal([dmail.id], matches.map(&:id))
matches = Dmail.search(title_matches: "X")
assert_equal([dmail.id], matches.map(&:id))
matches = Dmail.search(message_matches: "xxx")
assert_equal([dmail.id], matches.map(&:id))