Tests DrupalUnitTestBase functionality.
Expanded class hierarchy of DrupalUnitTestBaseTest
class DrupalUnitTestBaseTest extends DrupalUnitTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = array(
'entity_test',
);
public static function getInfo() {
return array(
'name' => 'DrupalUnitTestBase',
'description' => 'Tests DrupalUnitTestBase functionality.',
'group' => 'SimpleTest',
);
}
/**
* Tests expected behavior of setUp().
*/
function testSetUp() {
$module = 'entity_test';
$table = 'entity_test';
// Verify that specified $modules have been loaded.
$this
->assertTrue(function_exists('entity_test_permission'), "{$module}.module was loaded.");
// Verify that there is a fixed module list.
$this
->assertIdentical(module_list(), array(
$module => $module,
));
$this
->assertIdentical(module_implements('permission'), array(
$module,
));
// Verify that no modules have been installed.
$this
->assertFalse(db_table_exists($table), "'{$table}' database table not found.");
}
/**
* Tests expected load behavior of enableModules().
*/
function testEnableModulesLoad() {
$module = 'field_test';
// Verify that the module does not exist yet.
$this
->assertFalse(module_exists($module), "{$module} module not found.");
$list = module_list();
$this
->assertFalse(in_array($module, $list), "{$module} module in module_list() not found.");
$list = module_list('permission');
$this
->assertFalse(in_array($module, $list), "{$module}_permission() in module_implements() not found.");
// Enable the module.
$this
->enableModules(array(
$module,
), FALSE);
// Verify that the module exists.
$this
->assertTrue(module_exists($module), "{$module} module found.");
$list = module_list();
$this
->assertTrue(in_array($module, $list), "{$module} module in module_list() found.");
$list = module_list('permission');
$this
->assertTrue(in_array($module, $list), "{$module}_permission() in module_implements() found.");
}
/**
* Tests expected installation behavior of enableModules().
*/
function testEnableModulesInstall() {
$module = 'filter';
$table = 'filter';
// @todo Remove after configuration system conversion.
$this
->enableModules(array(
'system',
), FALSE);
$this
->installSchema('system', 'variable');
// Verify that the module does not exist yet.
$this
->assertFalse(module_exists($module), "{$module} module not found.");
$list = module_list();
$this
->assertFalse(in_array($module, $list), "{$module} module in module_list() not found.");
$list = module_list('permission');
$this
->assertFalse(in_array($module, $list), "{$module}_permission() in module_implements() not found.");
$this
->assertFalse(db_table_exists($table), "'{$table}' database table not found.");
$schema = drupal_get_schema($table);
$this
->assertFalse($schema, "'{$table}' table schema not found.");
// Enable the module.
$this
->enableModules(array(
$module,
));
// Verify that the enabled module exists.
$this
->assertTrue(module_exists($module), "{$module} module found.");
$list = module_list();
$this
->assertTrue(in_array($module, $list), "{$module} module in module_list() found.");
$list = module_list('permission');
$this
->assertTrue(in_array($module, $list), "{$module}_permission() in module_implements() found.");
$this
->assertTrue(db_table_exists($table), "'{$table}' database table found.");
$schema = drupal_get_schema($table);
$this
->assertTrue($schema, "'{$table}' table schema found.");
}
/**
* Tests installing of multiple modules via enableModules().
*
* Regression test: Each passed module has to be enabled and installed on its
* own, in the same way as module_enable() enables only one module after the
* other.
*/
function testEnableModulesInstallMultiple() {
// Field retrieves entity type plugins, and EntityTypeManager calls into
// hook_entity_info_alter(). If both modules would be first enabled together
// instead of each on its own, then Node module's alter implementation
// would be called and this simply blows up. To further complicate matters,
// additionally install Comment module, whose entity bundles depend on node
// types.
$this
->enableModules(array(
'field',
'node',
'comment',
));
$this
->pass('Comment module was installed.');
}
/**
* Tests installing modules via enableModules() with DepedencyInjection services.
*/
function testEnableModulesInstallContainer() {
// Install Node module.
// @todo field_sql_storage and field should technically not be necessary
// for an entity query.
$this
->enableModules(array(
'field_sql_storage',
'field',
'node',
));
// Perform an entity query against node.
$query = entity_query('node');
// Disable node access checks, since User module is not enabled.
$query
->accessCheck(FALSE);
$query
->condition('nid', 1);
$query
->execute();
$this
->pass('Entity field query was executed.');
}
/**
* Tests expected behavior of installSchema().
*/
function testInstallSchema() {
$module = 'entity_test';
$table = 'entity_test';
// Verify that we can install a table from the module schema.
$this
->installSchema($module, $table);
$this
->assertTrue(db_table_exists($table), "'{$table}' database table found.");
// Verify that the schema is known to Schema API.
$schema = drupal_get_schema();
$this
->assertTrue($schema[$table], "'{$table}' table found in schema.");
$schema = drupal_get_schema($table);
$this
->assertTrue($schema, "'{$table}' table schema found.");
// Verify that a table from a unknown module cannot be installed.
$module = 'database_test';
$table = 'test';
try {
$this
->installSchema($module, $table);
$this
->fail('Exception for non-retrievable schema found.');
} catch (\Exception $e) {
$this
->pass('Exception for non-retrievable schema found.');
}
$this
->assertFalse(db_table_exists($table), "'{$table}' database table not found.");
$schema = drupal_get_schema($table);
$this
->assertFalse($schema, "'{$table}' table schema not found.");
// Verify that the same table can be installed after enabling the module.
$this
->enableModules(array(
$module,
), FALSE);
$this
->installSchema($module, $table);
$this
->assertTrue(db_table_exists($table), "'{$table}' database table found.");
$schema = drupal_get_schema($table);
$this
->assertTrue($schema, "'{$table}' table schema found.");
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DrupalUnitTestBase:: |
private | property | ||
DrupalUnitTestBase:: |
private | property | Fixed module list being used by this test. | |
DrupalUnitTestBase:: |
private | property | ||
DrupalUnitTestBase:: |
private | property | ||
DrupalUnitTestBase:: |
public | function | Sets up the base service container for this test. | |
DrupalUnitTestBase:: |
protected | function | Enables modules for this test. | |
DrupalUnitTestBase:: |
protected | function | Installs a specific table from a module schema definition. | |
DrupalUnitTestBase:: |
protected | function |
Sets up Drupal unit test environment. Overrides UnitTestBase:: |
9 |
DrupalUnitTestBaseTest:: |
public static | property |
Modules to enable. Overrides DrupalUnitTestBase:: |
|
DrupalUnitTestBaseTest:: |
public static | function | ||
DrupalUnitTestBaseTest:: |
function | Tests expected installation behavior of enableModules(). | ||
DrupalUnitTestBaseTest:: |
function | Tests installing modules via enableModules() with DepedencyInjection services. | ||
DrupalUnitTestBaseTest:: |
function | Tests installing of multiple modules via enableModules(). | ||
DrupalUnitTestBaseTest:: |
function | Tests expected load behavior of enableModules(). | ||
DrupalUnitTestBaseTest:: |
function | Tests expected behavior of installSchema(). | ||
DrupalUnitTestBaseTest:: |
function | Tests expected behavior of setUp(). | ||
TestBase:: |
protected | property | Assertions thrown in that test case. | |
TestBase:: |
protected | property | The database prefix of this test run. | |
TestBase:: |
protected | property | The original file directory, before it was changed for testing purposes. | |
TestBase:: |
protected | property | The original database prefix when running inside Simpletest. | |
TestBase:: |
public | property | Current results of this test case. | |
TestBase:: |
protected | property | Flag to indicate whether the test has been set up. | |
TestBase:: |
protected | property | ||
TestBase:: |
protected | property | ||
TestBase:: |
protected | property | This class is skipped when looking for the source of an assertion. | |
TestBase:: |
protected | property | The test run ID. | |
TestBase:: |
protected | property | Time limit for the test. | |
TestBase:: |
protected | property | TRUE if verbose debugging is enabled. | |
TestBase:: |
protected | property | Safe class name for use in verbose output filenames. | |
TestBase:: |
protected | property | Directory where verbose output files are put. | |
TestBase:: |
protected | property | URL to the verbose output file directory. | |
TestBase:: |
protected | property | Incrementing identifier for verbose output filenames. | |
TestBase:: |
protected | function | Internal helper: stores the assert. | |
TestBase:: |
protected | function | Check to see if two values are equal. | |
TestBase:: |
protected | function | Check to see if a value is false (an empty string, 0, NULL, or FALSE). | |
TestBase:: |
protected | function | Check to see if two values are identical. | |
TestBase:: |
protected | function | Checks to see if two objects are identical. | |
TestBase:: |
protected | function | Check to see if two values are not equal. | |
TestBase:: |
protected | function | Check to see if two values are not identical. | |
TestBase:: |
protected | function | Check to see if a value is not NULL. | |
TestBase:: |
protected | function | Check to see if a value is NULL. | |
TestBase:: |
protected | function | Check to see if a value is not false (not an empty string, 0, NULL, or FALSE). | |
TestBase:: |
protected | function | Changes the database connection to the prefixed one. | |
TestBase:: |
protected | function | Checks the matching requirements for Test. | 3 |
TestBase:: |
public static | function | Delete an assertion record by message ID. | |
TestBase:: |
protected | function | Fire an error assertion. | 1 |
TestBase:: |
public | function | Handle errors during test runs. | |
TestBase:: |
protected | function | Handle exceptions. | |
TestBase:: |
protected | function | Fire an assertion that is always negative. | |
TestBase:: |
public static | function | Ensures test files are deletable within file_unmanaged_delete_recursive(). | |
TestBase:: |
public static | function | Converts a list of possible parameters into a stack of permutations. | |
TestBase:: |
protected | function | Cycles through backtrace until the first non-assertion method is found. | |
TestBase:: |
public static | function | Returns the database connection to the site running Simpletest. | |
TestBase:: |
public static | function | Store an assertion from outside the testing context. | |
TestBase:: |
protected | function | Fire an assertion that is always positive. | |
TestBase:: |
protected | function | Generates a database prefix for running tests. | |
TestBase:: |
protected | function | Prepares the current environment for running the test. | |
TestBase:: |
public static | function | Generates a random string containing letters and numbers. | |
TestBase:: |
public static | function | Generates a random PHP object. | |
TestBase:: |
public static | function | Generates a random string of ASCII characters of codes 32 to 126. | |
TestBase:: |
protected | function | Rebuild drupal_container(). | |
TestBase:: |
public | function | Run all tests in this class. | |
TestBase:: |
protected | function | Deletes created files, database tables, and reverts all environment changes. | 10 |
TestBase:: |
protected | function | Logs verbose message in a text file. | |
UnitTestBase:: |
protected | property | ||
UnitTestBase:: |
function |
Constructor for UnitTestBase. Overrides TestBase:: |
6 |