summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/wiki_controller.rb2
-rw-r--r--app/models/wiki.rb2
-rw-r--r--test/functional/wiki_controller_test.rb11
-rw-r--r--test/unit/wiki_test.rb10
4 files changed, 19 insertions, 6 deletions
diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb
index fdb523cb6..b3d6e8efd 100644
--- a/app/controllers/wiki_controller.rb
+++ b/app/controllers/wiki_controller.rb
@@ -306,7 +306,6 @@ class WikiController < ApplicationController
# Export wiki to a single pdf or html file
def export
@pages = @wiki.pages.
- order('title').
includes([:content, {:attachments => :author}]).
to_a
respond_to do |format|
@@ -391,7 +390,6 @@ class WikiController < ApplicationController
def load_pages_for_index
@pages = @wiki.pages.with_updated_on.
- reorder("#{WikiPage.table_name}.title").
includes(:wiki => :project).
includes(:parent).
to_a
diff --git a/app/models/wiki.rb b/app/models/wiki.rb
index 1d98c2afd..8173fb212 100644
--- a/app/models/wiki.rb
+++ b/app/models/wiki.rb
@@ -20,7 +20,7 @@
class Wiki < ActiveRecord::Base
include Redmine::SafeAttributes
belongs_to :project
- has_many :pages, lambda {order('title')}, :class_name => 'WikiPage', :dependent => :destroy
+ has_many :pages, lambda {order(Arel.sql('LOWER(title)').asc)}, :class_name => 'WikiPage', :dependent => :destroy
has_many :redirects, :class_name => 'WikiRedirect'
acts_as_watchable
diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb
index b75bdaae8..d299c357f 100644
--- a/test/functional/wiki_controller_test.rb
+++ b/test/functional/wiki_controller_test.rb
@@ -995,11 +995,11 @@ class WikiControllerTest < Redmine::ControllerTest
end
assert_select 'ul.pages-hierarchy' do
- assert_select 'li' do
- assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation', :text => 'CookBook documentation'
+ assert_select 'li:nth-child(1) > a[href=?]', '/projects/ecookbook/wiki/Another_page', :text => 'Another page'
+ assert_select 'li:nth-child(2)' do
+ assert_select '> a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation', :text => 'CookBook documentation'
assert_select 'ul li a[href=?]', '/projects/ecookbook/wiki/Page_with_an_inline_image', :text => 'Page with an inline image'
end
- assert_select 'li a[href=?]', '/projects/ecookbook/wiki/Another_page', :text => 'Another page'
end
end
@@ -1015,6 +1015,11 @@ class WikiControllerTest < Redmine::ControllerTest
assert_response :success
assert_equal "text/html", @response.media_type
+ assert_select 'ul.pages-hierarchy' do
+ assert_select 'li:nth-child(1) > a[href=?]', '#Another_page', :text => 'Another page'
+ assert_select 'li:nth-child(2) > a[href=?]', '#CookBook_documentation', :text => 'CookBook documentation'
+ assert_select 'li:nth-child(3) > a[href=?]', '#Page_with_sections', :text => 'Page with sections'
+ end
assert_select "a[name=?]", "CookBook_documentation"
assert_select "a[name=?]", "Another_page"
assert_select "a[name=?]", "Page_with_an_inline_image"
diff --git a/test/unit/wiki_test.rb b/test/unit/wiki_test.rb
index cc7ba95aa..0f3e5a27d 100644
--- a/test/unit/wiki_test.rb
+++ b/test/unit/wiki_test.rb
@@ -52,6 +52,16 @@ class WikiTest < ActiveSupport::TestCase
assert_equal page, wiki.find_page('ANOTHER page')
end
+ def test_ordering_pages_should_not_be_case_sensitive
+ wiki = Wiki.find(1)
+ wiki.pages.destroy_all
+ %w(ABc ACd Aac Acc).each do |title|
+ wiki.pages.create(:title => title)
+ end
+ wiki.reload
+ assert_equal %w(Aac ABc Acc ACd), wiki.pages.pluck(:title)
+ end
+
def test_find_page_with_cyrillic_characters
wiki = Wiki.find(1)
page = WikiPage.find(10)