public function DevelDumperTest::testDumpersConfiguration in Devel 8
Same name and namespace in other branches
- 8.3 tests/src/Functional/DevelDumperTest.php \Drupal\Tests\devel\Functional\DevelDumperTest::testDumpersConfiguration()
- 8.2 tests/src/Functional/DevelDumperTest.php \Drupal\Tests\devel\Functional\DevelDumperTest::testDumpersConfiguration()
- 4.x tests/src/Functional/DevelDumperTest.php \Drupal\Tests\devel\Functional\DevelDumperTest::testDumpersConfiguration()
Test dumpers configuration page.
File
- tests/
src/ Functional/ DevelDumperTest.php, line 35
Class
- DevelDumperTest
- Tests pluggable dumper feature.
Namespace
Drupal\Tests\devel\FunctionalCode
public function testDumpersConfiguration() {
$this
->drupalGet('admin/config/development/devel');
// Ensures that the dumper input is present on the config page.
$this
->assertSession()
->fieldExists('dumper');
// Ensures that the 'default' dumper is enabled by default.
$this
->assertSession()
->checkboxChecked('edit-dumper-default');
// Ensures that all dumpers declared by devel are present on the config page
// and that only the available dumpers are selectable.
$dumpers = [
'default',
'drupal_variable',
'firephp',
'chromephp',
'var_dumper',
];
$available_dumpers = [
'default',
'drupal_variable',
'var_dumper',
];
foreach ($dumpers as $dumper) {
$this
->assertFieldByXPath('//input[@type="radio" and @name="dumper"]', $dumper);
if (in_array($dumper, $available_dumpers)) {
$this
->assertFieldByXPath('//input[@name="dumper" and not(@disabled="disabled")]', $dumper);
}
else {
$this
->assertFieldByXPath('//input[@name="dumper" and @disabled="disabled"]', $dumper);
}
}
// Ensures that dumper plugins declared by other modules are present on the
// config page and that only the available dumpers are selectable.
$this
->assertFieldByXPath('//input[@name="dumper"]', 'available_test_dumper');
$this
->assertSession()
->pageTextContains('Available test dumper.');
$this
->assertSession()
->pageTextContains('Drupal dumper for testing purposes (available).');
$this
->assertFieldByXPath('//input[@name="dumper" and not(@disabled="disabled")]', 'available_test_dumper', 'Available dumper input not is disabled.');
$this
->assertFieldByXPath('//input[@name="dumper"]', 'not_available_test_dumper');
$this
->assertSession()
->pageTextContains('Not available test dumper.');
$this
->assertSession()
->pageTextContains('Drupal dumper for testing purposes (not available).Not available. You may need to install external dependencies for use this plugin.');
$this
->assertFieldByXPath('//input[@name="dumper" and @disabled="disabled"]', 'not_available_test_dumper', 'Non available dumper input is disabled.');
// Ensures that saving of the dumpers configuration works as expected.
$edit = [
'dumper' => 'drupal_variable',
];
$this
->drupalPostForm('admin/config/development/devel', $edit, t('Save configuration'));
$this
->assertSession()
->pageTextContains(t('The configuration options have been saved.'));
$config = \Drupal::config('devel.settings')
->get('devel_dumper');
$this
->assertEquals('drupal_variable', $config, 'The configuration options have been properly saved');
// Ensure that if the chosen dumper is not available (e.g. the module that
// provide it is uninstalled) the 'default' dumper appears selected in the
// config page.
\Drupal::service('module_installer')
->install([
'kint',
]);
$this
->drupalGet('admin/config/development/devel');
$this
->assertFieldByXPath('//input[@name="dumper"]', 'kint');
$edit = [
'dumper' => 'kint',
];
$this
->drupalPostForm('admin/config/development/devel', $edit, t('Save configuration'));
$this
->assertSession()
->pageTextContains(t('The configuration options have been saved.'));
$config = \Drupal::config('devel.settings')
->get('devel_dumper');
$this
->assertEquals('kint', $config, 'The configuration options have been properly saved');
\Drupal::service('module_installer')
->uninstall([
'kint',
]);
$this
->drupalGet('admin/config/development/devel');
$this
->assertNoFieldByXPath('//input[@name="dumper"]', 'kint');
$this
->assertSession()
->checkboxChecked('edit-dumper-default');
}