You are here

public function InfoAlterTest::testSystemInfoAlter in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/system/tests/src/Kernel/System/InfoAlterTest.php \Drupal\Tests\system\Kernel\System\InfoAlterTest::testSystemInfoAlter()

Tests that theme .info.yml data is rebuild after enabling a module.

Tests that info data is rebuilt after a module that implements hook_system_info_alter() is enabled. Also tests if core *_list() functions return freshly altered info.

File

core/modules/system/tests/src/Kernel/System/InfoAlterTest.php, line 23

Class

InfoAlterTest
Tests the effectiveness of hook_system_info_alter().

Namespace

Drupal\Tests\system\Kernel\System

Code

public function testSystemInfoAlter() {
  \Drupal::state()
    ->set('module_required_test.hook_system_info_alter', TRUE);
  $info = \Drupal::service('extension.list.module')
    ->getList();
  $this
    ->assertFalse(isset($info['node']->info['required']), 'Before the module_required_test is installed the node module is not required.');

  // Enable the test module.
  \Drupal::service('module_installer')
    ->install([
    'module_required_test',
  ], FALSE);
  $this
    ->assertTrue(\Drupal::moduleHandler()
    ->moduleExists('module_required_test'), 'Test required module is enabled.');
  $info = \Drupal::service('extension.list.module')
    ->getList();
  $this
    ->assertTrue($info['node']->info['required'], 'After the module_required_test is installed the node module is required.');
}