diff --git a/.github/workflows/drupal-tests-and-standards.yml b/.github/workflows/drupal-tests-and-standards.yml index 605223c..7bc9a23 100644 --- a/.github/workflows/drupal-tests-and-standards.yml +++ b/.github/workflows/drupal-tests-and-standards.yml @@ -161,6 +161,12 @@ jobs: # --sqlite /tmp/test.sqlite \ # --url $SIMPLETEST_BASE_URL $DRUPAL_MODULE_NAME + - name: Debug 1 + working-directory: ${{ env.DRUPAL_ROOT }} + continue-on-error: true + run: | + ls -sla $MODULE_FOLDER + # Uncomment this step to run tests using phpunit. Your module is expected # to ship with 'phpunit.xml' file. See the repository for an example # phpunit.xml file. diff --git a/phpunit.xml b/phpunit.xml old mode 100644 new mode 100755 diff --git a/tests/src/FunctionalJavascript/AjaxContentTest.php b/tests/src/FunctionalJavascript/AjaxContentTest.php new file mode 100644 index 0000000..d1c5a84 --- /dev/null +++ b/tests/src/FunctionalJavascript/AjaxContentTest.php @@ -0,0 +1,89 @@ +drupalCreateUser(['administer actions']); + // $this->drupalLogin($user); + } + + /** + * Tests action plugins with AJAX save their configuration. + */ + public function testAjaxContentLoad() { + // Simple example. + $url = Url::fromRoute('bluecadet_ajax_content_example.simple_example_immediate'); + $this->drupalGet($url); + + $session_assert = $this->assertSession(); + + $session_assert->assertWaitOnAjaxRequest(); + $page = $this->getSession()->getPage(); + + $session_assert->pageTextContains('Ajaxed Paragraph 1.'); + $session_assert->pageTextContains('Ajaxed Paragraph 2.'); + $session_assert->pageTextContains('Ajaxed Paragraph 3.'); + + + // Scroll example. + // $url = Url::fromRoute('bluecadet_ajax_content_example.simple_example_scroll'); + // $this->drupalGet($url); + // // $this->assertSession()->assertWaitOnAjaxRequest(); + // $page = $this->getSession()->getPage(); + + // $this->assertSession()->waitForElementVisible('css', 'div[data-ajax-scroll=*]'); + + // $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); + } +}