1 backdrop_web_test_case.php | protected BackdropUnitTestCase::setUp() |
Sets up unit test environment.
Unlike BackdropWebTestCase::setUp(), BackdropUnitTestCase::setUp() does not install modules because tests are performed without accessing the database. Any required files must be explicitly included by the child class setUp() method.
Overrides BackdropTestCase::setUp
File
- core/
modules/ simpletest/ backdrop_web_test_case.php, line 844
Class
- BackdropUnitTestCase
- Test case for Backdrop unit tests.
Code
protected function setUp() {
global $conf, $language;
// Store necessary current values before switching to the test environment.
$this->originalFileDirectory = config_get('system.core', 'file_public_path');
$this->verboseDirectoryUrl = file_create_url($this->originalFileDirectory . '/simpletest/verbose');
// Set to English to prevent any use of the database in t() calls.
// The following array/object conversion is copied from language_default().
$this->originalLanguage = $language;
$language = (object) array(
'langcode' => 'en',
'name' => 'English',
'direction' => 0,
'enabled' => TRUE,
'weight' => 0,
);
$this->prepareDatabasePrefix();
// Reset all statics so that test is performed with a clean environment.
backdrop_static_reset();
// Create test directory.
$public_files_directory = $this->originalFileDirectory . '/simpletest/' . $this->fileDirectoryName;
file_prepare_directory($public_files_directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
$conf['file_public_path'] = $public_files_directory;
// Clone the current connection and replace the current prefix.
$connection_info = Database::getConnectionInfo('default');
Database::renameConnection('default', 'simpletest_original_default');
foreach ($connection_info as $target => $value) {
$connection_info[$target]['prefix'] = array(
'default' => $value['prefix']['default'] . $this->databasePrefix,
);
}
Database::addConnectionInfo('default', 'default', $connection_info['default']);
// Set user agent to be consistent with web test case.
$_SERVER['HTTP_USER_AGENT'] = $this->databasePrefix;
// If locale is enabled then t() will try to access the database and
// subsequently will fail as the database is not accessible.
$module_list = module_list();
if (isset($module_list['locale'])) {
// Transform the list into the format expected as input to module_list().
foreach ($module_list as &$module) {
$module = array('filename' => backdrop_get_filename('module', $module));
}
$this->originalModuleList = $module_list;
unset($module_list['locale']);
module_list(TRUE, FALSE, FALSE, $module_list);
}
$this->setup = TRUE;
return TRUE;
}