X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/dc2a2c8ebd1a11e4a64555fda22c6859a51defff..7df13ff2d3b369b571b6d85fd1a2997290c5541f:/test/models/relation_member_test.rb?ds=sidebyside
diff --git a/test/models/relation_member_test.rb b/test/models/relation_member_test.rb
index 2c03bc17e..7535c342d 100644
--- a/test/models/relation_member_test.rb
+++ b/test/models/relation_member_test.rb
@@ -1,9 +1,24 @@
require "test_helper"
class RelationMemberTest < ActiveSupport::TestCase
- api_fixtures
+ def test_role_with_invalid_characters
+ invalid = ["\x7f
", "test@example.com\x0e-", "s/\x1ff", "aa/\ufffe",
+ "aa\x0b-,", "aa?\x08", "/;\uffff.,?", "\x0c#ping",
+ "foo\x1fbar", "foo\x7fbar", "foo\ufffebar", "foo\uffffbar"]
+ relation = create(:relation)
+ node = create(:node)
+ invalid.each do |r|
+ member = build(:relation_member, :relation => relation, :member => node, :member_role => r)
+ assert_not_predicate member, :valid?, "'#{r}' should not be valid"
+ assert_predicate member.errors[:member_role], :any?
+ end
+ end
- def test_relation_member_count
- assert_equal 9, RelationMember.count
+ def test_role_too_long
+ relation = create(:relation)
+ node = create(:node)
+ member = build(:relation_member, :relation => relation, :member => node, :member_role => "r" * 256)
+ assert_not_predicate member, :valid?, "Role should be too long"
+ assert_predicate member.errors[:member_role], :any?
end
end