validates_presence_of :visible
validates_associated :author
validates_inclusion_of :event, :in => [ "opened", "closed", "reopened", "commented", "hidden" ]
+ validates_format_of :body, :with => /\A[^\x00-\x08\x0b-\x0c\x0e-\x1f\x7f\ufffe\uffff]*\z/
# Return the comment text
def body
--- /dev/null
+# -*- coding: utf-8 -*-
+require 'test_helper'
+
+class NoteCommentTest < ActiveSupport::TestCase
+ fixtures :users, :notes, :note_comments
+
+ def test_body_valid
+ ok = [ "Name", "vergrößern", "foo\x0abar",
+ "ルシステムにも対応します", "輕觸搖晃的遊戲", ]
+ bad = [ "foo\x00bar", "foo\x08bar", "foo\x1fbar", "foo\x7fbar",
+ "foo\ufffebar", "foo\uffffbar" ]
+
+ ok.each do |body|
+ note_comment = note_comments(:t1)
+ note_comment.body = body
+ assert note_comment.valid?, "#{body} is invalid, when it should be"
+ end
+
+ bad.each do |body|
+ note_comment = note_comments(:t1)
+ note_comment.body = body
+ assert !note_comment.valid?, "#{body} is valid when it shouldn't be"
+ end
+ end
+end