Add validations for diary entry lat/lons and tests for diary entry validations. Closes #1395

This commit is contained in:
Thomas Wood 2008-12-15 23:24:09 +00:00
parent 548265372e
commit e198ec6252
2 changed files with 26 additions and 2 deletions

View file

@ -7,7 +7,9 @@ class DiaryEntry < ActiveRecord::Base
validates_presence_of :title, :body
validates_length_of :title, :within => 1..255
validates_length_of :language, :within => 2..3, :allow_nil => true
validates_numericality_of :latitude, :allow_nil => true
validates_numericality_of :longitude, :allow_nil => true
validates_numericality_of :latitude, :allow_nil => true,
:greater_than_or_equal_to => -90, :less_than_or_equal_to => 90
validates_numericality_of :longitude, :allow_nil => true,
:greater_than_or_equal_to => -180, :less_than_or_equal_to => 180
validates_associated :user
end

View file

@ -8,4 +8,26 @@ class DiaryEntryTest < Test::Unit::TestCase
assert_equal 2, DiaryEntry.count
end
def test_diary_entry_validations
diary_entry_valid({})
diary_entry_valid({:title => ''}, false)
diary_entry_valid({:title => 'a'*255})
diary_entry_valid({:title => 'a'*256}, false)
diary_entry_valid({:body => ''}, false)
diary_entry_valid({:latitude => 90})
diary_entry_valid({:latitude => 90.00001}, false)
diary_entry_valid({:latitude => -90})
diary_entry_valid({:latitude => -90.00001}, false)
diary_entry_valid({:longitude => 180})
diary_entry_valid({:longitude => 180.00001}, false)
diary_entry_valid({:longitude => -180})
diary_entry_valid({:longitude => -180.00001}, false)
end
def diary_entry_valid(attrs, result = true)
entry = diary_entries(:normal_user_entry_1).clone
entry.attributes = attrs
assert_equal result, entry.valid?
end
end