From 1cb029438893ed9f18015fef0d814e8c427f9a52 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 27 Jan 2007 22:31:42 +0000 Subject: [PATCH] added unit tests for issue statuses, user preferences and tokens git-svn-id: http://redmine.rubyforge.org/svn/trunk@197 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- test/fixtures/user_preferences.yml | 25 +++++++++++++-- test/unit/comment_test.rb | 17 +++++++++++ test/unit/issue_status_test.rb | 49 ++++++++++++++++++++++++++++++ test/unit/token_test.rb | 25 +++++++++++++-- test/unit/user_preference_test.rb | 41 ++++++++++++++++++++++--- 5 files changed, 147 insertions(+), 10 deletions(-) create mode 100644 test/unit/issue_status_test.rb diff --git a/test/fixtures/user_preferences.yml b/test/fixtures/user_preferences.yml index 8794d28ae..b9ba37765 100644 --- a/test/fixtures/user_preferences.yml +++ b/test/fixtures/user_preferences.yml @@ -1,5 +1,24 @@ -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html -first: +--- +user_preferences_001: + others: | + --- + :my_page_layout: + left: + - latest_news + - documents + right: + - issues_assigned_to_me + - issues_reported_by_me + top: + - calendar + id: 1 -another: + user_id: 1 + hide_mail: true +user_preferences_002: + others: |+ + --- {} + id: 2 + user_id: 3 + hide_mail: false \ No newline at end of file diff --git a/test/unit/comment_test.rb b/test/unit/comment_test.rb index 4435f0a7f..301704a94 100644 --- a/test/unit/comment_test.rb +++ b/test/unit/comment_test.rb @@ -1,3 +1,20 @@ +# redMine - project management software +# Copyright (C) 2006-2007 Jean-Philippe Lang +# +# 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.dirname(__FILE__) + '/../test_helper' class CommentTest < Test::Unit::TestCase diff --git a/test/unit/issue_status_test.rb b/test/unit/issue_status_test.rb new file mode 100644 index 000000000..404bc36ba --- /dev/null +++ b/test/unit/issue_status_test.rb @@ -0,0 +1,49 @@ +# redMine - project management software +# Copyright (C) 2006-2007 Jean-Philippe Lang +# +# 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.dirname(__FILE__) + '/../test_helper' + +class IssueStatusTest < Test::Unit::TestCase + fixtures :issue_statuses + + def test_create + status = IssueStatus.new :name => "Assigned" + assert !status.save + # status name uniqueness + assert_equal 1, status.errors.count + + status.name = "Test Status" + assert status.save + assert !status.is_default + end + + def test_default + status = IssueStatus.default + assert_kind_of IssueStatus, status + end + + def test_change_default + status = IssueStatus.find(2) + assert !status.is_default + status.is_default = true + assert status.save + status.reload + + assert_equal status, IssueStatus.default + assert !IssueStatus.find(1).is_default + end +end diff --git a/test/unit/token_test.rb b/test/unit/token_test.rb index 1c3820e99..5a34e0ad3 100644 --- a/test/unit/token_test.rb +++ b/test/unit/token_test.rb @@ -1,10 +1,29 @@ +# redMine - project management software +# Copyright (C) 2006-2007 Jean-Philippe Lang +# +# 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.dirname(__FILE__) + '/../test_helper' class TokenTest < Test::Unit::TestCase fixtures :tokens - # Replace this with your real tests. - def test_truth - assert true + def test_create + token = Token.new + token.save + assert_equal 40, token.value.length + assert !token.expired? end end diff --git a/test/unit/user_preference_test.rb b/test/unit/user_preference_test.rb index 4675a2652..cf6787b17 100644 --- a/test/unit/user_preference_test.rb +++ b/test/unit/user_preference_test.rb @@ -1,10 +1,43 @@ +# redMine - project management software +# Copyright (C) 2006-2007 Jean-Philippe Lang +# +# 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.dirname(__FILE__) + '/../test_helper' class UserPreferenceTest < Test::Unit::TestCase - fixtures :user_preferences + fixtures :users, :user_preferences - # Replace this with your real tests. - def test_truth - assert true + def test_create + user = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo") + user.login = "newuser" + user.password, user.password_confirmation = "password", "password" + assert user.save + + assert_kind_of UserPreference, user.pref + assert_kind_of Hash, user.pref.others + assert user.pref.save + end + + def test_update + user = User.find(1) + assert_equal true, user.pref.hide_mail + user.pref['preftest'] = 'value' + assert user.pref.save + + user.reload + assert_equal 'value', user.pref['preftest'] end end -- 2.39.5