From: Thomas Wood Date: Mon, 15 Dec 2008 23:24:09 +0000 (+0000) Subject: Add validations for diary entry lat/lons and tests for diary entry validations. Close... X-Git-Tag: live~7573^2~92 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/e198ec6252aaacbece6c3d3a6e7957588b619b8a?ds=sidebyside Add validations for diary entry lat/lons and tests for diary entry validations. Closes #1395 --- diff --git a/app/models/diary_entry.rb b/app/models/diary_entry.rb index 4b2058b9d..8063372da 100644 --- a/app/models/diary_entry.rb +++ b/app/models/diary_entry.rb @@ -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 diff --git a/test/unit/diary_entry_test.rb b/test/unit/diary_entry_test.rb index 0e10f8a9a..6b2800d18 100644 --- a/test/unit/diary_entry_test.rb +++ b/test/unit/diary_entry_test.rb @@ -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