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
This commit is contained in:
parent
4a6a551d07
commit
97140f6a78
|
@ -45,11 +45,11 @@ class Wiki < ActiveRecord::Base
|
||||||
# find the page with the given title
|
# find the page with the given title
|
||||||
def find_page(title, options = {})
|
def find_page(title, options = {})
|
||||||
title = start_page if title.blank?
|
title = start_page if title.blank?
|
||||||
title = Wiki.titleize(title)
|
title = Wiki.titleize(title).downcase
|
||||||
page = pages.find_by_title(title)
|
page = pages.first(:conditions => ["LOWER(title) LIKE ?", title])
|
||||||
if !page && !(options[:with_redirect] == false)
|
if !page && !(options[:with_redirect] == false)
|
||||||
# search for a redirect
|
# 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
|
page = find_page(redirect.redirects_to, :with_redirect => false) if redirect
|
||||||
end
|
end
|
||||||
page
|
page
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
require File.dirname(__FILE__) + '/../test_helper'
|
require File.dirname(__FILE__) + '/../test_helper'
|
||||||
|
|
||||||
class WikiRedirectTest < ActiveSupport::TestCase
|
class WikiRedirectTest < ActiveSupport::TestCase
|
||||||
fixtures :projects, :wikis
|
fixtures :projects, :wikis, :wiki_pages
|
||||||
|
|
||||||
def setup
|
def setup
|
||||||
@wiki = Wiki.find(1)
|
@wiki = Wiki.find(1)
|
||||||
|
@ -33,6 +33,7 @@ class WikiRedirectTest < ActiveSupport::TestCase
|
||||||
assert_equal 'New_title', @original.title
|
assert_equal 'New_title', @original.title
|
||||||
assert @wiki.redirects.find_by_title('Original_title')
|
assert @wiki.redirects.find_by_title('Original_title')
|
||||||
assert @wiki.find_page('Original title')
|
assert @wiki.find_page('Original title')
|
||||||
|
assert @wiki.find_page('ORIGINAL title')
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_update_redirect
|
def test_update_redirect
|
||||||
|
|
|
@ -39,6 +39,15 @@ class WikiTest < ActiveSupport::TestCase
|
||||||
assert_equal "Another start page", @wiki.start_page
|
assert_equal "Another start page", @wiki.start_page
|
||||||
end
|
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
|
def test_titleize
|
||||||
assert_equal 'Page_title_with_CAPITALES', Wiki.titleize('page title with CAPITALES')
|
assert_equal 'Page_title_with_CAPITALES', Wiki.titleize('page title with CAPITALES')
|
||||||
assert_equal 'テスト', Wiki.titleize('テスト')
|
assert_equal 'テスト', Wiki.titleize('テスト')
|
||||||
|
|
Loading…
Reference in New Issue