text_article_test.rb
4.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
require_relative "../test_helper"
class TextArticleTest < ActiveSupport::TestCase
# mostly dummy test. Can be removed when (if) there are real tests for this
# this class.
should 'inherit from Article' do
assert_kind_of Article, TextArticle.new
end
should 'found TextileArticle by TextArticle class' do
person = create_user('testuser').person
article = fast_create(TextileArticle, :name => 'textile article test', :profile_id => person.id)
assert_includes TextArticle.find(:all), article
end
should 'remove HTML from name' do
person = create_user('testuser').person
article = TextArticle.new(:profile => person)
article.name = "<h1 Malformed >> html >>></a>< tag"
article.valid?
assert_no_match /[<>]/, article.name
end
should 'be translatable' do
assert_kind_of Noosfero::TranslatableContent, TextArticle.new
end
should 'return article icon name' do
assert_equal Article.icon_name, TextArticle.icon_name
end
should 'return blog icon name if the article is a blog post' do
blog = fast_create(Blog)
article = TextArticle.new
article.parent = blog
assert_equal Blog.icon_name, TextArticle.icon_name(article)
end
should 'change image path to relative' do
person = create_user('testuser').person
article = TextArticle.new(:profile => person, :name => 'test')
env = Environment.default
article.body = "<img src=\"http://#{env.default_hostname}/test.png\" />"
article.save!
assert_equal "<img src=\"/test.png\">", article.body
end
should 'change link to relative path' do
person = create_user('testuser').person
article = TextArticle.new(:profile => person, :name => 'test')
env = Environment.default
article.body = "<a href=\"http://#{env.default_hostname}/test\">test</a>"
article.save!
assert_equal "<a href=\"/test\">test</a>", article.body
end
should 'change image path to relative for domain with https' do
person = create_user('testuser').person
article = TextArticle.new(:profile => person, :name => 'test')
env = Environment.default
article.body = "<img src=\"https://#{env.default_hostname}/test.png\">"
article.save!
assert_equal "<img src=\"/test.png\">", article.body
end
should 'change image path to relative for domain with port' do
person = create_user('testuser').person
article = TextArticle.new(:profile => person, :name => 'test')
env = Environment.default
article.body = "<img src=\"http://#{env.default_hostname}:3000/test.png\">"
article.save!
assert_equal "<img src=\"/test.png\">", article.body
end
should 'change image path to relative for domain with www' do
person = create_user('testuser').person
article = TextArticle.new(:profile => person, :name => 'test')
env = Environment.default
env.force_www = true
env.save!
article.body = "<img src=\"http://#{env.default_hostname}:3000/test.png\">"
article.save!
assert_equal "<img src=\"/test.png\">", article.body
end
should 'change image path to relative for profile with own domain' do
person = create_user('testuser').person
person.domains << build(Domain)
article = TextArticle.new(:profile => person, :name => 'test')
env = Environment.default
article.body = "<img src=\"http://#{person.default_hostname}:3000/link-profile.png\">"
article.save!
assert_equal "<img src=\"/link-profile.png\">", article.body
end
should 'not be translatable if there is no language available on environment' do
environment = fast_create(Environment)
environment.languages = nil
profile = fast_create(Person, :environment_id => environment.id)
text = TextArticle.new(:profile => profile)
refute text.translatable?
end
should 'be translatable if there is languages on environment' do
environment = fast_create(Environment)
environment.languages = nil
profile = fast_create(Person, :environment_id => environment.id)
text = fast_create(TextArticle, :profile_id => profile.id)
refute text.translatable?
environment.languages = ['en','pt','fr']
environment.save
text.reload
assert text.translatable?
end
should 'display preview when configured on parent that is a blog' do
person = fast_create(Person)
post = fast_create(TextArticle, :profile_id => person.id)
blog = Blog.new(:display_preview => true)
post.parent = blog
assert post.display_preview?
end
end