diff --git a/app/models/event.rb b/app/models/event.rb index 2695bee..cb200b2 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -120,10 +120,7 @@ class Event < Article true end - def translatable? - true - end - + include Noosfero::TranslatableContent include MaybeAddHttp end diff --git a/app/models/text_article.rb b/app/models/text_article.rb index 97050ad..379135f 100644 --- a/app/models/text_article.rb +++ b/app/models/text_article.rb @@ -2,4 +2,6 @@ class TextArticle < Article xss_terminate :only => [ :name, :abstract, :body ], :on => 'validation' + + include Noosfero::TranslatableContent end diff --git a/app/models/textile_article.rb b/app/models/textile_article.rb index ea25554..8bf2c4d 100644 --- a/app/models/textile_article.rb +++ b/app/models/textile_article.rb @@ -16,8 +16,4 @@ class TextileArticle < TextArticle true end - def translatable? - true - end - end diff --git a/app/models/tiny_mce_article.rb b/app/models/tiny_mce_article.rb index 160587f..3788945 100644 --- a/app/models/tiny_mce_article.rb +++ b/app/models/tiny_mce_article.rb @@ -19,8 +19,4 @@ class TinyMceArticle < TextArticle true end - def translatable? - true - end - end diff --git a/lib/noosfero/translatable_content.rb b/lib/noosfero/translatable_content.rb new file mode 100644 index 0000000..f1ef3f6 --- /dev/null +++ b/lib/noosfero/translatable_content.rb @@ -0,0 +1,6 @@ +module Noosfero::TranslatableContent + + def translatable? + parent.nil? || !parent.forum? + end +end diff --git a/test/unit/event_test.rb b/test/unit/event_test.rb index bc635c5..e613110 100644 --- a/test/unit/event_test.rb +++ b/test/unit/event_test.rb @@ -267,8 +267,7 @@ class EventTest < ActiveSupport::TestCase end should 'be translatable' do - e = Event.new - assert e.translatable? + assert_kind_of Noosfero::TranslatableContent, Event.new end end diff --git a/test/unit/text_article_test.rb b/test/unit/text_article_test.rb index 8573be2..e4ded47 100644 --- a/test/unit/text_article_test.rb +++ b/test/unit/text_article_test.rb @@ -39,4 +39,8 @@ class TextArticleTest < Test::Unit::TestCase assert_no_match /[<>]/, article.body end + should 'be translatable' do + assert_kind_of Noosfero::TranslatableContent, TextArticle.new + end + end diff --git a/test/unit/textile_article_test.rb b/test/unit/textile_article_test.rb index 2060389..7014164 100644 --- a/test/unit/textile_article_test.rb +++ b/test/unit/textile_article_test.rb @@ -145,10 +145,4 @@ class TextileArticleTest < Test::Unit::TestCase assert_equal false, a.advertise? assert_equal false, a.is_trackable? end - - should 'be translatable' do - a = TextileArticle.new - assert a.translatable? - end - end diff --git a/test/unit/tiny_mce_article_test.rb b/test/unit/tiny_mce_article_test.rb index ea639b8..b930529 100644 --- a/test/unit/tiny_mce_article_test.rb +++ b/test/unit/tiny_mce_article_test.rb @@ -236,9 +236,4 @@ class TinyMceArticleTest < Test::Unit::TestCase assert_equal false, a.advertise? assert_equal false, a.is_trackable? end - - should 'be translatable' do - a = TinyMceArticle.new - assert a.translatable? - end end diff --git a/test/unit/translatable_content_test.rb b/test/unit/translatable_content_test.rb new file mode 100644 index 0000000..6f59e5a --- /dev/null +++ b/test/unit/translatable_content_test.rb @@ -0,0 +1,29 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class TranslatableContentTest < ActiveSupport::TestCase + + class Content + attr_accessor :parent + include Noosfero::TranslatableContent + end + + def setup + @content = Content.new + end + attr_reader :content + + should 'be translatable if no parent' do + assert content.translatable? + end + + should 'not be translatable if parent is a forum' do + content.parent = Forum.new + assert !content.translatable? + end + + should 'be translatable if parent is not a forum' do + content.parent = Blog.new + assert content.translatable? + end + +end -- libgit2 0.21.2