Version 1
[yaffs-website] / web / core / modules / editor / tests / src / Unit / EditorConfigEntityUnitTest.php
diff --git a/web/core/modules/editor/tests/src/Unit/EditorConfigEntityUnitTest.php b/web/core/modules/editor/tests/src/Unit/EditorConfigEntityUnitTest.php
new file mode 100644 (file)
index 0000000..4e96f4a
--- /dev/null
@@ -0,0 +1,133 @@
+<?php
+
+namespace Drupal\Tests\editor\Unit;
+
+use Drupal\Core\DependencyInjection\ContainerBuilder;
+use Drupal\editor\Entity\Editor;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * @coversDefaultClass \Drupal\editor\Entity\Editor
+ * @group editor
+ */
+class EditorConfigEntityUnitTest extends UnitTestCase {
+
+  /**
+   * The entity type used for testing.
+   *
+   * @var \Drupal\Core\Entity\EntityTypeInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $entityType;
+
+  /**
+   * The entity manager used for testing.
+   *
+   * @var \Drupal\Core\Entity\EntityManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $entityManager;
+
+  /**
+   * The ID of the type of the entity under test.
+   *
+   * @var string
+   */
+  protected $entityTypeId;
+
+  /**
+   * The UUID generator used for testing.
+   *
+   * @var \Drupal\Component\Uuid\UuidInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $uuid;
+
+  /**
+   * The editor plugin manager used for testing.
+   *
+   * @var \Drupal\editor\Plugin\EditorManager|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $editorPluginManager;
+
+  /**
+   * Editor plugin ID.
+   *
+   * @var string
+   */
+  protected $editorId;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    $this->editorId = $this->randomMachineName();
+    $this->entityTypeId = $this->randomMachineName();
+
+    $this->entityType = $this->getMock('\Drupal\Core\Entity\EntityTypeInterface');
+    $this->entityType->expects($this->any())
+      ->method('getProvider')
+      ->will($this->returnValue('editor'));
+
+    $this->entityManager = $this->getMock('\Drupal\Core\Entity\EntityManagerInterface');
+    $this->entityManager->expects($this->any())
+      ->method('getDefinition')
+      ->with($this->entityTypeId)
+      ->will($this->returnValue($this->entityType));
+
+    $this->uuid = $this->getMock('\Drupal\Component\Uuid\UuidInterface');
+
+    $this->editorPluginManager = $this->getMockBuilder('Drupal\editor\Plugin\EditorManager')
+      ->disableOriginalConstructor()
+      ->getMock();
+
+    $container = new ContainerBuilder();
+    $container->set('entity.manager', $this->entityManager);
+    $container->set('uuid', $this->uuid);
+    $container->set('plugin.manager.editor', $this->editorPluginManager);
+    \Drupal::setContainer($container);
+  }
+
+  /**
+   * @covers ::calculateDependencies
+   */
+  public function testCalculateDependencies() {
+    $format_id = 'filter.format.test';
+    $values = ['editor' => $this->editorId, 'format' => $format_id];
+
+    $plugin = $this->getMockBuilder('Drupal\editor\Plugin\EditorPluginInterface')
+      ->disableOriginalConstructor()
+      ->getMock();
+    $plugin->expects($this->once())
+      ->method('getPluginDefinition')
+      ->will($this->returnValue(['provider' => 'test_module']));
+    $plugin->expects($this->once())
+      ->method('getDefaultSettings')
+      ->will($this->returnValue([]));
+
+    $this->editorPluginManager->expects($this->any())
+      ->method('createInstance')
+      ->with($this->editorId)
+      ->will($this->returnValue($plugin));
+
+    $entity = new Editor($values, $this->entityTypeId);
+
+    $filter_format = $this->getMock('Drupal\Core\Config\Entity\ConfigEntityInterface');
+    $filter_format->expects($this->once())
+      ->method('getConfigDependencyName')
+      ->will($this->returnValue('filter.format.test'));
+
+    $storage = $this->getMock('Drupal\Core\Entity\EntityStorageInterface');
+    $storage->expects($this->once())
+      ->method('load')
+      ->with($format_id)
+      ->will($this->returnValue($filter_format));
+
+    $this->entityManager->expects($this->once())
+      ->method('getStorage')
+      ->with('filter_format')
+      ->will($this->returnValue($storage));
+
+    $dependencies = $entity->calculateDependencies()->getDependencies();
+    $this->assertContains('test_module', $dependencies['module']);
+    $this->assertContains('filter.format.test', $dependencies['config']);
+  }
+
+}