SlideshowTest.php in Lightning Media 8.3
File
modules/lightning_media_slideshow/tests/src/FunctionalJavascript/SlideshowTest.php
View source
<?php
namespace Drupal\Tests\lightning_media_slideshow\FunctionalJavascript;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
use Drupal\media\Entity\Media;
use Drupal\Tests\lightning_media\FunctionalJavascript\WebDriverWebAssert;
use Drupal\Tests\lightning_media\Traits\EntityBrowserTrait;
use Drupal\views\Entity\View;
class SlideshowTest extends WebDriverTestBase {
use EntityBrowserTrait;
protected $defaultTheme = 'stark';
protected $strictConfigSchema = FALSE;
protected static $modules = [
'block_content',
'lightning_media_instagram',
'lightning_media_slideshow',
'lightning_media_twitter',
];
protected function setUp() {
parent::setUp();
$GLOBALS['install_state'] = [];
$view = View::load('media');
lightning_media_view_insert($view);
unset($GLOBALS['install_state']);
}
public function testSlideshow() {
$page = $this
->getSession()
->getPage();
$assert_session = $this
->assertSession();
$account = $this
->drupalCreateUser([
'access content',
'access media_browser entity browser pages',
'access media overview',
'view media',
'create media',
'update media',
'administer blocks',
]);
$this
->drupalLogin($account);
Media::create([
'bundle' => 'tweet',
])
->setName("I'm a tweet")
->set('embed_code', 'https://twitter.com/50NerdsofGrey/status/757319527151636480')
->set('field_media_in_library', TRUE)
->setPublished()
->save();
Media::create([
'bundle' => 'instagram',
])
->setName("I'm an instagram")
->set('embed_code', 'https://www.instagram.com/p/BaecNGYAYyP/')
->set('field_media_in_library', TRUE)
->setPublished()
->save();
$this
->drupalGet('/block/add/media_slideshow');
$page
->fillField('Block description', 'Test Block');
$page
->pressButton('Add media');
$this
->waitForEntityBrowser('media_browser');
$items = $this
->waitForItems();
$this
->assertGreaterThanOrEqual(2, count($items));
$this
->selectItem($items[0]);
$this
->selectItem($items[1]);
$page
->pressButton('Place');
$this
->waitForEntityBrowserToClose();
$assert_session
->waitForElement('css', '[data-drupal-selector^="edit-field-slideshow-items-current-items-"]');
$page
->pressButton('Save');
$page
->selectFieldOption('Region', 'Content');
$page
->pressButton('Save block');
$this
->drupalGet('<front>');
$this
->assertNotEmpty($assert_session
->waitForElement('css', 'button.slick-prev.slick-arrow'));
$assert_session
->elementExists('css', 'button.slick-next.slick-arrow');
}
public function assertSession($name = NULL) {
return new WebDriverWebAssert($this
->getSession($name), $this->baseUrl);
}
}
Classes
Name |
Description |
SlideshowTest |
Tests the basic functionality of Lightning Media's slideshow component. |