To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / .svn / pristine / bb / bb834d6c2f5551779bce71506eba9e5321f661e3.svn-base @ 1297:0a574315af3e

History | View | Annotate | Download (3.01 KB)

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