You are here

public function ModulesFormTest::testInstallFunctionality in farmOS 2.x

Tests the install functionality of the module settings form.

File

modules/core/settings/tests/src/Functional/ModulesFormTest.php, line 50

Class

ModulesFormTest
Tests installing modules via the module settings form.

Namespace

Drupal\Tests\farm_settings\Functional

Code

public function testInstallFunctionality() {

  // Request the module settings page.
  $this
    ->drupalGet('farm/settings/modules');

  // Assert that the install button is disabled.
  $this
    ->assertInstallButtonState(TRUE);

  // Assert that installed modules are checked and disabled.
  foreach ([
    'farm_land',
    'farm_observation',
  ] as $module) {
    $this
      ->assertModuleCheckboxState('core', $module, TRUE, TRUE);
  }

  // Assert that uninstalled modules are unchecked.
  foreach ([
    'farm_plant',
    'farm_maintenance',
  ] as $module) {
    $this
      ->assertModuleCheckboxState('core', $module, FALSE, FALSE);
  }

  // Assert that the test module is uninstalled.
  $this
    ->assertModuleCheckboxState('contrib', 'farm_settings_test', FALSE, FALSE);

  // Install the farm_plant and farm_settings_test modules.
  $this
    ->installModules([
    'core' => [
      'farm_plant',
    ],
    'contrib' => [
      'farm_settings_test',
    ],
  ]);

  // Ensure farm_maintenance installed as farm_settings_test depends on it.
  $this
    ->assertModuleCheckboxState('core', 'farm_maintenance', TRUE, TRUE);
}