Commit 45077a0cc553f08865913696a21f2ef1eb79bc9d

Authored by AntonioTerceiro
1 parent d0a31efb

ActionItem392: fixing tests by reworking articles's

description/short_description


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1856 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/models/article.rb
@@ -80,28 +80,16 @@ class Article < ActiveRecord::Base @@ -80,28 +80,16 @@ class Article < ActiveRecord::Base
80 _('HTML Text document') 80 _('HTML Text document')
81 end 81 end
82 82
83 - def title  
84 - name 83 + def self.description
  84 + raise NotImplementedError, "#{self} does not implement #description"
85 end 85 end
86 86
87 def self.short_description 87 def self.short_description
88 - if self == Article  
89 - _('Article')  
90 - else  
91 - _('"%s" article') % self.article_type_name  
92 - end  
93 - end  
94 -  
95 - def self.description  
96 - if self == Article  
97 - _('An ordinary article')  
98 - else  
99 - _('An article of type "%s"') % self.article_type_name  
100 - end 88 + raise NotImplementedError, "#{self} does not implement #short_description"
101 end 89 end
102 90
103 - def self.article_type_name  
104 - self.name.gsub(/article$/i, '') 91 + def title
  92 + name
105 end 93 end
106 94
107 def url 95 def url
app/models/profile.rb
@@ -257,7 +257,8 @@ class Profile < ActiveRecord::Base @@ -257,7 +257,8 @@ class Profile < ActiveRecord::Base
257 257
258 hacked_after_create :insert_default_homepage_and_feed 258 hacked_after_create :insert_default_homepage_and_feed
259 def insert_default_homepage_and_feed 259 def insert_default_homepage_and_feed
260 - hp = self.articles.build(:name => _("%s's home page") % self.name, :body => _("<p>This is a default homepage created for %s. It can be changed though the control panel.</p>") % self.name, :advertise => false) 260 + hp = TinyMceArticle.new(:name => _("%s's home page") % self.name, :body => _("<p>This is a default homepage created for %s. It can be changed though the control panel.</p>") % self.name, :advertise => false)
  261 + hp.profile = self
261 hp.save! 262 hp.save!
262 self.home_page = hp 263 self.home_page = hp
263 self.save! 264 self.save!
db/migrate/035_specialize_articles.rb 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +class SpecializeArticles < ActiveRecord::Migration
  2 + def self.up
  3 + execute "update articles set type = 'TinyMceArticle' where type = 'Article'"
  4 + end
  5 +
  6 + def self.down
  7 + raise ActiveRecord::Migration::IrreversibleMigration, 'cannot reverse this'
  8 + end
  9 +end
test/unit/article_test.rb
@@ -136,19 +136,16 @@ class ArticleTest &lt; Test::Unit::TestCase @@ -136,19 +136,16 @@ class ArticleTest &lt; Test::Unit::TestCase
136 assert_equal [other_first, fifth, fourth, third, second, first], Article.recent(6) 136 assert_equal [other_first, fifth, fourth, third, second, first], Article.recent(6)
137 end 137 end
138 138
139 - should 'provied proper descriptions' do  
140 - assert_equal "Article", Article.short_description  
141 - assert_equal "An ordinary article", Article.description 139 + should 'require that subclasses define description' do
  140 + assert_raise NotImplementedError do
  141 + Article.description
  142 + end
142 end 143 end
143 144
144 - should 'provide a usable descriptions to subclasses that don\'t override them' do  
145 - klass = Class.new(Article)  
146 - klass.stubs(:name).returns("MyClass")  
147 - klass.expects(:_).with('"%s" article').returns('"%s" article')  
148 - klass.expects(:_).with('An article of type "%s"').returns('An article of type "%s"')  
149 -  
150 - assert_equal '"MyClass" article', klass.short_description  
151 - assert_equal 'An article of type "MyClass"', klass.description 145 + should 'require that subclasses define short description' do
  146 + assert_raise NotImplementedError do
  147 + Article.short_description
  148 + end
152 end 149 end
153 150
154 should 'indicate wheter children articles are allowed or not' do 151 should 'indicate wheter children articles are allowed or not' do
@@ -289,4 +286,5 @@ class ArticleTest &lt; Test::Unit::TestCase @@ -289,4 +286,5 @@ class ArticleTest &lt; Test::Unit::TestCase
289 assert_equal true, a1.display_to?(member) 286 assert_equal true, a1.display_to?(member)
290 end 287 end
291 288
  289 +
