3 class LeadingWhitespaceValidatable
4 include ActiveModel::Validations
6 validates :string, :whitespace => { :leading => false }
10 class TrailingWhitespaceValidatable
11 include ActiveModel::Validations
13 validates :string, :whitespace => { :trailing => false }
17 class WhitespaceValidatorTest < ActiveSupport::TestCase
18 include Rails::Dom::Testing::Assertions::SelectorAssertions
20 def test_with_leading_whitespace
21 validator = LeadingWhitespaceValidatable.new
23 strings = [" ", " test", " ", "\ttest"]
27 assert_not_predicate validator, :valid?, "'#{v}' should not be valid"
31 def test_without_leading_whitespace
32 validator = LeadingWhitespaceValidatable.new
34 strings = ["test", "test ", "t est", "test\t", ".test", "_test"]
38 assert_predicate validator, :valid?, "'#{v}' should be valid"
42 def test_with_trailing_whitespace
43 validator = TrailingWhitespaceValidatable.new
45 strings = [" ", "test ", " ", "test\t", "_test_ "]
49 assert_not_predicate validator, :valid?, "'#{v}' should not be valid"
53 def test_without_trailing_whitespace
54 validator = TrailingWhitespaceValidatable.new
56 strings = ["test", " test", "tes t", "\ttest", "test.", "test_"]
60 assert_predicate validator, :valid?, "'#{v}' should be valid"