Yaffs site version 1.1
[yaffs-website] / web / modules / contrib / blazy / tests / src / Unit / BlazyMediaUnitTest.php
diff --git a/web/modules/contrib/blazy/tests/src/Unit/BlazyMediaUnitTest.php b/web/modules/contrib/blazy/tests/src/Unit/BlazyMediaUnitTest.php
new file mode 100644 (file)
index 0000000..4783d0f
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+
+namespace Drupal\Tests\blazy\Unit;
+
+use Drupal\Tests\UnitTestCase;
+use Drupal\blazy\BlazyMedia;
+use Drupal\Tests\blazy\Traits\BlazyUnitTestTrait;
+
+/**
+ * @coversDefaultClass \Drupal\blazy\BlazyMedia
+ *
+ * @group blazy
+ */
+class BlazyMediaUnitTest extends UnitTestCase {
+
+  use BlazyUnitTestTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->setUpVariables();
+    $this->setUpUnitImages();
+  }
+
+  /**
+   * Tests \Drupal\blazy\BlazyMedia::build().
+   *
+   * @covers ::build
+   * @covers ::wrap
+   * @dataProvider providerTestBlazyMediaBuild
+   */
+  public function testBlazyMediaBuild($markup) {
+    $settings = [
+      'source_field' => $this->randomMachineName(),
+      'image_style'  => 'blazy_crop',
+      'ratio'        => 'fluid',
+      'view_mode'    => 'default',
+      'bundle'       => 'entity_test',
+    ];
+
+    $markup['#settings'] = $settings;
+    $markup['#attached'] = [];
+    $markup['#cache']    = [];
+
+    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
+    $entity = $this->getMock('Drupal\Core\Entity\ContentEntityInterface');
+    $field_definition = $this->getMock('Drupal\Core\Field\FieldDefinitionInterface');
+
+    $items = $this->getMock('Drupal\Core\Field\FieldItemListInterface');
+    $items->expects($this->any())
+      ->method('getFieldDefinition')
+      ->willReturn($field_definition);
+    $items->expects($this->any())
+      ->method('view')
+      ->with($settings['view_mode'])
+      ->willReturn($markup);
+    $items->expects($this->any())
+      ->method('getEntity')
+      ->willReturn($entity);
+
+    $entity->expects($this->once())
+      ->method('get')
+      ->with($settings['source_field'])
+      ->will($this->returnValue($items));
+
+    $render = BlazyMedia::build($entity, $settings);
+    $this->assertArrayHasKey('#settings', $render);
+  }
+
+  /**
+   * Provider for ::testBlazyMediaBuild.
+   */
+  public function providerTestBlazyMediaBuild() {
+    $iframe = [
+      '#type' => 'html_tag',
+      '#tag' => 'iframe',
+      '#attributes' => [
+        'allowfullscreen' => 'true',
+        'frameborder' => 0,
+        'scrolling' => 'no',
+        'src' => '//www.youtube.com/watch?v=E03HFA923kw',
+        'width' => 640,
+        'height' => 360,
+      ],
+    ];
+
+    $markup['#markup'] = '<iframe src="//www.youtube.com/watch?v=E03HFA923kw" class="b-lazy"></iframe>';
+
+    return [
+      'With children, has iframe tag' => [
+        [$iframe],
+      ],
+      'Without children, has iframe tag' => [
+        $iframe,
+      ],
+      'With children, has no iframe tag' => [
+        [$markup],
+      ],
+    ];
+  }
+
+}