292 end 290 end
test/unit/folder_test.rb
@@ -7,13 +7,11 @@ class FolderTest &lt; ActiveSupport::TestCase @@ -7,13 +7,11 @@ class FolderTest &lt; ActiveSupport::TestCase
7 end 7 end
8 8
9 should 'provide proper description' do 9 should 'provide proper description' do
10 - Folder.stubs(:==).with(Article).returns(true)  
11 - assert_not_equal Article.description, Folder.description 10 + assert_kind_of String, Folder.description
12 end 11 end
13 12
14 should 'provide proper short description' do 13 should 'provide proper short description' do
15 - Folder.stubs(:==).with(Article).returns(true)  
16 - assert_not_equal Article.short_description, Folder.short_description 14 + assert_kind_of String, Folder.short_description
17 end 15 end
18 16
19 should 'provide own icon name' do 17 should 'provide own icon name' do
test/unit/image_gallery_test.rb
@@ -7,13 +7,11 @@ class ImageGalleryTest &lt; Test::Unit::TestCase @@ -7,13 +7,11 @@ class ImageGalleryTest &lt; Test::Unit::TestCase
7 end 7 end
8 8
9 should 'provide description' do 9 should 'provide description' do
10 - ImageGallery.stubs(:==).with(Article).returns(true)  
11 - assert_not_equal Article.description, ImageGallery.description 10 + assert_kind_of String, ImageGallery.description
12 end 11 end
13 12
14 should 'provide short description' do 13 should 'provide short description' do
15 - ImageGallery.stubs(:==).with(Article).returns(true)  
16 - assert_not_equal Article.short_description, ImageGallery.short_description 14 + assert_kind_of String, ImageGallery.short_description
17 end 15 end
18 16
19 end 17 end
test/unit/rss_feed_test.rb
@@ -188,13 +188,11 @@ class RssFeedTest &lt; Test::Unit::TestCase @@ -188,13 +188,11 @@ class RssFeedTest &lt; Test::Unit::TestCase
188 end 188 end
189 189
190 should 'provide proper short description' do 190 should 'provide proper short description' do
191 - RssFeed.stubs(:==).with(Article).returns(true)  
192 - assert_not_equal Article.short_description, RssFeed.short_description 191 + assert_kind_of String, RssFeed.short_description
193 end 192 end
194 193
195 should 'provide proper description' do 194 should 'provide proper description' do
196 - RssFeed.stubs(:==).with(Article).returns(true)  
197 - assert_not_equal Article.description, RssFeed.description 195 + assert_kind_of String, RssFeed.description
198 end 196 end
199 197
200 should 'provide the correct icon name' do 198 should 'provide the correct icon name' do
test/unit/textile_article_test.rb
@@ -8,15 +8,11 @@ class TextileArticleTest &lt; Test::Unit::TestCase @@ -8,15 +8,11 @@ class TextileArticleTest &lt; Test::Unit::TestCase
8 attr_reader :profile 8 attr_reader :profile
9 9
10 should 'provide a proper short description' do 10 should 'provide a proper short description' do
11 - # not test the actual text, though  
12 - TextileArticle.stubs(:==).with(Article).returns(true)  
13 - assert_not_equal Article.short_description, TextileArticle.short_description 11 + assert_kind_of String, TextileArticle.short_description
14 end 12 end
15 13
16 should 'provide a proper description' do 14 should 'provide a proper description' do
17 - # not test the actual text, though  
18 - TextileArticle.stubs(:==).with(Article).returns(true)  
19 - assert_not_equal Article.description, TextileArticle.description 15 + assert_kind_of String, TextileArticle.description
20 end 16 end
21 17
22 should 'convert Textile to HTML' do 18 should 'convert Textile to HTML' do
test/unit/tiny_mce_article_test.rb
@@ -7,4 +7,12 @@ class TinyMceArticleTest &lt; Test::Unit::TestCase @@ -7,4 +7,12 @@ class TinyMceArticleTest &lt; Test::Unit::TestCase
7 assert_subclass TextArticle, TinyMceArticle 7 assert_subclass TextArticle, TinyMceArticle
8 end 8 end
9 9
  10 + should 'define description' do
  11 + assert_kind_of String, TinyMceArticle.description
  12 + end
  13 +
  14 + should 'define short description' do
  15 + assert_kind_of String, TinyMceArticle.short_description
  16 + end
  17 +
10 end 18 end
test/unit/uploaded_file_test.rb
@@ -28,13 +28,11 @@ class UploadedFileTest &lt; Test::Unit::TestCase @@ -28,13 +28,11 @@ class UploadedFileTest &lt; Test::Unit::TestCase
28 end 28 end
29 29
30 should 'provide proper description' do 30 should 'provide proper description' do
31 - UploadedFile.stubs(:==).with(Article).returns(true)  
32 - assert_not_equal Article.description, UploadedFile.description 31 + assert_kind_of String, UploadedFile.description
33 end 32 end
34 33
35 should 'provide proper short description' do 34 should 'provide proper short description' do
36 - UploadedFile.stubs(:==).with(Article).returns(true)  
37 - assert_not_equal Article.short_description, UploadedFile.short_description 35 + assert_kind_of String, UploadedFile.short_description
38 end 36 end
39 37
40 should 'set name from uploaded filename' do 38 should 'set name from uploaded filename' do