X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/873ac155cabfb1aab8d887d07bc8389617d3f843..b4ef61a9f31ac8bb911c094bc2fb00a9fa2102a6:/test/validators/whitespace_validator_test.rb diff --git a/test/validators/whitespace_validator_test.rb b/test/validators/whitespace_validator_test.rb new file mode 100644 index 000000000..c908538d1 --- /dev/null +++ b/test/validators/whitespace_validator_test.rb @@ -0,0 +1,61 @@ +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 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 validator.valid?, "'#{v}' should be valid" + end + end +end