comparison core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxCallbacksTest.php @ 17:129ea1e6d783

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:21:36 +0000
parents 4c8ae668cc8c
children
comparison
equal deleted inserted replaced
16:c2387f117808 17:129ea1e6d783
1 <?php 1 <?php
2 2
3 namespace Drupal\FunctionalJavascriptTests\Ajax; 3 namespace Drupal\FunctionalJavascriptTests\Ajax;
4 4
5 use Drupal\FunctionalJavascriptTests\JavascriptTestBase; 5 use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
6 6
7 /** 7 /**
8 * Tests Ajax callbacks on FAPI elements. 8 * Tests Ajax callbacks on FAPI elements.
9 * 9 *
10 * @group Ajax 10 * @group Ajax
11 */ 11 */
12 class AjaxCallbacksTest extends JavascriptTestBase { 12 class AjaxCallbacksTest extends WebDriverTestBase {
13 13
14 /** 14 /**
15 * {@inheritdoc} 15 * {@inheritdoc}
16 */ 16 */
17 public static $modules = ['ajax_forms_test']; 17 public static $modules = ['ajax_forms_test'];
21 */ 21 */
22 public function testDateAjaxCallback() { 22 public function testDateAjaxCallback() {
23 23
24 // Test Ajax callback when date changes. 24 // Test Ajax callback when date changes.
25 $this->drupalGet('ajax_forms_test_ajax_element_form'); 25 $this->drupalGet('ajax_forms_test_ajax_element_form');
26 $this->assertSession()->responseContains('No date yet selected'); 26 $this->assertNotEmpty($this->getSession()->getPage()->find('xpath', '//div[@id="ajax_date_value"][text()="No date yet selected"]'));
27 $this->getSession()->getPage()->fillField('edit-date', '2016-01-01'); 27 $this->getSession()->executeScript('jQuery("[data-drupal-selector=edit-date]").val("2016-01-01").trigger("change");');
28 $this->assertSession()->assertWaitOnAjaxRequest(); 28 $this->assertNotEmpty($this->assertSession()->waitForElement('xpath', '//div[@id="ajax_date_value"]/div[text()="2016-01-01"]'));
29 $this->assertSession()->responseNotContains('No date yet selected');
30 $this->assertSession()->responseContains('2016-01-01');
31 } 29 }
32 30
33 /** 31 /**
34 * Tests if Ajax callback works on datetime element. 32 * Tests if Ajax callback works on datetime element.
35 */ 33 */
36 public function testDateTimeAjaxCallback() { 34 public function testDateTimeAjaxCallback() {
37 35
38 // Test Ajax callback when datetime changes. 36 // Test Ajax callback when datetime changes.
39 $this->drupalGet('ajax_forms_test_ajax_element_form'); 37 $this->drupalGet('ajax_forms_test_ajax_element_form');
40 $this->assertSession()->responseContains('No datetime selected.'); 38 $this->assertNotEmpty($this->getSession()->getPage()->find('xpath', '//div[@id="ajax_datetime_value"][text()="No datetime selected."]'));
41 $this->getSession()->getPage()->fillField('edit-datetime-date', '2016-01-01'); 39 $this->getSession()->executeScript('jQuery("[data-drupal-selector=edit-datetime-date]").val("2016-01-01");');
42 $this->assertSession()->assertWaitOnAjaxRequest(); 40 $this->getSession()->executeScript('jQuery("[data-drupal-selector=edit-datetime-time]").val("12:00:00").trigger("change");');
43 $this->assertSession()->responseNotContains('No datetime selected.'); 41 $this->assertNotEmpty($this->assertSession()->waitForElement('xpath', '//div[@id="ajax_datetime_value"]/div[text()="2016-01-01 12:00:00"]'));
44 $this->assertSession()->responseContains('2016-01-01');
45 $this->getSession()->getPage()->fillField('edit-datetime-time', '12:00:00');
46 $this->assertSession()->assertWaitOnAjaxRequest();
47 $this->assertSession()->responseContains('2016-01-01 12:00:00');
48 } 42 }
49 43
50 } 44 }