3 namespace Drupal\FunctionalJavascriptTests\Ajax;
5 use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
8 * Tests Ajax callbacks on FAPI elements.
12 class AjaxCallbacksTest extends WebDriverTestBase {
17 public static $modules = ['ajax_forms_test'];
20 * Tests if Ajax callback works on date element.
22 public function testDateAjaxCallback() {
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"]'));
32 * Tests if Ajax callback works on datetime element.
34 public function testDateTimeAjaxCallback() {
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"]'));