##// END OF EJS Templates
Speeds up rendering of the project list for users who belong to hundreds of projects....
Speeds up rendering of the project list for users who belong to hundreds of projects. git-svn-id: http://svn.redmine.org/redmine/trunk@16123 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r15301:c4b4b8a71e21
r15741:f8df935dcada
Show More
activities_helper_test.rb
102 lines | 2.8 KiB | text/x-ruby | RubyLexer
/ test / unit / helpers / activities_helper_test.rb
Jean-Philippe Lang
Group events in the activity view (#12542)....
r10724 # Redmine - project management software
Jean-Philippe Lang
Updates copyright for 2016....
r14856 # Copyright (C) 2006-2016 Jean-Philippe Lang
Jean-Philippe Lang
Group events in the activity view (#12542)....
r10724 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require File.expand_path('../../../test_helper', __FILE__)
Jean-Philippe Lang
Adds a class for testing helpers....
r15301 class ActivitiesHelperTest < Redmine::HelperTest
Jean-Philippe Lang
Group events in the activity view (#12542)....
r10724 include ActivitiesHelper
Jean-Philippe Lang
Include Redmine::I18n in helpers tests....
r11645 include Redmine::I18n
Jean-Philippe Lang
Group events in the activity view (#12542)....
r10724
class MockEvent
attr_reader :event_datetime, :event_group, :name
def initialize(group=nil)
@@count ||= 0
@name = "e#{@@count}"
@event_datetime = Time.now + @@count.hours
@event_group = group || self
@@count += 1
end
def self.clear
@@count = 0
end
end
def setup
MockEvent.clear
end
def test_sort_activity_events_should_sort_by_datetime
events = []
events << MockEvent.new
events << MockEvent.new
events << MockEvent.new
assert_equal [
['e2', false],
['e1', false],
['e0', false]
], sort_activity_events(events).map {|event, grouped| [event.name, grouped]}
end
def test_sort_activity_events_should_group_events
events = []
events << MockEvent.new
events << MockEvent.new(events[0])
events << MockEvent.new(events[0])
assert_equal [
['e2', false],
['e1', true],
['e0', true]
], sort_activity_events(events).map {|event, grouped| [event.name, grouped]}
end
def test_sort_activity_events_with_group_not_in_set_should_group_events
e = MockEvent.new
events = []
events << MockEvent.new(e)
events << MockEvent.new(e)
assert_equal [
['e2', false],
['e1', true]
], sort_activity_events(events).map {|event, grouped| [event.name, grouped]}
end
def test_sort_activity_events_should_sort_by_datetime_and_group
events = []
events << MockEvent.new
events << MockEvent.new
events << MockEvent.new
events << MockEvent.new(events[1])
events << MockEvent.new(events[2])
events << MockEvent.new
events << MockEvent.new(events[2])
assert_equal [
['e6', false],
['e4', true],
['e2', true],
['e5', false],
['e3', false],
['e1', true],
['e0', false]
], sort_activity_events(events).map {|event, grouped| [event.name, grouped]}
end
end