DrupalBin
Submit Code
About
Recent Posts
Code
Fix for Fix for Code
Fix for Code
Code
Node type whitelist
an axe coach accessories
coach purses married
Fix for de las ghd alturas
de las ghd alturas
Code
more
User login
Log in using OpenID:
What is OpenID?
Username:
*
Password:
*
Log in using OpenID
Cancel OpenID login
Create new account
Request new password
Tags
CCK
drupal
fapi
jquery
menu
module
php
simpletest
taxonomy
test
theme
views
more tags
Home
Fix for Code
View
Fix
September 19, 2009 - 7:32pm — Anonymous
/**
* Test enabling/disabling of optional modules functionality.
*/
class
ModuleStatusSwitchingTestCase
extends
ModuleTestCase
{
public
static
function
getInfo
(
)
{
return
array
(
'name'
=
>
'Module status switching'
,
'description'
=
>
'Switch the status of all modules between each status'
,
'group'
=
>
'Module'
,
)
;
}
public
function
testStatusSwitching
(
)
{
$module_data
= system_get_module_data
(
)
;
$required_modules
=
drupal_required_modules
(
)
;
$uninstall_implementations
=
module_implements
(
'uninstall'
,
TRUE
)
;
// this function only tests optional Core modules.
foreach
(
$module_data
as
$name
=
>
$module
)
{
if
(
!
(
$module
-
>
info
[
'package'
]
==
'Core'
)
||
isset
(
$required_modules
[
$name
]
)
)
{
unset
(
$module_data
[
$name
]
)
;
unset
(
$uninstall_implementations
[
$name
]
)
;
}
}
// Disable and uninstall all modules that are optional,
// skip this part if only required modules are enabled.
$enabled_modules
=
module_list
(
TRUE
,
FALSE
,
TRUE
)
;
$enabled_modules
=
array_diff
(
$enabled_modules
,
$required_modules
)
;
$uninstall_modules
=
array_intersect
(
$enabled_modules
,
$uninstall_implementations
)
if
(
count
(
$enabled_modules
)
)
{
$edit
=
array
(
)
;
foreach
(
$enabled_modules
as
$module
)
{
$edit
[
'modules[Core]['
.
$module
.
'][enable]'
]
=
$module
;
}
$this
-
>
drupalPost
(
'admin/config/modules'
,
$edit
,
t
(
'Save configuration'
)
)
;
$this
-
>
assertText
(
t
(
'The configuration options have been saved.'
)
,
t
(
'All optional modules have been disabled.'
)
)
;
if
(
count
(
$uninstall_modules
)
)
{
$edit
=
array
(
)
;
foreach
(
$uninstall_modules
as
$module
)
{
$edit
[
'uninstall['
.
$module
.
']'
]
=
$module
;
}
$this
-
>
drupalPost
(
'admin/config/modules/uninstall'
,
$edit
,
t
(
'Uninstall'
)
)
;
$this
-
>
drupalPost
(
NULL
,
NULL
,
t
(
'Uninstall'
)
)
;
$this
-
>
assertText
(
t
(
'The selected modules have been uninstalled.'
)
,
t
(
'All optional modules have been uninstalled.'
)
)
;
}
}
// at this point in the test, we should have only the required modules enabled
$enabled_modules
=
module_list
(
TRUE
,
FALSE
,
TRUE
)
;
$this
-
>
assertFalse
(
array_diff
(
$enabled_modules
,
$required_modules
)
,
t
(
'Only the required modules enabled.'
)
)
}
}
module
simpletest
Submit Fix
Summary:
Tags:
Any tags you'd like to associate with your code, delimitered by commas (example: Views, CCK, Module, etc).
Show summary in full view
/** * Test enabling/disabling of optional modules functionality. */ class ModuleStatusSwitchingTestCase extends ModuleTestCase { public static function getInfo() { return array( 'name' => 'Module status switching', 'description' => 'Switch the status of all modules between each status', 'group' => 'Module', ); } public function testStatusSwitching() { $module_data = system_get_module_data(); $required_modules = drupal_required_modules(); $uninstall_implementations = module_implements('uninstall', TRUE); // this function only tests optional Core modules. foreach ($module_data as $name => $module) { if (!($module->info['package'] == 'Core') || isset($required_modules[$name])) { unset($module_data[$name]); unset($uninstall_implementations[$name]); } } // Disable and uninstall all modules that are optional, // skip this part if only required modules are enabled. $enabled_modules = module_list(TRUE, FALSE, TRUE); $enabled_modules = array_diff($enabled_modules, $required_modules); $uninstall_modules = array_intersect($enabled_modules, $uninstall_implementations) if (count($enabled_modules)) { $edit = array(); foreach ($enabled_modules as $module) { $edit['modules[Core][' . $module . '][enable]'] = $module; } $this->drupalPost('admin/config/modules', $edit, t('Save configuration')); $this->assertText(t('The configuration options have been saved.'), t('All optional modules have been disabled.')); if (count($uninstall_modules)) { $edit = array(); foreach ($uninstall_modules as $module) { $edit['uninstall[' . $module . ']'] = $module; } $this->drupalPost('admin/config/modules/uninstall', $edit, t('Uninstall')); $this->drupalPost(NULL, NULL, t('Uninstall')); $this->assertText(t('The selected modules have been uninstalled.'), t('All optional modules have been uninstalled.')); } } // at this point in the test, we should have only the required modules enabled $enabled_modules = module_list(TRUE, FALSE, TRUE); $this->assertFalse(array_diff($enabled_modules, $required_modules), t('Only the required modules enabled.')) } }
Syntax highlighting mode:
ActionScript
ColdFusion
Diff
Drupal 5
Drupal 6
HTML
INI
Javascript
MySQL
PHP
Python
robots.txt
SQL
Text
Select the syntax highlighting mode to use.
See Also:
Order
Title:
URL:
-1
0
1
Title:
URL:
-1
0
1
Any links you'd like to have associated with the post (Drupal.org issue, Wikipedia article, etc).
File attachments
Changes made to the attachments are not permanent until you save this post. The first "listed" file will be included in RSS feeds.
Attach new file:
The maximum upload size is
1 MB
. Only files with the following extensions may be uploaded:
jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp phps
.