a7eafbef53abae1d6d50f6425f62269ae93cca78
[rails.git] / test / models / changeset_comment_test.rb
1 # -*- coding: utf-8 -*-
2 require "test_helper"
3
4 class ChangesetCommentTest < ActiveSupport::TestCase
5   # validations
6   def test_does_not_accept_invalid_author
7     comment = create(:changeset_comment)
8
9     comment.author = nil
10     assert !comment.valid?
11
12     comment.author_id = 999111
13     assert !comment.valid?
14   end
15
16   def test_does_not_accept_invalid_changeset
17     comment = create(:changeset_comment)
18
19     comment.changeset = nil
20     assert !comment.valid?
21
22     comment.changeset_id = 999111
23     assert !comment.valid?
24   end
25
26   def test_does_not_accept_empty_visible
27     comment = create(:changeset_comment)
28
29     comment.visible = nil
30     assert !comment.valid?
31   end
32
33   def test_comments_of_changeset_count
34     changeset = create(:changeset)
35     create_list(:changeset_comment, 3, :changeset_id => changeset.id)
36     assert_equal 3, Changeset.find(changeset.id).comments.count
37   end
38
39   def test_body_valid
40     ok = %W[Name vergrößern foo\nbar
41             ルシステムにも対応します 輕觸搖晃的遊戲]
42     bad = ["foo\x00bar", "foo\x08bar", "foo\x1fbar", "foo\x7fbar",
43            "foo\ufffebar", "foo\uffffbar"]
44
45     ok.each do |body|
46       changeset_comment = create(:changeset_comment)
47       changeset_comment.body = body
48       assert changeset_comment.valid?, "#{body} is invalid, when it should be"
49     end
50
51     bad.each do |body|
52       changeset_comment = create(:changeset_comment)
53       changeset_comment.body = body
54       assert !changeset_comment.valid?, "#{body} is valid when it shouldn't be"
55     end
56   end
57 end