diff --git a/app/models/environment.rb b/app/models/environment.rb index 6ae9ec8..e101216 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -339,6 +339,16 @@ class Environment < ActiveRecord::Base self.save! end + def enable_all_plugins + Noosfero::Plugin.available_plugin_names.each do |plugin| + plugin_name = plugin.to_s + "Plugin" + unless self.enabled_plugins.include?(plugin_name) + self.enabled_plugins += [plugin_name] + end + end + self.save! + end + # Disables a feature identified by its name def disable(feature, must_save=true) self.settings["#{feature}_enabled".to_sym] = false diff --git a/lib/tasks/enable_plugins.rake b/lib/tasks/enable_plugins.rake new file mode 100644 index 0000000..77b898f --- /dev/null +++ b/lib/tasks/enable_plugins.rake @@ -0,0 +1,9 @@ +namespace :noosfero do + namespace :plugins do + task :enable_all => :environment do + Environment.all.each do |env| + puts "Plugins Activated on #{env.name}" if env.enable_all_plugins + end + end + end +end diff --git a/test/unit/environment_test.rb b/test/unit/environment_test.rb index aec65d8..460fc74 100644 --- a/test/unit/environment_test.rb +++ b/test/unit/environment_test.rb @@ -524,7 +524,7 @@ class EnvironmentTest < ActiveSupport::TestCase p1= fast_create(Person, :is_template => true, :environment_id => e.id) p2 = fast_create(Person, :environment_id => e.id) p3 = fast_create(Person, :is_template => true, :environment_id => e.id) - assert_equivalent [p1,p3], e.person_templates + assert_equivalent [p1,p3], e.person_templates end should 'person_templates return an empty array if there is no templates of person' do @@ -532,7 +532,7 @@ class EnvironmentTest < ActiveSupport::TestCase fast_create(Person, :environment_id => e.id) fast_create(Person, :environment_id => e.id) - assert_equivalent [], e.person_templates + assert_equivalent [], e.person_templates end should 'person_default_template return the template defined as default' do @@ -585,7 +585,7 @@ class EnvironmentTest < ActiveSupport::TestCase c1= fast_create(Community, :is_template => true, :environment_id => e.id) c2 = fast_create(Community, :environment_id => e.id) c3 = fast_create(Community, :is_template => true, :environment_id => e.id) - assert_equivalent [c1,c3], e.community_templates + assert_equivalent [c1,c3], e.community_templates end should 'community_templates return an empty array if there is no templates of community' do @@ -646,7 +646,7 @@ class EnvironmentTest < ActiveSupport::TestCase e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id) e2 = fast_create(Enterprise, :environment_id => env.id) e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id) - assert_equivalent [e1,e3], env.enterprise_templates + assert_equivalent [e1,e3], env.enterprise_templates end should 'enterprise_templates return an empty array if there is no templates of enterprise' do @@ -654,7 +654,7 @@ class EnvironmentTest < ActiveSupport::TestCase fast_create(Enterprise, :environment_id => env.id) fast_create(Enterprise, :environment_id => env.id) - assert_equivalent [], env.enterprise_templates + assert_equivalent [], env.enterprise_templates end should 'enterprise_default_template return the template defined as default' do @@ -1428,6 +1428,36 @@ class EnvironmentTest < ActiveSupport::TestCase assert !environment.plugin_enabled?(Plugin) end + should 'activate on database all available plugins' do + plugins_enable = ["Statistics", "Foo", "PeopleBlock"] + Noosfero::Plugins.stubs(:available_plugin_names).returns(plugins_enable) + env1 = Environment.create(:name => "Test") + env2 = Environment.create(:name => "Test 2") + + env1.enable_all_plugins + env2.enable_all_plugins + + plugins = ["PeopleBlockPlugin", "StatisticsPlugin", "FooPlugin"] + plugins.each do |plugin| + assert env1.enabled_plugins.include?(plugin) + assert env2.enabled_plugins.include?(plugin) + end + end + + should 'dont activate plugins that are not available' do + env1 = Environment.create(:name => "Test") + env2 = Environment.create(:name => "Test 2") + + env1.enable_all_plugins + env2.enable_all_plugins + + plugins = ["SomePlugin", "OtherPlugin", "ThirdPlugin"] + plugins.each do |plugin| + assert_equal false, env1.enabled_plugins.include?(plugin) + assert_equal false, env2.enabled_plugins.include?(plugin) + end + end + should 'have production costs' do assert_respond_to Environment.default, :production_costs end -- libgit2 0.21.2