View source
<?php
namespace Drupal\Tests\entity_print\Kernel;
use Drupal\entity_print\PrintEngineException;
use Drupal\KernelTests\KernelTestBase;
class EntityPrintPluginManagerTest extends KernelTestBase {
public static $modules = [
'entity_print',
'entity_print_test',
];
protected $pluginManager;
public function setUp() : void {
parent::setUp();
$this->pluginManager = $this->container
->get('plugin.manager.entity_print.print_engine');
}
public function testCreateSelectedInstance() {
$factory = $this->container
->get('config.factory');
$config = $factory
->getEditable('entity_print.settings');
$config
->set('print_engines', [
'pdf_engine' => '',
]);
$config
->save();
$this
->expectException(PrintEngineException::class);
$this->pluginManager
->createSelectedInstance('pdf');
}
public function testIsPrintEngineEnabled($plugin_id, $is_enabled) {
$this
->assertSame($this->pluginManager
->isPrintEngineEnabled($plugin_id), $is_enabled);
}
public function isPrintEngineEnabledDataProvider() {
return [
'Non-existent plugin ID' => [
'abc123',
FALSE,
],
'Empty plugin ID' => [
'',
FALSE,
],
'Disabled plugin ID' => [
'dompdf',
FALSE,
],
'Enabled plugin ID' => [
'testprintengine',
TRUE,
],
];
}
public function testGetDisabledDefinitions($filter, $expected_definitions) {
$disabled_definitions = array_keys($this->pluginManager
->getDisabledDefinitions($filter));
sort($disabled_definitions);
sort($expected_definitions);
$this
->assertSame($disabled_definitions, $expected_definitions);
}
public function getDisabledDefinitionsDataProvider() {
return [
'Filter by pdf' => [
'pdf',
[
'dompdf',
'phpwkhtmltopdf',
'tcpdfv1',
'not_available_print_engine',
],
],
'Filter by another type' => [
'word_docx',
[],
],
];
}
}