diff --git a/lib/noosfero/translatable_content.rb b/lib/noosfero/translatable_content.rb index f1ef3f6..d3bbc5a 100644 --- a/lib/noosfero/translatable_content.rb +++ b/lib/noosfero/translatable_content.rb @@ -1,6 +1,7 @@ module Noosfero::TranslatableContent def translatable? + return false if self.profile && !self.profile.environment.languages.present? parent.nil? || !parent.forum? end end diff --git a/test/functional/cms_controller_test.rb b/test/functional/cms_controller_test.rb index acc605c..c81a9f9 100644 --- a/test/functional/cms_controller_test.rb +++ b/test/functional/cms_controller_test.rb @@ -1432,6 +1432,9 @@ class CmsControllerTest < ActionController::TestCase end should 'article language should be selected' do + e = Environment.default + e.languages = ['ru'] + e.save textile = fast_create(TextileArticle, :profile_id => @profile.id, :path => 'textile', :language => 'ru') get :edit, :profile => @profile.identifier, :id => textile.id assert_tag :option, :attributes => { :selected => 'selected', :value => 'ru' }, :parent => { @@ -1439,6 +1442,9 @@ class CmsControllerTest < ActionController::TestCase end should 'list possible languages and include blank option' do + e = Environment.default + e.languages = ['en', 'pt','fr','hy','de', 'ru', 'es', 'eo', 'it'] + e.save get :new, :profile => @profile.identifier, :type => 'TextileArticle' assert_equal Noosfero.locales.invert, assigns(:locales) assert_tag :option, :attributes => { :value => '' }, :parent => { diff --git a/test/functional/content_viewer_controller_test.rb b/test/functional/content_viewer_controller_test.rb index 9be1da0..3d92f39 100644 --- a/test/functional/content_viewer_controller_test.rb +++ b/test/functional/content_viewer_controller_test.rb @@ -978,6 +978,8 @@ class ContentViewerControllerTest < ActionController::TestCase end should 'display add translation link if article is translatable' do + environment.languages = ['en'] + environment.save login_as @profile.identifier textile = fast_create(TextileArticle, :profile_id => @profile.id, :path => 'textile', :language => 'en') xhr :get, :view_page, :profile => @profile.identifier, :page => textile.path, :toolbar => true diff --git a/test/unit/event_test.rb b/test/unit/event_test.rb index 03c44a0..7947abf 100644 --- a/test/unit/event_test.rb +++ b/test/unit/event_test.rb @@ -319,4 +319,30 @@ class EventTest < ActiveSupport::TestCase should 'be notifiable' do assert Event.new.notifiable? 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) + + event = Event.new(:profile => profile) + + assert !event.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) + event = fast_create(Event, :profile_id => profile.id) + + assert !event.translatable? + + + environment.languages = ['en','pt','fr'] + environment.save + event.reload + assert event.translatable? + end + end diff --git a/test/unit/text_article_test.rb b/test/unit/text_article_test.rb index 1ec97ed..a3f9149 100644 --- a/test/unit/text_article_test.rb +++ b/test/unit/text_article_test.rb @@ -85,4 +85,29 @@ class TextArticleTest < ActiveSupport::TestCase assert_equal "", 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) + + assert !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) + + assert !text.translatable? + + + environment.languages = ['en','pt','fr'] + environment.save + text.reload + assert text.translatable? + end + end diff --git a/test/unit/translatable_content_test.rb b/test/unit/translatable_content_test.rb index ba5daca..2d5fba0 100644 --- a/test/unit/translatable_content_test.rb +++ b/test/unit/translatable_content_test.rb @@ -3,7 +3,7 @@ require_relative "../test_helper" class TranslatableContentTest < ActiveSupport::TestCase class Content - attr_accessor :parent + attr_accessor :parent, :profile include Noosfero::TranslatableContent end -- libgit2 0.21.2