##// 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 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2012 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.expand_path('../../test_helper', __FILE__)
19 19
20 20 class SettingTest < ActiveSupport::TestCase
21 21
22 22 def test_read_default
23 23 assert_equal "Redmine", Setting.app_title
24 24 assert Setting.self_registration?
25 25 assert !Setting.login_required?
26 26 end
27 27
28 28 def test_update
29 29 Setting.app_title = "My title"
30 30 assert_equal "My title", Setting.app_title
31 31 # make sure db has been updated (INSERT)
32 32 assert_equal "My title", Setting.find_by_name('app_title').value
33 33
34 34 Setting.app_title = "My other title"
35 35 assert_equal "My other title", Setting.app_title
36 36 # make sure db has been updated (UPDATE)
37 37 assert_equal "My other title", Setting.find_by_name('app_title').value
38 38 end
39 39
40 40 def test_serialized_setting
41 41 Setting.notified_events = ['issue_added', 'issue_updated', 'news_added']
42 42 assert_equal ['issue_added', 'issue_updated', 'news_added'], Setting.notified_events
43 43 assert_equal ['issue_added', 'issue_updated', 'news_added'], Setting.find_by_name('notified_events').value
44 44 end
45 45
46 46 def test_setting_should_be_reloaded_after_clear_cache
47 47 Setting.app_title = "My title"
48 48 assert_equal "My title", Setting.app_title
49 49
50 50 s = Setting.find_by_name("app_title")
51 51 s.value = 'New title'
52 52 s.save!
53 53 assert_equal "My title", Setting.app_title
54 54
55 55 Setting.clear_cache
56 56 assert_equal "New title", Setting.app_title
57 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 86 end
General Comments 0
You need to be logged in to leave comments. Login now