]> git.openstreetmap.org Git - rails.git/blobdiff - test/unit/tracetag_test.rb
Add some more unit tests for traces
[rails.git] / test / unit / tracetag_test.rb
index 4eaf41ed8df8edc959dba15e89811af6d1183301..2112e589190725a3c125b94039861d18608bf31a 100644 (file)
@@ -1,11 +1,31 @@
 require File.dirname(__FILE__) + '/../test_helper'
 
-class TracetagTest < Test::Unit::TestCase
-  fixtures :gpx_file_tags
-  set_fixture_class :gpx_file_tags => Tracetag
+class TracetagTest < ActiveSupport::TestCase
+  api_fixtures
   
   def test_tracetag_count
     assert_equal 1, Tracetag.count
   end
-  
+
+  def test_validations
+    tracetag_valid({})
+    tracetag_valid({:tag => nil}, false)
+    tracetag_valid({:tag => ''}, false)
+    tracetag_valid({:tag => 'a'})
+    tracetag_valid({:tag => 'a'*255})
+    tracetag_valid({:tag => 'a'*256}, false)
+    tracetag_valid({:tag => 'a/b'}, false)
+    tracetag_valid({:tag => 'a;b'}, false)
+    tracetag_valid({:tag => 'a.b'}, false)
+    tracetag_valid({:tag => 'a,b'}, false)
+    tracetag_valid({:tag => 'a?b'}, false)
+  end
+
+private
+
+  def tracetag_valid(attrs, result = true)
+    entry = Tracetag.new(gpx_file_tags(:first_trace_1).attributes, :without_protection => true)
+    entry.assign_attributes(attrs, :without_protection => true)
+    assert_equal result, entry.valid?, "Expected #{attrs.inspect} to be #{result}"
+  end
 end