You are here

public function CkEditorMediaBrowserTest::testImageEmbed in Lightning Media 8.2

Tests that the image embed plugin is used to embed an image.

@depends testExposedFilters

File

tests/src/ExistingSiteJavascript/CkEditorMediaBrowserTest.php, line 178

Class

CkEditorMediaBrowserTest
@group lightning @group lightning_media

Namespace

Drupal\Tests\lightning_media\ExistingSiteJavascript

Code

public function testImageEmbed() {
  $session = $this
    ->getSession();

  /** @var \Drupal\Core\Entity\EntityStorageInterface $file_storage */
  $file_storage = $this->container
    ->get('entity_type.manager')
    ->getStorage('file');
  $uri = uniqid('public://') . '.png';
  $uri = $this
    ->getRandomGenerator()
    ->image($uri, '640x480', '800x600');
  $image = $file_storage
    ->create([
    'uri' => $uri,
  ]);
  $file_storage
    ->save($image);
  $media = $this
    ->addMedia([
    'bundle' => 'image',
    'name' => 'Foobar',
    'image' => $image
      ->id(),
  ]);
  $media->image->alt = 'I am the greetest';
  $this
    ->assertSame(SAVED_UPDATED, $media
    ->save());
  $this
    ->visit('/node/add/page');
  $this
    ->open();
  $session
    ->switchToIFrame('entity_browser_iframe_media_browser');
  $this->assert
    ->fieldExists('Type')
    ->selectOption('Image');
  $this
    ->applyFilters();
  $items = $this
    ->getItems();
  $this
    ->assertGreaterThanOrEqual(1, count($items));
  $items[0]
    ->click();
  $this->assert
    ->buttonExists('Place')
    ->press();
  $session
    ->switchToIFrame(NULL);
  $this->assert
    ->assertWaitOnAjaxRequest();
  $embed_dialog = $this->assert
    ->elementExists('css', 'form.entity-embed-dialog');
  $this->assert
    ->optionExists('Image style', 'Cropped: Freeform', $embed_dialog);
  $this->assert
    ->fieldValueEquals('Alternate text', 'I am the greetest', $embed_dialog);
  $this->assert
    ->fieldValueEquals('attributes[title]', 'Foobar', $embed_dialog);
}