Pull merge.
[yaffs-website] / web / core / tests / Drupal / FunctionalJavascriptTests / Ajax / AjaxCallbacksTest.php
1 <?php
2
3 namespace Drupal\FunctionalJavascriptTests\Ajax;
4
5 use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
6
7 /**
8  * Tests Ajax callbacks on FAPI elements.
9  *
10  * @group Ajax
11  */
12 class AjaxCallbacksTest extends WebDriverTestBase {
13
14   /**
15    * {@inheritdoc}
16    */
17   public static $modules = ['ajax_forms_test'];
18
19   /**
20    * Tests if Ajax callback works on date element.
21    */
22   public function testDateAjaxCallback() {
23
24     // Test Ajax callback when date changes.
25     $this->drupalGet('ajax_forms_test_ajax_element_form');
26     $this->assertNotEmpty($this->getSession()->getPage()->find('xpath', '//div[@id="ajax_date_value"][text()="No date yet selected"]'));
27     $this->getSession()->executeScript('jQuery("[data-drupal-selector=edit-date]").val("2016-01-01").trigger("change");');
28     $this->assertNotEmpty($this->assertSession()->waitForElement('xpath', '//div[@id="ajax_date_value"]/div[text()="2016-01-01"]'));
29   }
30
31   /**
32    * Tests if Ajax callback works on datetime element.
33    */
34   public function testDateTimeAjaxCallback() {
35
36     // Test Ajax callback when datetime changes.
37     $this->drupalGet('ajax_forms_test_ajax_element_form');
38     $this->assertNotEmpty($this->getSession()->getPage()->find('xpath', '//div[@id="ajax_datetime_value"][text()="No datetime selected."]'));
39     $this->getSession()->executeScript('jQuery("[data-drupal-selector=edit-datetime-date]").val("2016-01-01");');
40     $this->getSession()->executeScript('jQuery("[data-drupal-selector=edit-datetime-time]").val("12:00:00").trigger("change");');
41     $this->assertNotEmpty($this->assertSession()->waitForElement('xpath', '//div[@id="ajax_datetime_value"]/div[text()="2016-01-01 12:00:00"]'));
42   }
43
44 }