Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / modules / contrib / media_entity / tests / src / FunctionalJavascript / MediaEntityJavascriptTestBase.php
1 <?php
2
3 namespace Drupal\Tests\media_entity\FunctionalJavascript;
4
5 use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
6 use Drupal\Tests\media_entity\Functional\MediaEntityFunctionalTestTrait;
7
8 /**
9  * Base class for Media Entity Javascript functional tests.
10  *
11  * @package Drupal\Tests\media_entity\FunctionalJavascript
12  */
13 abstract class MediaEntityJavascriptTestBase extends JavascriptTestBase {
14
15   use MediaEntityFunctionalTestTrait;
16
17   /**
18    * Modules to enable.
19    *
20    * @var array
21    */
22   public static $modules = [
23     'system',
24     'node',
25     'field_ui',
26     'views_ui',
27     'entity',
28     'media_entity',
29   ];
30
31   /**
32    * Permissions for the admin user that will be logged-in for test.
33    *
34    * @var array
35    */
36   protected static $adminUserPermissions = [
37     // Media entity permissions.
38     'administer media',
39     'administer media fields',
40     'administer media form display',
41     'administer media display',
42     'administer media bundles',
43     'view media',
44     'create media',
45     'update media',
46     'update any media',
47     'delete media',
48     'delete any media',
49     'access media overview',
50     // Other permissions.
51     'administer views',
52     'access content overview',
53     'view all revisions',
54     'administer content types',
55     'administer node fields',
56     'administer node form display',
57     'bypass node access',
58   ];
59
60   /**
61    * An admin test user account.
62    *
63    * @var \Drupal\Core\Session\AccountInterface;
64    */
65   protected $adminUser;
66
67   /**
68    * A non-admin test user account.
69    *
70    * @var \Drupal\Core\Session\AccountInterface;
71    */
72   protected $nonAdminUser;
73
74   /**
75    * The storage service.
76    *
77    * @var \Drupal\Core\Entity\EntityStorageInterface;
78    */
79   protected $storage;
80
81   /**
82    * {@inheritdoc}
83    */
84   protected function setUp() {
85     parent::setUp();
86
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);
92
93     $this->storage = $this->container->get('entity_type.manager')->getStorage('media');
94   }
95
96   /**
97    * Waits and asserts that a given element is visible.
98    *
99    * @param string $selector
100    *   The CSS selector.
101    * @param int $timeout
102    *   (Optional) Timeout in milliseconds, defaults to 1000.
103    * @param string $message
104    *   (Optional) Message to pass to assertJsCondition().
105    */
106   protected function waitUntilVisible($selector, $timeout = 1000, $message = '') {
107     $condition = "jQuery('" . $selector . ":visible').length > 0";
108     $this->assertJsCondition($condition, $timeout, $message);
109   }
110
111 }