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 | 339 | self.save! |
340 | 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 | 352 | # Disables a feature identified by its name |
343 | 353 | def disable(feature, must_save=true) |
344 | 354 | self.settings["#{feature}_enabled".to_sym] = false | ... | ... |
test/unit/environment_test.rb
... | ... | @@ -524,7 +524,7 @@ class EnvironmentTest < ActiveSupport::TestCase |
524 | 524 | p1= fast_create(Person, :is_template => true, :environment_id => e.id) |
525 | 525 | p2 = fast_create(Person, :environment_id => e.id) |
526 | 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 | 528 | end |
529 | 529 | |
530 | 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 | 532 | |
533 | 533 | fast_create(Person, :environment_id => e.id) |
534 | 534 | fast_create(Person, :environment_id => e.id) |
535 | - assert_equivalent [], e.person_templates | |
535 | + assert_equivalent [], e.person_templates | |
536 | 536 | end |
537 | 537 | |
538 | 538 | should 'person_default_template return the template defined as default' do |
... | ... | @@ -585,7 +585,7 @@ class EnvironmentTest < ActiveSupport::TestCase |
585 | 585 | c1= fast_create(Community, :is_template => true, :environment_id => e.id) |
586 | 586 | c2 = fast_create(Community, :environment_id => e.id) |
587 | 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 | 589 | end |
590 | 590 | |
591 | 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 | 646 | e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id) |
647 | 647 | e2 = fast_create(Enterprise, :environment_id => env.id) |
648 | 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 | 650 | end |
651 | 651 | |
652 | 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 | 654 | |
655 | 655 | fast_create(Enterprise, :environment_id => env.id) |
656 | 656 | fast_create(Enterprise, :environment_id => env.id) |
657 | - assert_equivalent [], env.enterprise_templates | |
657 | + assert_equivalent [], env.enterprise_templates | |
658 | 658 | end |
659 | 659 | |
660 | 660 | should 'enterprise_default_template return the template defined as default' do |
... | ... | @@ -1428,6 +1428,36 @@ class EnvironmentTest < ActiveSupport::TestCase |
1428 | 1428 | assert !environment.plugin_enabled?(Plugin) |
1429 | 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 | 1461 | should 'have production costs' do |
1432 | 1462 | assert_respond_to Environment.default, :production_costs |
1433 | 1463 | end | ... | ... |