X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Faction%2Ftests%2Fsrc%2FFunctionalJavascript%2FActionFormAjaxTest.php;fp=web%2Fcore%2Fmodules%2Faction%2Ftests%2Fsrc%2FFunctionalJavascript%2FActionFormAjaxTest.php;h=bc314a573d5f79f9b1579a30c6964cf8d03bb26f;hp=0000000000000000000000000000000000000000;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/web/core/modules/action/tests/src/FunctionalJavascript/ActionFormAjaxTest.php b/web/core/modules/action/tests/src/FunctionalJavascript/ActionFormAjaxTest.php new file mode 100644 index 000000000..bc314a573 --- /dev/null +++ b/web/core/modules/action/tests/src/FunctionalJavascript/ActionFormAjaxTest.php @@ -0,0 +1,70 @@ +drupalCreateUser(['administer actions']); + $this->drupalLogin($user); + } + + /** + * Tests action plugins with AJAX save their configuration. + */ + public function testActionConfigurationWithAjax() { + $url = Url::fromRoute('action.admin_add', ['action_id' => 'action_form_ajax_test']); + $this->drupalGet($url); + $this->assertSession()->statusCodeEquals(200); + $page = $this->getSession()->getPage(); + + $id = 'test_plugin'; + $page->find('css', '[name="id"]') + ->setValue($id); + + $page->find('css', '[name="having_a_party"]') + ->check(); + $this->assertSession()->waitForElement('css', '[name="party_time"]'); + + $party_time = 'Evening'; + $page->find('css', '[name="party_time"]') + ->setValue($party_time); + + $page->find('css', '[value="Save"]') + ->click(); + + $url = Url::fromRoute('entity.action.collection'); + $this->assertSession()->pageTextContains('The action has been successfully saved.'); + $this->assertSession()->addressEquals($url); + $this->assertSession()->statusCodeEquals(200); + + // Check storage. + $instance = Action::load($id); + $configuration = $instance->getPlugin()->getConfiguration(); + $this->assertEquals(['party_time' => $party_time], $configuration); + + // Configuration should be shown in edit form. + $this->drupalGet($instance->toUrl('edit-form')); + $this->assertSession()->checkboxChecked('having_a_party'); + $this->assertSession()->fieldValueEquals('party_time', $party_time); + } + +}