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

class NoteCommentTest < ActiveSupport::TestCase
  fixtures :users

  def test_event_valid
    ok = %w(opened closed reopened commented hidden)
    bad = %w(expropriated fubared)

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

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

  def test_body_valid
    ok = %W(Name vergrößern foo\nbar
            ルシステムにも対応します 輕觸搖晃的遊戲)
    bad = ["foo\x00bar", "foo\x08bar", "foo\x1fbar", "foo\x7fbar",
           "foo\ufffebar", "foo\uffffbar"]

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

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