summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2015-02-08 15:13:57 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2015-02-08 15:13:57 +0000
commitaf5872b7d432f78befcb7e9f87187a5b82b588bf (patch)
treecb8420064142f4c3a3d95b2f9ad5ca21232cbf3b /test
parentaeb6dbc306163548a78d320d291b45b17b2ecf7f (diff)
downloadredmine-af5872b7d432f78befcb7e9f87187a5b82b588bf.tar.gz
redmine-af5872b7d432f78befcb7e9f87187a5b82b588bf.zip
Support for accent insensitive search with PostgreSQL (#18801).
If the unaccent extension is installed, the search engine will use it in order to do accent insensitive search. git-svn-id: http://svn.redmine.org/redmine/trunk@13989 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r--test/test_helper.rb4
-rw-r--r--test/unit/search_test.rb19
2 files changed, 23 insertions, 0 deletions
diff --git a/test/test_helper.rb b/test/test_helper.rb
index 1762de868..63159ad9a 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -169,6 +169,10 @@ class ActiveSupport::TestCase
ActiveRecord::Base.connection.adapter_name =~ /mysql/i
end
+ def postgresql?
+ ActiveRecord::Base.connection.adapter_name =~ /postgresql/i
+ end
+
def assert_save(object)
saved = object.save
message = "#{object.class} could not be saved"
diff --git a/test/unit/search_test.rb b/test/unit/search_test.rb
index 083a8f355..bd9477025 100644
--- a/test/unit/search_test.rb
+++ b/test/unit/search_test.rb
@@ -171,6 +171,25 @@ class SearchTest < ActiveSupport::TestCase
end
end
+ def test_search_should_be_case_and_accent_insensitive_with_postgresql_and_noaccent_extension
+ if postgresql?
+ skip unless Redmine::Database.postgresql_version >= 90000
+ # Extension will be rollbacked with the test transaction
+ ActiveRecord::Base.connection.execute("CREATE EXTENSION IF NOT EXISTS unaccent")
+ Redmine::Database.reset
+ assert Redmine::Database.postgresql_unaccent?
+
+ issue1 = Issue.generate!(:subject => "OO")
+ issue2 = Issue.generate!(:subject => "oo")
+
+ r = Issue.search_results('ÖÖ')
+ assert_include issue1, r
+ assert_include issue2, r
+ end
+ ensure
+ Redmine::Database.reset
+ end
+
private
def remove_permission(role, permission)