Commit b464989afb12e24c1a22d30c5d097e9555ed5494
Committed by
Rodrigo Souto
1 parent
8578b1c9
Exists in
master
and in
29 other branches
Add rake task to activate all available plugins
Showing
3 changed files
with
54 additions
and
5 deletions
Show diff stats
app/models/environment.rb
@@ -339,6 +339,16 @@ class Environment < ActiveRecord::Base | @@ -339,6 +339,16 @@ class Environment < ActiveRecord::Base | ||
339 | self.save! | 339 | self.save! |
340 | end | 340 | end |
341 | 341 | ||
342 | + def enable_all_plugins | ||
343 | + Noosfero::Plugin.available_plugin_names.each do |plugin| | ||
344 | + plugin_name = plugin.to_s + "Plugin" | ||
345 | + unless self.enabled_plugins.include?(plugin_name) | ||
346 | + self.enabled_plugins += [plugin_name] | ||
347 | + end | ||
348 | + end | ||
349 | + self.save! | ||
350 | + end | ||
351 | + | ||
342 | # Disables a feature identified by its name | 352 | # Disables a feature identified by its name |
343 | def disable(feature, must_save=true) | 353 | def disable(feature, must_save=true) |
344 | self.settings["#{feature}_enabled".to_sym] = false | 354 | self.settings["#{feature}_enabled".to_sym] = false |
test/unit/environment_test.rb
@@ -524,7 +524,7 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -524,7 +524,7 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
524 | p1= fast_create(Person, :is_template => true, :environment_id => e.id) | 524 | p1= fast_create(Person, :is_template => true, :environment_id => e.id) |
525 | p2 = fast_create(Person, :environment_id => e.id) | 525 | p2 = fast_create(Person, :environment_id => e.id) |
526 | p3 = fast_create(Person, :is_template => true, :environment_id => e.id) | 526 | p3 = fast_create(Person, :is_template => true, :environment_id => e.id) |
527 | - assert_equivalent [p1,p3], e.person_templates | 527 | + assert_equivalent [p1,p3], e.person_templates |
528 | end | 528 | end |
529 | 529 | ||
530 | should 'person_templates return an empty array if there is no templates of person' do | 530 | should 'person_templates return an empty array if there is no templates of person' do |
@@ -532,7 +532,7 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -532,7 +532,7 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
532 | 532 | ||
533 | fast_create(Person, :environment_id => e.id) | 533 | fast_create(Person, :environment_id => e.id) |
534 | fast_create(Person, :environment_id => e.id) | 534 | fast_create(Person, :environment_id => e.id) |
535 | - assert_equivalent [], e.person_templates | 535 | + assert_equivalent [], e.person_templates |
536 | end | 536 | end |
537 | 537 | ||
538 | should 'person_default_template return the template defined as default' do | 538 | should 'person_default_template return the template defined as default' do |
@@ -585,7 +585,7 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -585,7 +585,7 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
585 | c1= fast_create(Community, :is_template => true, :environment_id => e.id) | 585 | c1= fast_create(Community, :is_template => true, :environment_id => e.id) |
586 | c2 = fast_create(Community, :environment_id => e.id) | 586 | c2 = fast_create(Community, :environment_id => e.id) |
587 | c3 = fast_create(Community, :is_template => true, :environment_id => e.id) | 587 | c3 = fast_create(Community, :is_template => true, :environment_id => e.id) |
588 | - assert_equivalent [c1,c3], e.community_templates | 588 | + assert_equivalent [c1,c3], e.community_templates |
589 | end | 589 | end |
590 | 590 | ||
591 | should 'community_templates return an empty array if there is no templates of community' do | 591 | should 'community_templates return an empty array if there is no templates of community' do |
@@ -646,7 +646,7 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -646,7 +646,7 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
646 | e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id) | 646 | e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id) |
647 | e2 = fast_create(Enterprise, :environment_id => env.id) | 647 | e2 = fast_create(Enterprise, :environment_id => env.id) |
648 | e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id) | 648 | e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id) |
649 | - assert_equivalent [e1,e3], env.enterprise_templates | 649 | + assert_equivalent [e1,e3], env.enterprise_templates |
650 | end | 650 | end |
651 | 651 | ||
652 | should 'enterprise_templates return an empty array if there is no templates of enterprise' do | 652 | should 'enterprise_templates return an empty array if there is no templates of enterprise' do |
@@ -654,7 +654,7 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -654,7 +654,7 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
654 | 654 | ||
655 | fast_create(Enterprise, :environment_id => env.id) | 655 | fast_create(Enterprise, :environment_id => env.id) |
656 | fast_create(Enterprise, :environment_id => env.id) | 656 | fast_create(Enterprise, :environment_id => env.id) |
657 | - assert_equivalent [], env.enterprise_templates | 657 | + assert_equivalent [], env.enterprise_templates |
658 | end | 658 | end |
659 | 659 | ||
660 | should 'enterprise_default_template return the template defined as default' do | 660 | should 'enterprise_default_template return the template defined as default' do |
@@ -1428,6 +1428,36 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -1428,6 +1428,36 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
1428 | assert !environment.plugin_enabled?(Plugin) | 1428 | assert !environment.plugin_enabled?(Plugin) |
1429 | end | 1429 | end |
1430 | 1430 | ||
1431 | + should 'activate on database all available plugins' do | ||
1432 | + plugins_enable = ["Statistics", "Foo", "PeopleBlock"] | ||
1433 | + Noosfero::Plugins.stubs(:available_plugin_names).returns(plugins_enable) | ||
1434 | + env1 = Environment.create(:name => "Test") | ||
1435 | + env2 = Environment.create(:name => "Test 2") | ||
1436 | + | ||
1437 | + env1.enable_all_plugins | ||
1438 | + env2.enable_all_plugins | ||
1439 | + | ||
1440 | + plugins = ["PeopleBlockPlugin", "StatisticsPlugin", "FooPlugin"] | ||
1441 | + plugins.each do |plugin| | ||
1442 | + assert env1.enabled_plugins.include?(plugin) | ||
1443 | + assert env2.enabled_plugins.include?(plugin) | ||
1444 | + end | ||
1445 | + end | ||
1446 | + | ||
1447 | + should 'dont activate plugins that are not available' do | ||
1448 | + env1 = Environment.create(:name => "Test") | ||
1449 | + env2 = Environment.create(:name => "Test 2") | ||
1450 | + | ||
1451 | + env1.enable_all_plugins | ||
1452 | + env2.enable_all_plugins | ||
1453 | + | ||
1454 | + plugins = ["SomePlugin", "OtherPlugin", "ThirdPlugin"] | ||
1455 | + plugins.each do |plugin| | ||
1456 | + assert_equal false, env1.enabled_plugins.include?(plugin) | ||
1457 | + assert_equal false, env2.enabled_plugins.include?(plugin) | ||
1458 | + end | ||
1459 | + end | ||
1460 | + | ||
1431 | should 'have production costs' do | 1461 | should 'have production costs' do |
1432 | assert_respond_to Environment.default, :production_costs | 1462 | assert_respond_to Environment.default, :production_costs |
1433 | end | 1463 | end |