390e22075ab8f815a49aa0816cf82a5a7f1e7372
[yaffs-website] / web / core / modules / media / tests / src / FunctionalJavascript / MediaJavascriptTestBase.php
1 <?php
2
3 namespace Drupal\Tests\media\FunctionalJavascript;
4
5 use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
6 use Drupal\Tests\media\Functional\MediaFunctionalTestTrait;
7 use Drupal\Tests\media\Traits\MediaTypeCreationTrait;
8
9 /**
10  * Base class for Media functional JavaScript tests.
11  */
12 abstract class MediaJavascriptTestBase extends WebDriverTestBase {
13
14   use MediaFunctionalTestTrait;
15   use MediaTypeCreationTrait;
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     'media',
28     'media_test_source',
29   ];
30
31   /**
32    * Waits and asserts that a given element is visible.
33    *
34    * @param string $selector
35    *   The CSS selector.
36    * @param int $timeout
37    *   (Optional) Timeout in milliseconds, defaults to 1000.
38    * @param string $message
39    *   (Optional) Message to pass to assertJsCondition().
40    */
41   protected function waitUntilVisible($selector, $timeout = 1000, $message = '') {
42     $condition = "jQuery('" . $selector . ":visible').length > 0";
43     $this->assertJsCondition($condition, $timeout, $message);
44   }
45
46   /**
47    * Asserts that a link to a new media item is displayed in the messages area.
48    *
49    * @return string
50    *   The link URL.
51    */
52   protected function assertLinkToCreatedMedia() {
53     $assert_session = $this->assertSession();
54     $selector = '.messages a';
55
56     // Get the canonical media entity URL from the creation message.
57     $link = $assert_session->elementExists('css', $selector);
58     $assert_session->elementAttributeExists('css', $selector, 'href');
59
60     return $link->getAttribute('href');
61   }
62
63 }