Commit b464989afb12e24c1a22d30c5d097e9555ed5494
Committed by
Rodrigo Souto
1 parent
8578b1c9
Exists in
master
and in
15 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 | ... | ... |