##// END OF EJS Templates
Tests for Setting.per_page_options_array....
Jean-Philippe Lang -
r9482:1831861eac96
parent child
Show More
@@ -1,58 +1,86
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2012 Jean-Philippe Lang
2 # Copyright (C) 2006-2012 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.expand_path('../../test_helper', __FILE__)
18 require File.expand_path('../../test_helper', __FILE__)
19
19
20 class SettingTest < ActiveSupport::TestCase
20 class SettingTest < ActiveSupport::TestCase
21
21
22 def test_read_default
22 def test_read_default
23 assert_equal "Redmine", Setting.app_title
23 assert_equal "Redmine", Setting.app_title
24 assert Setting.self_registration?
24 assert Setting.self_registration?
25 assert !Setting.login_required?
25 assert !Setting.login_required?
26 end
26 end
27
27
28 def test_update
28 def test_update
29 Setting.app_title = "My title"
29 Setting.app_title = "My title"
30 assert_equal "My title", Setting.app_title
30 assert_equal "My title", Setting.app_title
31 # make sure db has been updated (INSERT)
31 # make sure db has been updated (INSERT)
32 assert_equal "My title", Setting.find_by_name('app_title').value
32 assert_equal "My title", Setting.find_by_name('app_title').value
33
33
34 Setting.app_title = "My other title"
34 Setting.app_title = "My other title"
35 assert_equal "My other title", Setting.app_title
35 assert_equal "My other title", Setting.app_title
36 # make sure db has been updated (UPDATE)
36 # make sure db has been updated (UPDATE)
37 assert_equal "My other title", Setting.find_by_name('app_title').value
37 assert_equal "My other title", Setting.find_by_name('app_title').value
38 end
38 end
39
39
40 def test_serialized_setting
40 def test_serialized_setting
41 Setting.notified_events = ['issue_added', 'issue_updated', 'news_added']
41 Setting.notified_events = ['issue_added', 'issue_updated', 'news_added']
42 assert_equal ['issue_added', 'issue_updated', 'news_added'], Setting.notified_events
42 assert_equal ['issue_added', 'issue_updated', 'news_added'], Setting.notified_events
43 assert_equal ['issue_added', 'issue_updated', 'news_added'], Setting.find_by_name('notified_events').value
43 assert_equal ['issue_added', 'issue_updated', 'news_added'], Setting.find_by_name('notified_events').value
44 end
44 end
45
45
46 def test_setting_should_be_reloaded_after_clear_cache
46 def test_setting_should_be_reloaded_after_clear_cache
47 Setting.app_title = "My title"
47 Setting.app_title = "My title"
48 assert_equal "My title", Setting.app_title
48 assert_equal "My title", Setting.app_title
49
49
50 s = Setting.find_by_name("app_title")
50 s = Setting.find_by_name("app_title")
51 s.value = 'New title'
51 s.value = 'New title'
52 s.save!
52 s.save!
53 assert_equal "My title", Setting.app_title
53 assert_equal "My title", Setting.app_title
54
54
55 Setting.clear_cache
55 Setting.clear_cache
56 assert_equal "New title", Setting.app_title
56 assert_equal "New title", Setting.app_title
57 end
57 end
58
59 def test_per_page_options_array_should_be_an_empty_array_when_setting_is_blank
60 with_settings :per_page_options => nil do
61 assert_equal [], Setting.per_page_options_array
62 end
63
64 with_settings :per_page_options => '' do
65 assert_equal [], Setting.per_page_options_array
66 end
67 end
68
69 def test_per_page_options_array_should_be_an_array_of_integers
70 with_settings :per_page_options => '10, 25, 50' do
71 assert_equal [10, 25, 50], Setting.per_page_options_array
72 end
73 end
74
75 def test_per_page_options_array_should_omit_non_numerial_values
76 with_settings :per_page_options => 'a, 25, 50' do
77 assert_equal [25, 50], Setting.per_page_options_array
78 end
79 end
80
81 def test_per_page_options_array_should_be_sorted
82 with_settings :per_page_options => '25, 10, 50' do
83 assert_equal [10, 25, 50], Setting.per_page_options_array
84 end
85 end
58 end
86 end
General Comments 0
You need to be logged in to leave comments. Login now