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'] = ''; return [ 'With children, has iframe tag' => [ [$iframe], ], 'Without children, has iframe tag' => [ $iframe, ], 'With children, has no iframe tag' => [ [$markup], ], ]; } }