X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/e13337354d005d0fad1e6288ae98d2893a53e02d..568ce75c9ad0e19a14afb97d9d0832364232bee8:/test/unit/user_preference_test.rb diff --git a/test/unit/user_preference_test.rb b/test/unit/user_preference_test.rb index bd4e80015..df9e1e9b2 100644 --- a/test/unit/user_preference_test.rb +++ b/test/unit/user_preference_test.rb @@ -1,8 +1,55 @@ require File.dirname(__FILE__) + '/../test_helper' class UserPreferenceTest < ActiveSupport::TestCase - # Replace this with your real tests. - def test_truth - assert true + api_fixtures + fixtures :user_preferences + + # This checks to make sure that there are two user preferences + # stored in the test database. + # This test needs to be updated for every addition/deletion from + # the fixture file + def test_check_count + assert_equal 2, UserPreference.count + end + + # Checks that you cannot add a new preference, that is a duplicate + def test_add_duplicate_preference + up = user_preferences(:a) + newUP = UserPreference.new + newUP.user = users(:normal_user) + newUP.k = up.k + newUP.v = "some other value" + assert_not_equal newUP.v, up.v + assert_raise (ActiveRecord::StatementInvalid) {newUP.save} end + + def test_check_valid_length + key = "k" + val = "v" + (1..255).each do |i| + up = UserPreference.new + up.user = users(:normal_user) + up.k = key*i + up.v = val*i + assert up.valid? + assert up.save! + resp = UserPreference.find(up.id) + assert_equal key*i, resp.k, "User preference with #{i} #{key} chars (i.e. #{key.length*i} bytes) fails" + assert_equal val*i, resp.v, "User preference with #{i} #{val} chars (i.e. #{val.length*i} bytes) fails" + end + end + + def test_check_invalid_length + key = "k" + val = "v" + [0,256].each do |i| + up = UserPreference.new + up.user = users(:normal_user) + up.k = key*i + up.v = val*i + assert_equal false, up.valid? + assert_raise(ActiveRecord::RecordInvalid) {up.save!} + end + end + end