]> source.dussan.org Git - redmine.git/commitdiff
Merged r19636 from trunk to 4.1-stable (#32737).
authorGo MAEDA <maeda@farend.jp>
Thu, 2 Apr 2020 07:55:39 +0000 (07:55 +0000)
committerGo MAEDA <maeda@farend.jp>
Thu, 2 Apr 2020 07:55:39 +0000 (07:55 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/4.1-stable@19638 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/sort_criteria.rb
test/unit/query_test.rb

index 448c13d4103056e163b39e5bfab117a65fa5a57c..b527fe4f0ce735bd81cd5569fd95ea3fe0babbe4 100644 (file)
@@ -90,6 +90,7 @@ module Redmine
 
     def normalize!
       self.reject! {|s| s.first.blank? }
+      self.uniq! {|s| s.first }
       self.collect! {|s| s = Array(s); [s.first, (s.last == false || s.last.to_s == 'desc') ? 'desc' : 'asc']}
       self.replace self.first(3)
     end
index c7d805571ebc416451cf9e37a70bd0fc1227ca85..cc5a23530e92cfbeb59cba105f435fb4790655a2 100644 (file)
@@ -1638,12 +1638,12 @@ class QueryTest < ActiveSupport::TestCase
   def test_sort_criteria_should_have_only_first_three_elements
     q = IssueQuery.new
     q.sort_criteria = [['priority', 'desc'], ['tracker', 'asc'], ['priority', 'asc'], ['id', 'asc'], ['project', 'asc'], ['subject', 'asc']]
-    assert_equal [['priority', 'desc'], ['tracker', 'asc'], ['priority', 'asc']], q.sort_criteria
+    assert_equal [['priority', 'desc'], ['tracker', 'asc'], ['id', 'asc']], q.sort_criteria
   end
 
-  def test_sort_criteria_should_remove_blank_keys
+  def test_sort_criteria_should_remove_blank_or_duplicate_keys
     q = IssueQuery.new
-    q.sort_criteria = [['priority', 'desc'], [nil, 'desc'], ['', 'asc'], ['project', 'asc']]
+    q.sort_criteria = [['priority', 'desc'], [nil, 'desc'], ['', 'asc'], ['priority', 'asc'], ['project', 'asc']]
     assert_equal [['priority', 'desc'], ['project', 'asc']], q.sort_criteria
   end