##// END OF EJS Templates
Removed some shoulda context....
Jean-Philippe Lang -
r11635:61dfab12fd72
parent child
Show More
@@ -99,6 +99,7 module ObjectHelpers
99 @generated_version_name.succ!
99 @generated_version_name.succ!
100 version = Version.new(attributes)
100 version = Version.new(attributes)
101 version.name = @generated_version_name.dup if version.name.blank?
101 version.name = @generated_version_name.dup if version.name.blank?
102 version.project ||= Project.find(1)
102 yield version if block_given?
103 yield version if block_given?
103 version.save!
104 version.save!
104 version
105 version
@@ -20,21 +20,19 require File.expand_path('../../../test_helper', __FILE__)
20 class PatchesTest < ActiveSupport::TestCase
20 class PatchesTest < ActiveSupport::TestCase
21 include Redmine::I18n
21 include Redmine::I18n
22
22
23 context "ActiveRecord::Base.human_attribute_name" do
23 def setup
24 setup do
24 Setting.default_language = 'en'
25 Setting.default_language = 'en'
25 end
26 end
27
26
28 should "transform name to field_name" do
27 test "ActiveRecord::Base.human_attribute_name should transform name to field_name" do
29 assert_equal l('field_last_login_on'), ActiveRecord::Base.human_attribute_name('last_login_on')
28 assert_equal l('field_last_login_on'), ActiveRecord::Base.human_attribute_name('last_login_on')
30 end
29 end
31
30
32 should "cut extra _id suffix for better validation" do
31 test "ActiveRecord::Base.human_attribute_name should cut extra _id suffix for better validation" do
33 assert_equal l('field_last_login_on'), ActiveRecord::Base.human_attribute_name('last_login_on_id')
32 assert_equal l('field_last_login_on'), ActiveRecord::Base.human_attribute_name('last_login_on_id')
34 end
33 end
35
34
36 should "default to humanized value if no translation has been found (useful for custom fields)" do
35 test "ActiveRecord::Base.human_attribute_name should default to humanized value if no translation has been found (useful for custom fields)" do
37 assert_equal 'Patch name', ActiveRecord::Base.human_attribute_name('Patch name')
36 assert_equal 'Patch name', ActiveRecord::Base.human_attribute_name('Patch name')
38 end
39 end
37 end
40 end
38 end
@@ -18,19 +18,17
18 require File.expand_path('../../../../../test_helper', __FILE__)
18 require File.expand_path('../../../../../test_helper', __FILE__)
19
19
20 class Redmine::MenuManager::MapperTest < ActiveSupport::TestCase
20 class Redmine::MenuManager::MapperTest < ActiveSupport::TestCase
21 context "Mapper#initialize" do
21 test "Mapper#initialize should define a root MenuNode if menu is not present in items" do
22 should "define a root MenuNode if menu is not present in items" do
22 menu_mapper = Redmine::MenuManager::Mapper.new(:test_menu, {})
23 menu_mapper = Redmine::MenuManager::Mapper.new(:test_menu, {})
23 node = menu_mapper.menu_items
24 node = menu_mapper.menu_items
24 assert_not_nil node
25 assert_not_nil node
25 assert_equal :root, node.name
26 assert_equal :root, node.name
26 end
27 end
28
27
29 should "use existing MenuNode if present" do
28 test "Mapper#initialize should use existing MenuNode if present" do
30 node = "foo" # just an arbitrary reference
29 node = "foo" # just an arbitrary reference
31 menu_mapper = Redmine::MenuManager::Mapper.new(:test_menu, {:test_menu => node})
30 menu_mapper = Redmine::MenuManager::Mapper.new(:test_menu, {:test_menu => node})
32 assert_equal node, menu_mapper.menu_items
31 assert_equal node, menu_mapper.menu_items
33 end
34 end
32 end
35
33
36 def test_push_onto_root
34 def test_push_onto_root
@@ -404,25 +404,22 class UserTest < ActiveSupport::TestCase
404 assert_not_nil u.errors[:mail_notification]
404 assert_not_nil u.errors[:mail_notification]
405 end
405 end
406
406
407 context "User#try_to_login" do
407 test "User#try_to_login should fall-back to case-insensitive if user login is not found as-typed" do
408 should "fall-back to case-insensitive if user login is not found as-typed." do
408 user = User.try_to_login("AdMin", "admin")
409 user = User.try_to_login("AdMin", "admin")
409 assert_kind_of User, user
410 assert_kind_of User, user
410 assert_equal "admin", user.login
411 assert_equal "admin", user.login
411 end
412 end
413
414 should "select the exact matching user first" do
415 case_sensitive_user = User.generate! do |user|
416 user.password = "admin123"
417 end
418 # bypass validations to make it appear like existing data
419 case_sensitive_user.update_attribute(:login, 'ADMIN')
420
421 user = User.try_to_login("ADMIN", "admin123")
422 assert_kind_of User, user
423 assert_equal "ADMIN", user.login
424
412
413 test "User#try_to_login should select the exact matching user first" do
414 case_sensitive_user = User.generate! do |user|
415 user.password = "admin123"
425 end
416 end
417 # bypass validations to make it appear like existing data
418 case_sensitive_user.update_attribute(:login, 'ADMIN')
419
420 user = User.try_to_login("ADMIN", "admin123")
421 assert_kind_of User, user
422 assert_equal "ADMIN", user.login
426 end
423 end
427
424
428 def test_password
425 def test_password
@@ -527,20 +524,14 class UserTest < ActiveSupport::TestCase
527 assert_equal nil, user
524 assert_equal nil, user
528 end
525 end
529
526
530 context ".try_to_login" do
527 test ".try_to_login with good credentials should return the user" do
531 context "with good credentials" do
528 user = User.try_to_login("admin", "admin")
532 should "return the user" do
529 assert_kind_of User, user
533 user = User.try_to_login("admin", "admin")
530 assert_equal "admin", user.login
534 assert_kind_of User, user
531 end
535 assert_equal "admin", user.login
536 end
537 end
538
532
539 context "with wrong credentials" do
533 test ".try_to_login with wrong credentials should return nil" do
540 should "return nil" do
534 assert_nil User.try_to_login("admin", "foo")
541 assert_nil User.try_to_login("admin", "foo")
542 end
543 end
544 end
535 end
545
536
546 if ldap_configured?
537 if ldap_configured?
@@ -684,50 +675,46 class UserTest < ActiveSupport::TestCase
684 end
675 end
685 end
676 end
686
677
687 context "User#api_key" do
678 test "#api_key should generate a new one if the user doesn't have one" do
688 should "generate a new one if the user doesn't have one" do
679 user = User.generate!(:api_token => nil)
689 user = User.generate!(:api_token => nil)
680 assert_nil user.api_token
690 assert_nil user.api_token
691
681
692 key = user.api_key
682 key = user.api_key
693 assert_equal 40, key.length
683 assert_equal 40, key.length
694 user.reload
684 user.reload
695 assert_equal key, user.api_key
685 assert_equal key, user.api_key
696 end
686 end
697
687
698 should "return the existing api token value" do
688 test "#api_key should return the existing api token value" do
699 user = User.generate!
689 user = User.generate!
700 token = Token.create!(:action => 'api')
690 token = Token.create!(:action => 'api')
701 user.api_token = token
691 user.api_token = token
702 assert user.save
692 assert user.save
703
693
704 assert_equal token.value, user.api_key
694 assert_equal token.value, user.api_key
705 end
706 end
695 end
707
696
708 context "User#find_by_api_key" do
697 test "#find_by_api_key should return nil if no matching key is found" do
709 should "return nil if no matching key is found" do
698 assert_nil User.find_by_api_key('zzzzzzzzz')
710 assert_nil User.find_by_api_key('zzzzzzzzz')
699 end
711 end
712
700
713 should "return nil if the key is found for an inactive user" do
701 test "#find_by_api_key should return nil if the key is found for an inactive user" do
714 user = User.generate!
702 user = User.generate!
715 user.status = User::STATUS_LOCKED
703 user.status = User::STATUS_LOCKED
716 token = Token.create!(:action => 'api')
704 token = Token.create!(:action => 'api')
717 user.api_token = token
705 user.api_token = token
718 user.save
706 user.save
719
707
720 assert_nil User.find_by_api_key(token.value)
708 assert_nil User.find_by_api_key(token.value)
721 end
709 end
722
710
723 should "return the user if the key is found for an active user" do
711 test "#find_by_api_key should return the user if the key is found for an active user" do
724 user = User.generate!
712 user = User.generate!
725 token = Token.create!(:action => 'api')
713 token = Token.create!(:action => 'api')
726 user.api_token = token
714 user.api_token = token
727 user.save
715 user.save
728
716
729 assert_equal user, User.find_by_api_key(token.value)
717 assert_equal user, User.find_by_api_key(token.value)
730 end
731 end
718 end
732
719
733 def test_default_admin_account_changed_should_return_false_if_account_was_not_changed
720 def test_default_admin_account_changed_should_return_false_if_account_was_not_changed
@@ -880,29 +867,27 class UserTest < ActiveSupport::TestCase
880 assert !u.password_confirmation.blank?
867 assert !u.password_confirmation.blank?
881 end
868 end
882
869
883 context "#change_password_allowed?" do
870 test "#change_password_allowed? should be allowed if no auth source is set" do
884 should "be allowed if no auth source is set" do
871 user = User.generate!
885 user = User.generate!
872 assert user.change_password_allowed?
886 assert user.change_password_allowed?
873 end
887 end
888
874
889 should "delegate to the auth source" do
875 test "#change_password_allowed? should delegate to the auth source" do
890 user = User.generate!
876 user = User.generate!
891
877
892 allowed_auth_source = AuthSource.generate!
878 allowed_auth_source = AuthSource.generate!
893 def allowed_auth_source.allow_password_changes?; true; end
879 def allowed_auth_source.allow_password_changes?; true; end
894
880
895 denied_auth_source = AuthSource.generate!
881 denied_auth_source = AuthSource.generate!
896 def denied_auth_source.allow_password_changes?; false; end
882 def denied_auth_source.allow_password_changes?; false; end
897
883
898 assert user.change_password_allowed?
884 assert user.change_password_allowed?
899
885
900 user.auth_source = allowed_auth_source
886 user.auth_source = allowed_auth_source
901 assert user.change_password_allowed?, "User not allowed to change password, though auth source does"
887 assert user.change_password_allowed?, "User not allowed to change password, though auth source does"
902
888
903 user.auth_source = denied_auth_source
889 user.auth_source = denied_auth_source
904 assert !user.change_password_allowed?, "User allowed to change password, though auth source does not"
890 assert !user.change_password_allowed?, "User allowed to change password, though auth source does not"
905 end
906 end
891 end
907
892
908 def test_own_account_deletable_should_be_true_with_unsubscrive_enabled
893 def test_own_account_deletable_should_be_true_with_unsubscrive_enabled
@@ -132,75 +132,64 class VersionTest < ActiveSupport::TestCase
132 assert_equal false, version.completed?
132 assert_equal false, version.completed?
133 end
133 end
134
134
135 context "#behind_schedule?" do
135 test "#behind_schedule? should be false if there are no issues assigned" do
136 setup do
136 version = Version.generate!(:effective_date => Date.yesterday)
137 ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
137 assert_equal false, version.behind_schedule?
138 @project = Project.create!(:name => 'test0', :identifier => 'test0')
138 end
139 @project.trackers << Tracker.create!(:name => 'track')
139
140
140 test "#behind_schedule? should be false if there is no effective_date" do
141 @version = Version.create!(:project => @project, :effective_date => nil, :name => 'version')
141 version = Version.generate!(:effective_date => nil)
142 end
142 assert_equal false, version.behind_schedule?
143
143 end
144 should "be false if there are no issues assigned" do
144
145 @version.update_attribute(:effective_date, Date.yesterday)
145 test "#behind_schedule? should be false if all of the issues are ahead of schedule" do
146 assert_equal false, @version.behind_schedule?
146 version = Version.generate!(:effective_date => 7.days.from_now.to_date)
147 end
147 add_issue(version, :start_date => 7.days.ago, :done_ratio => 60) # 14 day span, 60% done, 50% time left
148
148 add_issue(version, :start_date => 7.days.ago, :done_ratio => 60) # 14 day span, 60% done, 50% time left
149 should "be false if there is no effective_date" do
149 assert_equal 60, version.completed_percent
150 assert_equal false, @version.behind_schedule?
150 assert_equal false, version.behind_schedule?
151 end
151 end
152
152
153 should "be false if all of the issues are ahead of schedule" do
153 test "#behind_schedule? should be true if any of the issues are behind schedule" do
154 @version.update_attribute(:effective_date, 7.days.from_now.to_date)
154 version = Version.generate!(:effective_date => 7.days.from_now.to_date)
155 add_issue(@version, :start_date => 7.days.ago, :done_ratio => 60) # 14 day span, 60% done, 50% time left
155 add_issue(version, :start_date => 7.days.ago, :done_ratio => 60) # 14 day span, 60% done, 50% time left
156 add_issue(@version, :start_date => 7.days.ago, :done_ratio => 60) # 14 day span, 60% done, 50% time left
156 add_issue(version, :start_date => 7.days.ago, :done_ratio => 20) # 14 day span, 20% done, 50% time left
157 assert_equal 60, @version.completed_percent
157 assert_equal 40, version.completed_percent
158 assert_equal false, @version.behind_schedule?
158 assert_equal true, version.behind_schedule?
159 end
159 end
160
160
161 should "be true if any of the issues are behind schedule" do
161 test "#behind_schedule? should be false if all of the issues are complete" do
162 @version.update_attribute(:effective_date, 7.days.from_now.to_date)
162 version = Version.generate!(:effective_date => 7.days.from_now.to_date)
163 add_issue(@version, :start_date => 7.days.ago, :done_ratio => 60) # 14 day span, 60% done, 50% time left
163 add_issue(version, :start_date => 14.days.ago, :done_ratio => 100, :status => IssueStatus.find(5)) # 7 day span
164 add_issue(@version, :start_date => 7.days.ago, :done_ratio => 20) # 14 day span, 20% done, 50% time left
164 add_issue(version, :start_date => 14.days.ago, :done_ratio => 100, :status => IssueStatus.find(5)) # 7 day span
165 assert_equal 40, @version.completed_percent
165 assert_equal 100, version.completed_percent
166 assert_equal true, @version.behind_schedule?
166 assert_equal false, version.behind_schedule?
167 end
167 end
168
168
169 should "be false if all of the issues are complete" do
169 test "#estimated_hours should return 0 with no assigned issues" do
170 @version.update_attribute(:effective_date, 7.days.from_now.to_date)
170 version = Version.generate!
171 add_issue(@version, :start_date => 14.days.ago, :done_ratio => 100, :status => IssueStatus.find(5)) # 7 day span
171 assert_equal 0, version.estimated_hours
172 add_issue(@version, :start_date => 14.days.ago, :done_ratio => 100, :status => IssueStatus.find(5)) # 7 day span
172 end
173 assert_equal 100, @version.completed_percent
173
174 assert_equal false, @version.behind_schedule?
174 test "#estimated_hours should return 0 with no estimated hours" do
175 end
175 version = Version.generate!
176 end
176 add_issue(version)
177
177 assert_equal 0, version.estimated_hours
178 context "#estimated_hours" do
178 end
179 setup do
179
180 @version = Version.create!(:project_id => 1, :name => '#estimated_hours')
180 test "#estimated_hours should return return the sum of estimated hours" do
181 end
181 version = Version.generate!
182
182 add_issue(version, :estimated_hours => 2.5)
183 should "return 0 with no assigned issues" do
183 add_issue(version, :estimated_hours => 5)
184 assert_equal 0, @version.estimated_hours
184 assert_equal 7.5, version.estimated_hours
185 end
185 end
186
186
187 should "return 0 with no estimated hours" do
187 test "#estimated_hours should return the sum of leaves estimated hours" do
188 add_issue(@version)
188 version = Version.generate!
189 assert_equal 0, @version.estimated_hours
189 parent = add_issue(version)
190 end
190 add_issue(version, :estimated_hours => 2.5, :parent_issue_id => parent.id)
191
191 add_issue(version, :estimated_hours => 5, :parent_issue_id => parent.id)
192 should "return the sum of estimated hours" do
192 assert_equal 7.5, version.estimated_hours
193 add_issue(@version, :estimated_hours => 2.5)
194 add_issue(@version, :estimated_hours => 5)
195 assert_equal 7.5, @version.estimated_hours
196 end
197
198 should "return the sum of leaves estimated hours" do
199 parent = add_issue(@version)
200 add_issue(@version, :estimated_hours => 2.5, :parent_issue_id => parent.id)
201 add_issue(@version, :estimated_hours => 5, :parent_issue_id => parent.id)
202 assert_equal 7.5, @version.estimated_hours
203 end
204 end
193 end
205
194
206 test "should update all issue's fixed_version associations in case the hierarchy changed XXX" do
195 test "should update all issue's fixed_version associations in case the hierarchy changed XXX" do
General Comments 0
You need to be logged in to leave comments. Login now