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
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