Add validations for diary entry lat/lons and tests for diary entry validations. Close...
authorThomas Wood <grand.edgemaster@gmail.com>
Mon, 15 Dec 2008 23:24:09 +0000 (23:24 +0000)
committerThomas Wood <grand.edgemaster@gmail.com>
Mon, 15 Dec 2008 23:24:09 +0000 (23:24 +0000)
app/models/diary_entry.rb
test/unit/diary_entry_test.rb

index 4b2058b9d9b7b684426b5c82d223596b4e371288..8063372da9065c67c18c15a4f0dce2847cc39485 100644 (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
index 0e10f8a9a485a89844a933f2e28e51fcf85b43a9..6b2800d18bb803844a99d16fd7d09f36b6cc2e63 100644 (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