public function DevelDumperTest::testDumpersOutput in Devel 4.x
Same name and namespace in other branches
- 8.3 tests/src/Functional/DevelDumperTest.php \Drupal\Tests\devel\Functional\DevelDumperTest::testDumpersOutput()
- 8 tests/src/Functional/DevelDumperTest.php \Drupal\Tests\devel\Functional\DevelDumperTest::testDumpersOutput()
- 8.2 tests/src/Functional/DevelDumperTest.php \Drupal\Tests\devel\Functional\DevelDumperTest::testDumpersOutput()
Test variable is dumped in page.
File
- tests/
src/ Functional/ DevelDumperTest.php, line 84
Class
- DevelDumperTest
- Tests pluggable dumper feature.
Namespace
Drupal\Tests\devel\FunctionalCode
public function testDumpersOutput() {
$edit = [
'dumper' => 'available_test_dumper',
];
$this
->drupalPostForm('admin/config/development/devel', $edit, 'Save configuration');
$this
->assertSession()
->pageTextContains('The configuration options have been saved.');
$this
->drupalGet('devel_dumper_test/dump');
$elements = $this
->xpath('//body/pre[contains(text(), :message)]', [
':message' => 'AvailableTestDumper::dump() Test output',
]);
$this
->assertNotEmpty($elements, 'Dumped message is present.');
$this
->drupalGet('devel_dumper_test/message');
$elements = $this
->xpath('//div[@aria-label="Status message"]/pre[contains(text(), :message)]', [
':message' => 'AvailableTestDumper::export() Test output',
]);
$this
->assertNotEmpty($elements, 'Dumped message is present.');
$this
->drupalGet('devel_dumper_test/export');
$elements = $this
->xpath('//div[@class="layout-content"]//pre[contains(text(), :message)]', [
':message' => 'AvailableTestDumper::export() Test output',
]);
$this
->assertNotEmpty($elements, 'Dumped message is present.');
$this
->drupalGet('devel_dumper_test/export_renderable');
$elements = $this
->xpath('//div[@class="layout-content"]//pre[contains(text(), :message)]', [
':message' => 'AvailableTestDumper::exportAsRenderable() Test output',
]);
$this
->assertNotEmpty($elements, 'Dumped message is present.');
// Ensures that plugins can add libraries to the page when the
// ::exportAsRenderable() method is used.
$this
->assertSession()
->responseContains('devel_dumper_test/css/devel_dumper_test.css');
$this
->assertSession()
->responseContains('devel_dumper_test/js/devel_dumper_test.js');
// @todo Cater for deprecated code where the replacement has not been
// backported. Remove this when support for core 8.7 is no longer required.
// @see https://www.drupal.org/project/devel/issues/3118851
if (version_compare(\Drupal::VERSION, 8.800000000000001, '>=')) {
// For 8.8+.
$debug_filename = \Drupal::service('file_system')
->getTempDirectory() . '/' . 'drupal_debug.txt';
}
else {
// Up to 8.7.
$debug_filename = file_directory_temp() . '/drupal_debug.txt';
}
$this
->drupalGet('devel_dumper_test/debug');
$file_content = file_get_contents($debug_filename);
$expected = <<<EOF
<pre>AvailableTestDumper::export() Test output</pre>
EOF;
$this
->assertEquals($file_content, $expected, 'Dumped message is present.');
// Ensures that the DevelDumperManager::debug() is not access checked and
// that the dump is written in the debug file even if the user has not the
// 'access devel information' permission.
file_put_contents($debug_filename, '');
$this
->drupalLogout();
$this
->drupalGet('devel_dumper_test/debug');
$file_content = file_get_contents($debug_filename);
$expected = <<<EOF
<pre>AvailableTestDumper::export() Test output</pre>
EOF;
$this
->assertEquals($file_content, $expected, 'Dumped message is present.');
}