end
end
- def self.should_show_the_old_and_new_values_for(prop_key, model, &block)
- context "" do
- setup do
- if block_given?
- instance_eval &block
- else
- @old_value = model.generate!
- @new_value = model.generate!
- end
- end
-
- should "use the new value's name" do
- @detail = JournalDetail.generate!(:property => 'attr',
- :old_value => @old_value.id,
- :value => @new_value.id,
- :prop_key => prop_key)
-
- assert_match @new_value.name, show_detail(@detail, true)
- end
-
- should "use the old value's name" do
- @detail = JournalDetail.generate!(:property => 'attr',
- :old_value => @old_value.id,
- :value => @new_value.id,
- :prop_key => prop_key)
-
- assert_match @old_value.name, show_detail(@detail, true)
- end
- end
- end
-
# Test that a request allows the three types of API authentication
#
# * HTTP Basic with username and password
class IssuesHelperTest < ActionView::TestCase
include ApplicationHelper
include IssuesHelper
+ include CustomFieldsHelper
include ERB::Util
fixtures :projects, :trackers, :issue_statuses, :issues,
:member_roles,
:members,
:enabled_modules,
- :workflows
+ :workflows,
+ :custom_fields,
+ :attachments
def setup
super
end
end
- context "with a project attribute" do
- should_show_the_old_and_new_values_for('project_id', Project)
+ should "show old and new values with a project attribute" do
+ detail = JournalDetail.generate!(:property => 'attr', :prop_key => 'project_id', :old_value => 1, :value => 2)
+ assert_match 'eCookbook', show_detail(detail, true)
+ assert_match 'OnlineStore', show_detail(detail, true)
end
- context "with a issue status attribute" do
- should_show_the_old_and_new_values_for('status_id', IssueStatus)
+ should "show old and new values with a issue status attribute" do
+ detail = JournalDetail.generate!(:property => 'attr', :prop_key => 'status_id', :old_value => 1, :value => 2)
+ assert_match 'New', show_detail(detail, true)
+ assert_match 'Assigned', show_detail(detail, true)
end
- context "with a tracker attribute" do
- should_show_the_old_and_new_values_for('tracker_id', Tracker)
+ should "show old and new values with a tracker attribute" do
+ detail = JournalDetail.generate!(:property => 'attr', :prop_key => 'tracker_id', :old_value => 1, :value => 2)
+ assert_match 'Bug', show_detail(detail, true)
+ assert_match 'Feature request', show_detail(detail, true)
end
- context "with a assigned to attribute" do
- should_show_the_old_and_new_values_for('assigned_to_id', User)
+ should "show old and new values with a assigned to attribute" do
+ detail = JournalDetail.generate!(:property => 'attr', :prop_key => 'assigned_to_id', :old_value => 1, :value => 2)
+ assert_match 'redMine Admin', show_detail(detail, true)
+ assert_match 'John Smith', show_detail(detail, true)
end
- context "with a priority attribute" do
- should_show_the_old_and_new_values_for('priority_id', IssuePriority) do
- @old_value = IssuePriority.generate!(:type => 'IssuePriority')
- @new_value = IssuePriority.generate!(:type => 'IssuePriority')
- end
+ should "show old and new values with a priority attribute" do
+ detail = JournalDetail.generate!(:property => 'attr', :prop_key => 'priority_id', :old_value => 4, :value => 5)
+ assert_match 'Low', show_detail(detail, true)
+ assert_match 'Normal', show_detail(detail, true)
+ end
+
+ should "show old and new values with a category attribute" do
+ detail = JournalDetail.generate!(:property => 'attr', :prop_key => 'category_id', :old_value => 1, :value => 2)
+ assert_match 'Printing', show_detail(detail, true)
+ assert_match 'Recipes', show_detail(detail, true)
end
- context "with a category attribute" do
- should_show_the_old_and_new_values_for('category_id', IssueCategory)
+ should "show old and new values with a fixed version attribute" do
+ detail = JournalDetail.generate!(:property => 'attr', :prop_key => 'fixed_version_id', :old_value => 1, :value => 2)
+ assert_match '0.1', show_detail(detail, true)
+ assert_match '1.0', show_detail(detail, true)
end
- context "with a fixed version attribute" do
- should_show_the_old_and_new_values_for('fixed_version_id', Version)
+ should "show old and new values with a estimated hours attribute" do
+ detail = JournalDetail.generate!(:property => 'attr', :prop_key => 'estimated_hours', :old_value => '5', :value => '6.3')
+ assert_match '5.00', show_detail(detail, true)
+ assert_match '6.30', show_detail(detail, true)
end
- context "with a estimated hours attribute" do
- should "format the time into two decimal places"
- should "format the old time into two decimal places"
+ should "show old and new values with a custom field" do
+ detail = JournalDetail.generate!(:property => 'cf', :prop_key => '1', :old_value => 'MySQL', :value => 'PostgreSQL')
+ assert_equal 'Database changed from MySQL to PostgreSQL', show_detail(detail, true)
end
- should "test custom fields"
- should "test attachments"
+ should "show added file" do
+ detail = JournalDetail.generate!(:property => 'attachment', :prop_key => '1', :old_value => nil, :value => 'error281.txt')
+ assert_match 'error281.txt', show_detail(detail, true)
+ end
+
+ should "show removed file" do
+ detail = JournalDetail.generate!(:property => 'attachment', :prop_key => '1', :old_value => 'error281.txt', :value => nil)
+ assert_match 'error281.txt', show_detail(detail, true)
+ end
end
end