openstreetmap-website/test/validators/whitespace_validator_test.rb
2022-03-15 19:24:09 +00:00

61 lines
1.5 KiB
Ruby

require "test_helper"
class LeadingWhitespaceValidatable
include ActiveModel::Validations
validates :string, :whitespace => { :leading => false }
attr_accessor :string
end
class TrailingWhitespaceValidatable
include ActiveModel::Validations
validates :string, :whitespace => { :trailing => false }
attr_accessor :string
end
class WhitespaceValidatorTest < ActiveSupport::TestCase
include Rails::Dom::Testing::Assertions::SelectorAssertions
def test_with_leading_whitespace
validator = LeadingWhitespaceValidatable.new
strings = [" ", " test", " ", "\ttest"]
strings.each do |v|
validator.string = v
assert_not validator.valid?, "'#{v}' should not be valid"
end
end
def test_without_leading_whitespace
validator = LeadingWhitespaceValidatable.new
strings = ["test", "test ", "t est", "test\t", ".test", "_test"]
strings.each do |v|
validator.string = v
assert_predicate validator, :valid?, "'#{v}' should be valid"
end
end
def test_with_trailing_whitespace
validator = TrailingWhitespaceValidatable.new
strings = [" ", "test ", " ", "test\t", "_test_ "]
strings.each do |v|
validator.string = v
assert_not validator.valid?, "'#{v}' should not be valid"
end
end
def test_without_trailing_whitespace
validator = TrailingWhitespaceValidatable.new
strings = ["test", " test", "tes t", "\ttest", "test.", "test_"]
strings.each do |v|
validator.string = v
assert_predicate validator, :valid?, "'#{v}' should be valid"
end
end
end