# -*- coding: utf-8 -*-
require 'test_helper'

class NoteCommentTest < ActiveSupport::TestCase
  fixtures :users, :notes, :note_comments

  def test_event_valid
    ok = [ "opened", "closed", "reopened", "commented", "hidden" ]
    bad = [ "expropriated", "fubared" ]

    ok.each do |event|
      note_comment = note_comments(:t1)
      note_comment.event = event
      assert note_comment.valid?, "#{event} is invalid, when it should be"
    end

    bad.each do |event|
      note_comment = note_comments(:t1)
      note_comment.event = event
      assert !note_comment.valid?, "#{event} is valid when it shouldn't be"
    end
  end

  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
