Add validations for diary entry lat/lons and tests for diary entry validations. Closes #1395
This commit is contained in:
parent
548265372e
commit
e198ec6252
2 changed files with 26 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue