‪TYPO3CMS  ‪main
PageModuleCest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
22 
27 final class ‪PageModuleCest
28 {
29  public function ‪_before(‪ApplicationTester $I): void
30  {
31  $I->useExistingSession('admin');
32  }
33 
35  {
36  // Select the root page
37  $I->switchToMainFrame();
38  $I->click('Page');
39  // click on PID=0
40  $I->clickWithLeftButton('#typo3-pagetree-treeContainer [role="treeitem"][data-id="0"] .node-contentlabel');
41  $I->switchToContentFrame();
42  $I->canSee('Please select a page in the page tree to edit page content.');
43  }
44 
45  public function ‪editPageTitle(‪ApplicationTester $I, ‪PageTree $pageTree): void
46  {
47  $oldPageTitle = 'styleguide TCA demo';
48  $newPageTitle = 'styleguide TCA demo page';
49 
50  $I->switchToMainFrame();
51  $I->click('Page');
52  $pageTree->‪openPath([$oldPageTitle]);
53  $I->switchToContentFrame();
54 
55  $I->canSeeElement('typo3-backend-editable-page-title');
56  $I->wait(1);
57 
58  // Rename
59  $I->executeJS("document.querySelector('typo3-backend-editable-page-title').shadowRoot.querySelector('[data-action=\"edit\"]').click()");
60  $I->executeJS("document.querySelector('typo3-backend-editable-page-title').shadowRoot.querySelector('input').value = '" . $newPageTitle . "'");
61  $I->executeJS("document.querySelector('typo3-backend-editable-page-title').shadowRoot.querySelector('[data-action=\"save\"]').click()");
62  $I->wait(1);
63  $changedPageTitle = $I->executeJS("return document.querySelector('typo3-backend-editable-page-title').pageTitle");
64  if ($changedPageTitle !== 'styleguide TCA demo page') {
65  $I->fail('The current page title "' . $changedPageTitle . '" does not match "styleguide TCA demo page"');
66  }
67 
68  // Rename back
69  $I->executeJS("document.querySelector('typo3-backend-editable-page-title').shadowRoot.querySelector('[data-action=\"edit\"]').click()");
70  $I->executeJS("document.querySelector('typo3-backend-editable-page-title').shadowRoot.querySelector('input').value = '" . $oldPageTitle . "'");
71  $I->executeJS("document.querySelector('typo3-backend-editable-page-title').shadowRoot.querySelector('[data-action=\"save\"]').click()");
72  $I->wait(1);
73  $changedPageTitle = $I->executeJS("return document.querySelector('typo3-backend-editable-page-title').pageTitle");
74  if ($changedPageTitle !== 'styleguide TCA demo') {
75  $I->fail('The current page title "' . $changedPageTitle . '" does not match "styleguide TCA demo"');
76  }
77  }
78 }
‪TYPO3\CMS\Core\Tests\Acceptance\Support\ApplicationTester
Definition: ApplicationTester.php:28
‪TYPO3\CMS\Core\Tests\Acceptance\Application\Page\PageModuleCest
Definition: PageModuleCest.php:28
‪TYPO3\CMS\Core\Tests\Acceptance\Support\Helper\AbstractTree\openPath
‪openPath(array $path)
Definition: AbstractTree.php:55
‪TYPO3\CMS\Core\Tests\Acceptance\Application\Page
Definition: PageModuleCest.php:18
‪TYPO3\CMS\Core\Tests\Acceptance\Application\Page\PageModuleCest\checkThatPageModuleHasAHeadline
‪checkThatPageModuleHasAHeadline(ApplicationTester $I)
Definition: PageModuleCest.php:34
‪TYPO3\CMS\Core\Tests\Acceptance\Application\Page\PageModuleCest\_before
‪_before(ApplicationTester $I)
Definition: PageModuleCest.php:29
‪TYPO3\CMS\Core\Tests\Acceptance\Application\Page\PageModuleCest\editPageTitle
‪editPageTitle(ApplicationTester $I, PageTree $pageTree)
Definition: PageModuleCest.php:45
‪TYPO3\CMS\Core\Tests\Acceptance\Support\Helper\PageTree
Definition: PageTree.php:26