Browse Source

Make sure that dates are stored as YYYY-MM-DD in journal details (#12713).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11117 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/2.3.0
Jean-Philippe Lang 11 years ago
parent
commit
9adb0c61a9
2 changed files with 26 additions and 2 deletions
  1. 5
    2
      app/models/journal_detail.rb
  2. 21
    0
      test/unit/journal_test.rb

+ 5
- 2
app/models/journal_detail.rb View File

@@ -27,10 +27,13 @@ class JournalDetail < ActiveRecord::Base
end

def normalize(v)
if v == true
case v
when true
"1"
elsif v == false
when false
"0"
when Date
v.strftime("%Y-%m-%d")
else
v
end

+ 21
- 0
test/unit/journal_test.rb View File

@@ -154,4 +154,25 @@ class JournalTest < ActiveSupport::TestCase
# Admin should see issues on private projects that he does not belong to
assert journals.detect {|journal| !journal.issue.project.is_public?}
end

def test_details_should_normalize_dates
j = JournalDetail.create!(:old_value => Date.parse('2012-11-03'), :value => Date.parse('2013-01-02'))
j.reload
assert_equal '2012-11-03', j.old_value
assert_equal '2013-01-02', j.value
end

def test_details_should_normalize_true_values
j = JournalDetail.create!(:old_value => true, :value => true)
j.reload
assert_equal '1', j.old_value
assert_equal '1', j.value
end

def test_details_should_normalize_false_values
j = JournalDetail.create!(:old_value => false, :value => false)
j.reload
assert_equal '0', j.old_value
assert_equal '0', j.value
end
end

Loading…
Cancel
Save