diff --git a/tests/src/FunctionalJavascript/AjaxContentTest.php b/tests/src/FunctionalJavascript/AjaxContentTest.php new file mode 100644 index 0000000..a9a5e61 --- /dev/null +++ b/tests/src/FunctionalJavascript/AjaxContentTest.php @@ -0,0 +1,71 @@ +drupalCreateUser(['administer actions']); + // $this->drupalLogin($user); + } + + /** + * Tests action plugins with AJAX save their configuration. + */ + public function testActionConfigurationWithAjax() { + $url = Url::fromRoute('bluecadet_ajax_content_example.simple_example_immediate'); + $this->drupalGet($url); + $this->assertSession()->assertWaitOnAjaxRequest(); + $page = $this->getSession()->getPage(); + + $this->assertSession()->pageTextContains('Ajaxed Paragraph 1.'); + $this->assertSession()->pageTextContains('Ajaxed Paragraph 2.'); + $this->assertSession()->pageTextContains('Ajaxed Paragraph 3.'); + + // $id = 'test_plugin'; + // $this->assertSession()->waitForElementVisible('named', ['button', 'Edit'])->press(); + // $this->assertSession()->waitForElementVisible('css', '[name="id"]')->setValue($id); + + // $page->find('css', '[name="having_a_party"]') + // ->check(); + // $this->assertSession()->waitForElementVisible('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); + + // // 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); + } +}