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