3 namespace Drupal\Tests\media_entity\FunctionalJavascript;
5 use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
6 use Drupal\Tests\media_entity\Functional\MediaEntityFunctionalTestTrait;
9 * Base class for Media Entity Javascript functional tests.
11 * @package Drupal\Tests\media_entity\FunctionalJavascript
13 abstract class MediaEntityJavascriptTestBase extends JavascriptTestBase {
15 use MediaEntityFunctionalTestTrait;
22 public static $modules = [
32 * Permissions for the admin user that will be logged-in for test.
36 protected static $adminUserPermissions = [
37 // Media entity permissions.
39 'administer media fields',
40 'administer media form display',
41 'administer media display',
42 'administer media bundles',
49 'access media overview',
52 'access content overview',
54 'administer content types',
55 'administer node fields',
56 'administer node form display',
61 * An admin test user account.
63 * @var \Drupal\Core\Session\AccountInterface;
68 * A non-admin test user account.
70 * @var \Drupal\Core\Session\AccountInterface;
72 protected $nonAdminUser;
75 * The storage service.
77 * @var \Drupal\Core\Entity\EntityStorageInterface;
84 protected function setUp() {
87 // Have two users ready to be used in tests.
88 $this->adminUser = $this->drupalCreateUser(static::$adminUserPermissions);
89 $this->nonAdminUser = $this->drupalCreateUser([]);
90 // Start off logged in as admin.
91 $this->drupalLogin($this->adminUser);
93 $this->storage = $this->container->get('entity_type.manager')->getStorage('media');
97 * Waits and asserts that a given element is visible.
99 * @param string $selector
101 * @param int $timeout
102 * (Optional) Timeout in milliseconds, defaults to 1000.
103 * @param string $message
104 * (Optional) Message to pass to assertJsCondition().
106 protected function waitUntilVisible($selector, $timeout = 1000, $message = '') {
107 $condition = "jQuery('" . $selector . ":visible').length > 0";
108 $this->assertJsCondition($condition, $timeout, $message);