From 97140f6a7828ff3f2eed25de1553a92ee67f4c24 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 27 Nov 2010 11:14:28 +0000 Subject: [PATCH] Fixed: Wiki#find_page should not be case sensitive because page title uniqueness is not (#6987). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4430 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/wiki.rb | 6 +++--- test/unit/wiki_redirect_test.rb | 3 ++- test/unit/wiki_test.rb | 9 +++++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/models/wiki.rb b/app/models/wiki.rb index 9bd245955..b28694ec4 100644 --- a/app/models/wiki.rb +++ b/app/models/wiki.rb @@ -45,11 +45,11 @@ class Wiki < ActiveRecord::Base # find the page with the given title def find_page(title, options = {}) title = start_page if title.blank? - title = Wiki.titleize(title) - page = pages.find_by_title(title) + title = Wiki.titleize(title).downcase + page = pages.first(:conditions => ["LOWER(title) LIKE ?", title]) if !page && !(options[:with_redirect] == false) # search for a redirect - redirect = redirects.find_by_title(title) + redirect = redirects.first(:conditions => ["LOWER(title) LIKE ?", title]) page = find_page(redirect.redirects_to, :with_redirect => false) if redirect end page diff --git a/test/unit/wiki_redirect_test.rb b/test/unit/wiki_redirect_test.rb index 7e80638b2..3e19d4958 100644 --- a/test/unit/wiki_redirect_test.rb +++ b/test/unit/wiki_redirect_test.rb @@ -18,7 +18,7 @@ require File.dirname(__FILE__) + '/../test_helper' class WikiRedirectTest < ActiveSupport::TestCase - fixtures :projects, :wikis + fixtures :projects, :wikis, :wiki_pages def setup @wiki = Wiki.find(1) @@ -33,6 +33,7 @@ class WikiRedirectTest < ActiveSupport::TestCase assert_equal 'New_title', @original.title assert @wiki.redirects.find_by_title('Original_title') assert @wiki.find_page('Original title') + assert @wiki.find_page('ORIGINAL title') end def test_update_redirect diff --git a/test/unit/wiki_test.rb b/test/unit/wiki_test.rb index 9303ce784..82a08b4c4 100644 --- a/test/unit/wiki_test.rb +++ b/test/unit/wiki_test.rb @@ -39,6 +39,15 @@ class WikiTest < ActiveSupport::TestCase assert_equal "Another start page", @wiki.start_page end + def test_find_page + wiki = Wiki.find(1) + page = WikiPage.find(2) + + assert_equal page, wiki.find_page('Another_page') + assert_equal page, wiki.find_page('Another page') + assert_equal page, wiki.find_page('ANOTHER page') + end + def test_titleize assert_equal 'Page_title_with_CAPITALES', Wiki.titleize('page title with CAPITALES') assert_equal 'テスト', Wiki.titleize('テスト') -- 2.39.5