##// END OF EJS Templates
Create a wiki with a default start page named 'Wiki' when enabling wiki module (#2657)....
Jean-Philippe Lang -
r2413:9e4a11852811
parent child
Show More
@@ -0,0 +1,43
1 # Redmine - project management software
2 # Copyright (C) 2006-2009 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.dirname(__FILE__) + '/../test_helper'
19
20 class EnabledModuleTest < Test::Unit::TestCase
21 fixtures :projects, :wikis
22
23 def test_enabling_wiki_should_create_a_wiki
24 CustomField.delete_all
25 project = Project.create!(:name => 'Project with wiki', :identifier => 'wikiproject')
26 assert_nil project.wiki
27 project.enabled_module_names = ['wiki']
28 project.reload
29 assert_not_nil project.wiki
30 assert_equal 'Wiki', project.wiki.start_page
31 end
32
33 def test_reenabling_wiki_should_not_create_another_wiki
34 project = Project.find(1)
35 assert_not_nil project.wiki
36 project.enabled_module_names = []
37 project.reload
38 assert_no_difference 'Wiki.count' do
39 project.enabled_module_names = ['wiki']
40 end
41 assert_not_nil project.wiki
42 end
43 end
@@ -1,23 +1,38
1 # redMine - project management software
2 # Copyright (C) 2006-2007 Jean-Philippe Lang
1 # Redmine - project management software
2 # Copyright (C) 2006-2009 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 class EnabledModule < ActiveRecord::Base
19 19 belongs_to :project
20 20
21 21 validates_presence_of :name
22 22 validates_uniqueness_of :name, :scope => :project_id
23
24 after_create :module_enabled
25
26 private
27
28 # after_create callback used to do things when a module is enabled
29 def module_enabled
30 case name
31 when 'wiki'
32 # Create a wiki with a default start page
33 if project && project.wiki.nil?
34 Wiki.create(:project => project, :start_page => 'Wiki')
35 end
36 end
37 end
23 38 end
General Comments 0
You need to be logged in to leave comments. Login now