diff --git a/.circleci/config.yml b/.circleci/config.yml index 8a5e7bc78a..faba746390 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -65,7 +65,7 @@ jobs: environment: COMPOSER_CACHE_DIR: /home/circleci/composer/cache-dir docker: - - image: cimg/php:8.0-node + - image: cimg/php:8.2-node steps: - attach_workspace: *attach_workspace - run: chmod -R 777 /home/circleci @@ -81,8 +81,9 @@ jobs: e2e: environment: FLOW_CONTEXT: Production + DB_HOST: 127.0.0.1 docker: - - image: cimg/php:8.0-node + - image: cimg/php:8.2-node - image: cimg/mariadb:10.6 environment: MYSQL_DATABASE: neos @@ -113,6 +114,8 @@ jobs: cd /home/circleci/app/Packages/Application/Neos.Neos.Ui nvm install nvm use + echo 127.0.0.1 onedimension.localhost | sudo tee -a /etc/hosts + echo 127.0.0.1 twodimensions.localhost | sudo tee -a /etc/hosts make test-e2e-saucelabs - store_artifacts: path: /home/circleci/app/Data/Logs @@ -121,7 +124,7 @@ jobs: environment: FLOW_CONTEXT: Production docker: - - image: cimg/php:8.0-node + - image: cimg/php:8.2-node - image: cimg/mariadb:10.6 environment: MYSQL_DATABASE: neos diff --git a/Classes/ContentRepository/Service/WorkspaceService.php b/Classes/ContentRepository/Service/WorkspaceService.php index 2480a859e2..a66162966e 100644 --- a/Classes/ContentRepository/Service/WorkspaceService.php +++ b/Classes/ContentRepository/Service/WorkspaceService.php @@ -13,7 +13,7 @@ use Neos\ContentRepository\Core\ContentRepository; use Neos\ContentRepository\Core\Factory\ContentRepositoryId; -use Neos\ContentRepository\Core\Projection\ContentGraph\ContentSubgraphIdentity; +use Neos\ContentRepository\Core\Feature\WorkspacePublication\Command\DiscardIndividualNodesFromWorkspace; use Neos\ContentRepository\Core\Projection\ContentGraph\Node; use Neos\ContentRepository\Core\Projection\Workspace\Workspace; use Neos\Neos\FrontendRouting\NodeAddress; @@ -24,8 +24,8 @@ use Neos\Flow\Annotations as Flow; use Neos\Neos\Domain\Service\UserService as DomainUserService; use Neos\Neos\PendingChangesProjection\ChangeFinder; -use Neos\Neos\PendingChangesProjection\ChangeProjection; use Neos\Neos\Service\UserService; +use Neos\Neos\Ui\Domain\Model\Feedback\Operations\RemoveNode; /** * @Flow\Scope("singleton") @@ -155,6 +155,53 @@ public function getAllowedTargetWorkspaces(ContentRepository $contentRepository) return $workspacesArray; } + public function predictRemoveNodeFeedbackFromDiscardIndividualNodesFromWorkspaceCommand( + DiscardIndividualNodesFromWorkspace $command, + ContentRepository $contentRepository + ): array { + $workspace = $contentRepository->getWorkspaceFinder()->findOneByName($command->workspaceName); + if (is_null($workspace)) { + return Nodes::createEmpty(); + } + + $changeFinder = $contentRepository->projectionState(ChangeFinder::class); + $changes = $changeFinder->findByContentStreamId($workspace->currentContentStreamId); + + $handledNodes = []; + $result = []; + foreach ($changes as $change) { + if ($change->created) { + foreach ($command->nodesToDiscard as $nodeToDiscard) { + if (in_array($nodeToDiscard, $handledNodes)) { + continue; + } + + if ( + $nodeToDiscard->contentStreamId->equals($change->contentStreamId) + && $nodeToDiscard->nodeAggregateId->equals($change->nodeAggregateId) + && $nodeToDiscard->dimensionSpacePoint->equals($change->originDimensionSpacePoint) + ) { + $subgraph = $contentRepository->getContentGraph() + ->getSubgraph( + $nodeToDiscard->contentStreamId, + $nodeToDiscard->dimensionSpacePoint, + VisibilityConstraints::withoutRestrictions() + ); + + $childNode = $subgraph->findNodeById($nodeToDiscard->nodeAggregateId); + $parentNode = $subgraph->findParentNode($nodeToDiscard->nodeAggregateId); + if ($parentNode) { + $result[] = new RemoveNode($childNode, $parentNode); + $handledNodes[] = $nodeToDiscard; + } + } + } + } + } + + return $result; + } + private function getClosestDocumentNode(Node $node): ?Node { $subgraph = $this->contentRepositoryRegistry->subgraphForNode($node); diff --git a/Classes/Controller/BackendServiceController.php b/Classes/Controller/BackendServiceController.php index fa6be96d93..aa129095a9 100644 --- a/Classes/Controller/BackendServiceController.php +++ b/Classes/Controller/BackendServiceController.php @@ -294,18 +294,27 @@ public function discardAction(array $nodeContextPaths): void $nodeAddress->dimensionSpacePoint ); } - $contentRepository->handle( - DiscardIndividualNodesFromWorkspace::create( - $workspaceName, - NodeIdsToPublishOrDiscard::create(...$nodeIdentifiersToDiscard) - ) - )->block(); + + $command = DiscardIndividualNodesFromWorkspace::create( + $workspaceName, + NodeIdsToPublishOrDiscard::create(...$nodeIdentifiersToDiscard) + ); + $removeNodeFeedback = $this->workspaceService + ->predictRemoveNodeFeedbackFromDiscardIndividualNodesFromWorkspaceCommand( + $command, + $contentRepository + ); + + $contentRepository->handle($command)->block(); $success = new Success(); $success->setMessage(sprintf('Discarded %d node(s).', count($nodeContextPaths))); $updateWorkspaceInfo = new UpdateWorkspaceInfo($contentRepositoryId, $workspaceName); $this->feedbackCollection->add($success); + foreach ($removeNodeFeedback as $removeNode) { + $this->feedbackCollection->add($removeNode); + } $this->feedbackCollection->add($updateWorkspaceInfo); } catch (\Exception $e) { $error = new Error(); diff --git a/Classes/Domain/Model/ChangeInterface.php b/Classes/Domain/Model/ChangeInterface.php index 85ca3c0ba3..587d8941b4 100644 --- a/Classes/Domain/Model/ChangeInterface.php +++ b/Classes/Domain/Model/ChangeInterface.php @@ -13,7 +13,6 @@ * source code. */ - use Neos\ContentRepository\Core\Projection\ContentGraph\Node; /** diff --git a/Classes/Domain/Model/Changes/MoveAfter.php b/Classes/Domain/Model/Changes/MoveAfter.php index 4e5cd4d8de..beb8e275d9 100644 --- a/Classes/Domain/Model/Changes/MoveAfter.php +++ b/Classes/Domain/Model/Changes/MoveAfter.php @@ -88,9 +88,6 @@ public function apply(): void $updateParentNodeInfo->setNode($parentNodeOfPreviousSibling); $this->feedbackCollection->add($updateParentNodeInfo); - $removeNode = new RemoveNode($subject, $parentNodeOfPreviousSibling); - $this->feedbackCollection->add($removeNode); - $this->finish($subject); } } diff --git a/Classes/Domain/Model/Changes/MoveBefore.php b/Classes/Domain/Model/Changes/MoveBefore.php index 1c7ac8bcce..7b2d8285e9 100644 --- a/Classes/Domain/Model/Changes/MoveBefore.php +++ b/Classes/Domain/Model/Changes/MoveBefore.php @@ -87,9 +87,6 @@ public function apply(): void $this->feedbackCollection->add($updateParentNodeInfo); - $removeNode = new RemoveNode($subject, $succeedingSiblingParent); - $this->feedbackCollection->add($removeNode); - $this->finish($subject); } } diff --git a/Classes/Domain/Model/Changes/MoveInto.php b/Classes/Domain/Model/Changes/MoveInto.php index aa4697c26a..ebccb70c9e 100644 --- a/Classes/Domain/Model/Changes/MoveInto.php +++ b/Classes/Domain/Model/Changes/MoveInto.php @@ -93,9 +93,6 @@ public function apply(): void $updateParentNodeInfo->setNode($parentNode); $this->feedbackCollection->add($updateParentNodeInfo); - $removeNode = new RemoveNode($subject, $parentNode); - $this->feedbackCollection->add($removeNode); - $this->finish($subject); } } diff --git a/Classes/Domain/Model/Feedback/Operations/ReloadContentOutOfBand.php b/Classes/Domain/Model/Feedback/Operations/ReloadContentOutOfBand.php index 792fcd72f0..07a6108a3f 100644 --- a/Classes/Domain/Model/Feedback/Operations/ReloadContentOutOfBand.php +++ b/Classes/Domain/Model/Feedback/Operations/ReloadContentOutOfBand.php @@ -11,6 +11,7 @@ * source code. */ +use Neos\Neos\Domain\Service\RenderingModeService; use Neos\Neos\FrontendRouting\NodeAddressFactory; use Neos\ContentRepository\Core\Projection\ContentGraph\Node; use Neos\ContentRepositoryRegistry\ContentRepositoryRegistry; @@ -49,6 +50,9 @@ class ReloadContentOutOfBand extends AbstractFeedback */ protected $contentRepositoryRegistry; + #[Flow\Inject] + protected RenderingModeService $renderingModeService; + public function setNode(Node $node): void { $this->node = $node; @@ -131,8 +135,11 @@ protected function renderContent(ControllerContext $controllerContext): string|R } if ($this->nodeDomAddress) { + $renderingMode = $this->renderingModeService->findByCurrentUser(); + $fusionView = new FusionView(); $fusionView->setControllerContext($controllerContext); + $fusionView->setOption('renderingModeName', $renderingMode->name); $fusionView->assign('value', $this->node); $fusionView->setFusionPath($this->nodeDomAddress->getFusionPathForContentRendering()); diff --git a/Classes/Domain/Model/Feedback/Operations/RemoveNode.php b/Classes/Domain/Model/Feedback/Operations/RemoveNode.php index 389d35989b..f068c2ccba 100644 --- a/Classes/Domain/Model/Feedback/Operations/RemoveNode.php +++ b/Classes/Domain/Model/Feedback/Operations/RemoveNode.php @@ -14,6 +14,7 @@ use Neos\ContentRepositoryRegistry\ContentRepositoryRegistry; use Neos\Flow\Annotations as Flow; use Neos\Neos\FrontendRouting\NodeAddressFactory; +use Neos\Neos\FrontendRouting\NodeAddress; use Neos\ContentRepository\Core\Projection\ContentGraph\Node; use Neos\Flow\Mvc\Controller\ControllerContext; use Neos\Neos\Ui\Domain\Model\AbstractFeedback; @@ -25,6 +26,10 @@ class RemoveNode extends AbstractFeedback protected Node $parentNode; + private NodeAddress $nodeAddress; + + private NodeAddress $parentNodeAddress; + /** * @Flow\Inject * @var ContentRepositoryRegistry @@ -37,6 +42,15 @@ public function __construct(Node $node, Node $parentNode) $this->parentNode = $parentNode; } + protected function initializeObject(): void + { + $contentRepository = $this->contentRepositoryRegistry->get($this->node->subgraphIdentity->contentRepositoryId); + $nodeAddressFactory = NodeAddressFactory::create($contentRepository); + + $this->nodeAddress = $nodeAddressFactory->createFromNode($this->node); + $this->parentNodeAddress = $nodeAddressFactory->createFromNode($this->parentNode); + } + public function getNode(): Node { return $this->node; @@ -87,11 +101,9 @@ public function isSimilarTo(FeedbackInterface $feedback) */ public function serializePayload(ControllerContext $controllerContext) { - $contentRepository = $this->contentRepositoryRegistry->get($this->node->subgraphIdentity->contentRepositoryId); - $nodeAddressFactory = NodeAddressFactory::create($contentRepository); return [ - 'contextPath' => $nodeAddressFactory->createFromNode($this->node)->serializeForUri(), - 'parentContextPath' => $nodeAddressFactory->createFromNode($this->parentNode)->serializeForUri() + 'contextPath' => $this->nodeAddress->serializeForUri(), + 'parentContextPath' => $this->parentNodeAddress->serializeForUri() ]; } } diff --git a/Classes/Domain/Model/Feedback/Operations/RenderContentOutOfBand.php b/Classes/Domain/Model/Feedback/Operations/RenderContentOutOfBand.php index c3f9539372..409ad394e7 100644 --- a/Classes/Domain/Model/Feedback/Operations/RenderContentOutOfBand.php +++ b/Classes/Domain/Model/Feedback/Operations/RenderContentOutOfBand.php @@ -12,6 +12,7 @@ */ use Neos\ContentRepository\Core\Projection\ContentGraph\Node; +use Neos\Neos\Domain\Service\RenderingModeService; use Neos\Neos\FrontendRouting\NodeAddressFactory; use Neos\ContentRepositoryRegistry\ContentRepositoryRegistry; use Neos\Flow\Annotations as Flow; @@ -59,6 +60,9 @@ class RenderContentOutOfBand extends AbstractFeedback */ protected $contentRepositoryRegistry; + #[Flow\Inject] + protected RenderingModeService $renderingModeService; + public function setNode(Node $node): void { $this->node = $node; @@ -177,8 +181,11 @@ protected function renderContent(ControllerContext $controllerContext): string|R $parentDomAddress = $this->getParentDomAddress(); if ($parentDomAddress) { + $renderingMode = $this->renderingModeService->findByCurrentUser(); + $fusionView = new FusionView(); $fusionView->setControllerContext($controllerContext); + $fusionView->setOption('renderingModeName', $renderingMode->name); $fusionView->assign('value', $parentNode); $fusionView->setFusionPath($parentDomAddress->getFusionPath()); diff --git a/Makefile b/Makefile index 33b3f81881..013c46a2e7 100644 --- a/Makefile +++ b/Makefile @@ -112,6 +112,10 @@ test-e2e: bash Tests/IntegrationTests/e2e.sh chrome ## Executes integration tests locally in a docker-compose setup. +# +# Note: On mac os you might need those two additional `/etc/hosts` entries: +# 127.0.0.1 onedimension.localhost +# 127.0.0.1 twodimensions.localhost test-e2e-docker: build-e2e-testing @bash Tests/IntegrationTests/e2e-docker.sh $(or $(browser),chrome) diff --git a/Resources/Private/Fusion/Prototypes/Page.fusion b/Resources/Private/Fusion/Prototypes/Page.fusion index 61dedd0bc4..b07bb56216 100644 --- a/Resources/Private/Fusion/Prototypes/Page.fusion +++ b/Resources/Private/Fusion/Prototypes/Page.fusion @@ -19,7 +19,7 @@ prototype(Neos.Neos:Page) { @process.json = ${Json.stringify(value)} @process.wrapInJsObject = ${''} - @if.inBackend = ${Neos.Node.inBackend(documentNode)} + @if.inBackend = ${renderingMode.isEdit || renderingMode.isPreview} // We need to ensure the JS backend information is always up to date, especially // when child nodes change. Otherwise errors like the following might happen: @@ -35,11 +35,11 @@ prototype(Neos.Neos:Page) { entryIdentifier { jsBackendInfo = 'javascriptBackendInformation' documentNode = ${Neos.Caching.entryIdentifierForNode(documentNode)} - inBackend = ${Neos.Node.inBackend(documentNode)} + inBackend = ${renderingMode.isEdit || renderingMode.isPreview} } entryTags { 1 = ${Neos.Caching.nodeTag(documentNode)} - 2 = ${Neos.Node.inBackend(documentNode) ? Neos.Caching.descendantOfTag(documentNode) : null} + 2 = ${(renderingMode.isEdit || renderingMode.isPreview) ? Neos.Caching.descendantOfTag(documentNode) : null} } } } @@ -51,18 +51,18 @@ prototype(Neos.Neos:Page) { compiledResourcePackage = ${Neos.Ui.StaticResources.compiledResourcePackage()} sectionName = 'guestFrameApplication' - @if.inBackend = ${Neos.Node.inBackend(documentNode)} + @if.inBackend = ${renderingMode.isEdit || renderingMode.isPreview} } } neosBackendContainer = '
' neosBackendContainer.@position = 'before closingBodyTag' - neosBackendContainer.@if.inBackend = ${Neos.Node.inBackend(documentNode)} + neosBackendContainer.@if.inBackend = ${renderingMode.isEdit || renderingMode.isPreview} neosBackendNotification = Neos.Fusion:Template { @position = 'before closingBodyTag' templatePath = 'resource://Neos.Neos.Ui/Private/Templates/Backend/GuestNotificationScript.html' - @if.inBackend = ${Neos.Node.inBackend(documentNode)} + @if.inBackend = ${renderingMode.isEdit || renderingMode.isPreview} } @exceptionHandler = 'Neos\\Neos\\Ui\\Fusion\\ExceptionHandler\\PageExceptionHandler' diff --git a/Resources/Private/Fusion/Prototypes/Shortcut.fusion b/Resources/Private/Fusion/Prototypes/Shortcut.fusion index 69f3a7ea29..23d36fe282 100644 --- a/Resources/Private/Fusion/Prototypes/Shortcut.fusion +++ b/Resources/Private/Fusion/Prototypes/Shortcut.fusion @@ -9,7 +9,7 @@ prototype(Neos.Neos:Page) { } @if { - inBackend = ${Neos.Node.inBackend(documentNode)} + inBackend = ${renderingMode.isEdit || renderingMode.isPreview} isShortcut = ${q(node).is('[instanceof Neos.Neos:Shortcut]')} } } diff --git a/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Configuration/Settings.yaml b/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Configuration/Settings.yaml deleted file mode 100644 index c3fcfc6093..0000000000 --- a/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Configuration/Settings.yaml +++ /dev/null @@ -1,46 +0,0 @@ -Neos: - ContentRepository: - contentDimensions: - language: - label: 'Language' - icon: icon-language - default: en_US - defaultPreset: en_US - presets: - en_US: - label: 'English (US)' - values: - - en_US - uriSegment: en - en_UK: - label: 'English (UK)' - values: - - en_UK - - en_US - uriSegment: uk - de: - label: German - values: - - de - uriSegment: de - fr: - label: French - values: - - fr - uriSegment: fr - nl: - label: Dutch - values: - - nl - - de - uriSegment: nl - da: - label: Danish - values: - - da - uriSegment: da - lv: - label: Latvian - values: - - lv - uriSegment: lv diff --git a/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Resources/Private/Content/Resources/6791d1beca5fa4ab78f1b2b1a44d43692f99b5dc b/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Resources/Private/Content/Resources/6791d1beca5fa4ab78f1b2b1a44d43692f99b5dc deleted file mode 100644 index 49b2fb4403..0000000000 Binary files a/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Resources/Private/Content/Resources/6791d1beca5fa4ab78f1b2b1a44d43692f99b5dc and /dev/null differ diff --git a/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Resources/Private/Content/Sites.xml b/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Resources/Private/Content/Sites.xml deleted file mode 100644 index 06d505de63..0000000000 --- a/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Resources/Private/Content/Sites.xml +++ /dev/null @@ -1,680 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tests/IntegrationTests/Fixtures/1Dimension/discarding.e2e.js b/Tests/IntegrationTests/Fixtures/1Dimension/discarding.e2e.js index ec99d3640c..40aa73ad75 100644 --- a/Tests/IntegrationTests/Fixtures/1Dimension/discarding.e2e.js +++ b/Tests/IntegrationTests/Fixtures/1Dimension/discarding.e2e.js @@ -38,7 +38,7 @@ test('Discarding: create multiple nodes nested within each other and then discar .expect(ReactSelector('Provider').getReact(({props}) => { const reduxState = props.store.getState(); return reduxState.cr.nodes.documentNode; - })).eql('/sites/neos-test-site@user-admin;language=en_US', 'After discarding we are back to the main page'); + })).eql('user-admin__eyJsYW5ndWFnZSI6ImVuX1VTIn0=__f676459d-ca77-44bc-aeea-44114814c279', 'After discarding we are back to the main page'); }); test('Discarding: create a document node and then discard it', async t => { diff --git a/Tests/IntegrationTests/Fixtures/1Dimension/treeMultiselect.e2e.js b/Tests/IntegrationTests/Fixtures/1Dimension/treeMultiselect.e2e.js index 2714737440..885bfd3c00 100644 --- a/Tests/IntegrationTests/Fixtures/1Dimension/treeMultiselect.e2e.js +++ b/Tests/IntegrationTests/Fixtures/1Dimension/treeMultiselect.e2e.js @@ -26,7 +26,7 @@ test('Move multiple nodes via toolbar', async t => { .expect(ReactSelector('Provider').getReact(({props}) => { const reduxState = props.store.getState(); return reduxState.cr.nodes.documentNode; - })).eql('/sites/neos-test-site/node-knm2pltb5454z/node-18qsaeidy6765/node-e8tw6sparbtp3@user-admin;language=en_US', 'Node B\'s context path changed'); + })).eql('user-admin__eyJsYW5ndWFnZSI6ImVuX1VTIn0=__5b0d6ac0-40ab-47e8-b79e-39de6c0700df', 'Node B\'s node address changed'); await t.click(Page.getTreeNodeButton('Home')) }); @@ -43,7 +43,7 @@ test('Move multiple nodes via DND, CMD-click', async t => { .expect(ReactSelector('Provider').getReact(({props}) => { const reduxState = props.store.getState(); return reduxState.cr.nodes.documentNode; - })).eql('/sites/neos-test-site/node-knm2pltb5454z/node-18qsaeidy6765/node-e8tw6sparbtp3@user-admin;language=en_US', 'Node B\'s context path changed'); + })).eql('user-admin__eyJsYW5ndWFnZSI6ImVuX1VTIn0=__5b0d6ac0-40ab-47e8-b79e-39de6c0700df', 'Node B\'s node address changed'); await t.click(Page.getTreeNodeButton('Home')) }); @@ -60,6 +60,6 @@ test('Move multiple nodes via DND, SHIFT-click', async t => { .expect(ReactSelector('Provider').getReact(({props}) => { const reduxState = props.store.getState(); return reduxState.cr.nodes.documentNode; - })).eql('/sites/neos-test-site/node-knm2pltb5454z/node-18qsaeidy6765/node-oml0cxaompt29@user-admin;language=en_US', 'Node C\'s context path changed'); + })).eql('user-admin__eyJsYW5ndWFnZSI6ImVuX1VTIn0=__84eb0340-ba34-4fdb-98b1-da503f967121', 'Node C\'s node address changed'); await t.click(Page.getTreeNodeButton('Home')) }); diff --git a/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Configuration/Settings.yaml b/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Configuration/Settings.yaml deleted file mode 100644 index 4881edaed5..0000000000 --- a/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Configuration/Settings.yaml +++ /dev/null @@ -1,103 +0,0 @@ -Neos: - ContentRepository: - contentDimensions: - 'country': - default: 'deu' - defaultPreset: 'deu' - label: 'Country' - icon: 'icon-globe' - presets: - 'deu': - label: 'Germany' - values: ['deu'] - uriSegment: 'deu' - 'aut': - label: 'Austria' - values: ['aut', 'deu'] - uriSegment: 'aut' - 'lux': - label: 'Luxembourg' - values: ['lux', 'deu'] - uriSegment: 'lux' - 'dnk': - label: 'Denmark' - values: ['dnk'] - uriSegment: 'dnk' - 'language': - label: 'Language' - icon: icon-language - default: en_US - defaultPreset: en_US - presets: - en_US: - label: 'English (US)' - values: - - en_US - uriSegment: en - constraints: - country: - '*': false - 'deu': true - 'aut': true - en_UK: - label: 'English (UK)' - values: - - en_UK - - en_US - uriSegment: uk - constraints: - country: - '*': false - 'deu': true - 'aut': true - de: - label: German - values: - - de - uriSegment: de - constraints: - country: - '*': false - 'deu': true - 'aut': true - 'lux': true - fr: - label: French - values: - - fr - uriSegment: fr - constraints: - country: - '*': false - 'deu': true - 'aut': true - nl: - label: Dutch - values: - - nl - - de - uriSegment: nl - constraints: - country: - '*': false - 'deu': true - 'aut': true - da: - label: Danish - values: - - da - uriSegment: da - constraints: - country: - '*': false - 'dnk': true - lv: - label: Latvian - values: - - lv - uriSegment: lv - constraints: - country: - '*': false - 'deu': true - 'aut': true diff --git a/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Resources/Private/Content/Resources/6791d1beca5fa4ab78f1b2b1a44d43692f99b5dc b/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Resources/Private/Content/Resources/6791d1beca5fa4ab78f1b2b1a44d43692f99b5dc deleted file mode 100644 index 49b2fb4403..0000000000 Binary files a/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Resources/Private/Content/Resources/6791d1beca5fa4ab78f1b2b1a44d43692f99b5dc and /dev/null differ diff --git a/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Resources/Private/Content/Sites.xml b/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Resources/Private/Content/Sites.xml deleted file mode 100644 index 36d80113ab..0000000000 --- a/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Resources/Private/Content/Sites.xml +++ /dev/null @@ -1,315 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tests/IntegrationTests/Fixtures/2Dimension/switchingDimensions.e2e.js b/Tests/IntegrationTests/Fixtures/2Dimension/switchingDimensions.e2e.js index 8c3e6abcb3..bd9b4e4c26 100644 --- a/Tests/IntegrationTests/Fixtures/2Dimension/switchingDimensions.e2e.js +++ b/Tests/IntegrationTests/Fixtures/2Dimension/switchingDimensions.e2e.js @@ -1,14 +1,19 @@ -import {beforeEach, subSection, checkPropTypes} from './../../utils'; +import {subSection, checkPropTypes, getUrl, adminUserOnTwoDimensionsTestSite} from './../../utils'; import {Selector} from 'testcafe'; -import {ReactSelector} from 'testcafe-react-selectors'; +import {ReactSelector, waitForReact} from 'testcafe-react-selectors'; import { - Page + Page, PublishDropDown } from './../../pageModel'; /* global fixture:true */ fixture`Switching dimensions` - .beforeEach(beforeEach) + .beforeEach(async t => { + await t.useRole(adminUserOnTwoDimensionsTestSite); + await waitForReact(30000); + await PublishDropDown.discardAll(); + await Page.goToPage('Home'); + }) .afterEach(() => checkPropTypes()); test('Switching dimensions', async t => { diff --git a/Tests/IntegrationTests/Fixtures/2Dimension/switchingSites.e2e.js b/Tests/IntegrationTests/Fixtures/2Dimension/switchingSites.e2e.js new file mode 100644 index 0000000000..90ad6bf98b --- /dev/null +++ b/Tests/IntegrationTests/Fixtures/2Dimension/switchingSites.e2e.js @@ -0,0 +1,59 @@ +import {subSection, checkPropTypes, getUrl, adminUserOnOneDimensionTestSite} from './../../utils'; +import {Selector} from 'testcafe'; +import {waitForReact} from 'testcafe-react-selectors'; +import {Page} from './../../pageModel'; + +/* global fixture:true */ + +fixture`Switching sites` + .afterEach(() => checkPropTypes()); + +test('Switching from Neos.Test.OneDimension to Neos.Test.TwoDimensions and back', async t => { + subSection('Log in @ Neos.Test.OneDimension'); + await t.navigateTo('http://onedimension.localhost:8081/neos'); + await t + .typeText('#username', 'admin') + .typeText('#password', 'password') + .click('button.neos-login-btn'); + await waitForReact(30000); + await Page.goToPage('Home'); + + subSection('Switch to Neos.Test.TwoDimensions via main menu'); + await t.click(Selector('#neos-MenuToggler')); + await t.click(Selector('[href*="twodimensions"]')); + + await t.expect(getUrl()).contains('twodimensions.localhost', 'Switch to Neos.Test.TwoDimensions was successful'); + + subSection('Switch back to Neos.Test.OneDimension via main menu'); + await waitForReact(30000); + await Page.goToPage('Home'); + await t.click(Selector('#neos-MenuToggler')); + await t.click(Selector('[href*="onedimension"]')); + + await t.expect(getUrl()).contains('onedimension.localhost', 'Switch to Neos.Test.OneDimension was successful'); +}); + +test('Switching from Neos.Test.TwoDimensions to Neos.Test.OneDimension and back', async t => { + subSection('Log in @ Neos.Test.TwoDimensions'); + await t.navigateTo('http://twodimensions.localhost:8081/neos'); + await t + .typeText('#username', 'admin') + .typeText('#password', 'password') + .click('button.neos-login-btn'); + await waitForReact(30000); + await Page.goToPage('Home'); + + subSection('Switch to Neos.Test.OneDimension via main menu'); + await t.click(Selector('#neos-MenuToggler')); + await t.click(Selector('[href*="onedimension"]')); + + await t.expect(getUrl()).contains('onedimension.localhost', 'Switch to Neos.Test.OneDimension was successful'); + + subSection('Switch back to Neos.Test.TwoDimensions via main menu'); + await waitForReact(30000); + await Page.goToPage('Home'); + await t.click(Selector('#neos-MenuToggler')); + await t.click(Selector('[href*="twodimensions"]')); + + await t.expect(getUrl()).contains('twodimensions.localhost', 'Switch to Neos.Test.TwoDimensions was successful'); +}); diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/composer.json b/Tests/IntegrationTests/SharedNodeTypesPackage/composer.json deleted file mode 100644 index e0af4bd7c2..0000000000 --- a/Tests/IntegrationTests/SharedNodeTypesPackage/composer.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "neos/test-nodetypes", - "description": "Some dummy nodetypes", - "type": "neos-package", - "require": { - "neos/neos": "*", - "neos/neos-ui": "*" - }, - "extra": { - "neos": { - "package-key": "Neos.TestNodeTypes" - } - }, - "autoload": { - "psr-4": { - "Neos\\TestNodeTypes\\": "Classes" - } - } -} diff --git a/Tests/IntegrationTests/TestDistribution/Configuration/Settings.yaml b/Tests/IntegrationTests/TestDistribution/Configuration/Settings.yaml index 3e4d93c451..1d980f3a28 100644 --- a/Tests/IntegrationTests/TestDistribution/Configuration/Settings.yaml +++ b/Tests/IntegrationTests/TestDistribution/Configuration/Settings.yaml @@ -7,12 +7,21 @@ Neos: driver: pdo_mysql dbname: neos user: root - host: 127.0.0.1 + host: '%env(string):DB_HOST%' password: not_a_real_password reflection: ignoredTags: template: true psalm: true + + # TODO remove this temporary hack once neos is fixed. + object: + includeClasses: + "Neos.ContentRepository.TestSuite": + - "(*FAIL)" + "Neos.ContentRepositoryRegistry": + - "Neos\\\\ContentRepositoryRegistry\\\\(?!TestSuite\\\\Behavior\\\\CRRegistrySubjectProvider)" + Neos: Ui: frontendDevelopmentMode: true diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Configuration/Settings.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Configuration/Settings.yaml new file mode 100644 index 0000000000..6bbebddb15 --- /dev/null +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Configuration/Settings.yaml @@ -0,0 +1,32 @@ +Neos: + ContentRepositoryRegistry: + contentRepositories: + onedimension: + preset: default + contentDimensions: + language: + label: 'Language' + values: + 'en_US': + label: English (US) + specializations: + 'en_UK': + label: English (UK) + 'de': + label: German + specializations: + 'nl': + label: Dutch + 'fr': + label: French + 'da': + label: Danish + 'lv': + label: Latvian + Neos: + sites: + 'neos-test-onedimension': + contentRepository: 'onedimension' + contentDimensions: + resolver: + factoryClassName: Neos\Neos\FrontendRouting\DimensionResolution\Resolver\AutoUriPathResolverFactory diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/Assets/ee3d239e-48b0-4f99-90be-054301b91792.json b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/Assets/ee3d239e-48b0-4f99-90be-054301b91792.json new file mode 100644 index 0000000000..e5d089b54b --- /dev/null +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/Assets/ee3d239e-48b0-4f99-90be-054301b91792.json @@ -0,0 +1,14 @@ +{ + "identifier": "ee3d239e-48b0-4f99-90be-054301b91792", + "type": "IMAGE", + "title": "", + "copyrightNotice": "", + "caption": "", + "assetSourceIdentifier": "neos", + "resource": { + "filename": "neos_primary.png", + "collectionName": "persistent", + "mediaType": "image\/png", + "sha1": "aac28f51e5ca842e2646e88e7d242ac3c27e1f25" + } +} \ No newline at end of file diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/ImageVariants/50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1.json b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/ImageVariants/50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1.json new file mode 100644 index 0000000000..af47865fee --- /dev/null +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/ImageVariants/50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1.json @@ -0,0 +1,20 @@ +{ + "identifier": "50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1", + "originalAssetIdentifier": "ee3d239e-48b0-4f99-90be-054301b91792", + "name": "", + "width": 126, + "height": 126, + "presetIdentifier": null, + "presetVariantName": null, + "imageAdjustments": [ + { + "type": "CROP_IMAGE", + "properties": { + "x": 328, + "y": 0, + "width": 126, + "height": 126 + } + } + ] +} \ No newline at end of file diff --git a/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Resources/Private/Content/Resources/aac28f51e5ca842e2646e88e7d242ac3c27e1f25 b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/Resources/aac28f51e5ca842e2646e88e7d242ac3c27e1f25 similarity index 100% rename from Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/Resources/Private/Content/Resources/aac28f51e5ca842e2646e88e7d242ac3c27e1f25 rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/Resources/aac28f51e5ca842e2646e88e7d242ac3c27e1f25 diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/events.jsonl b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/events.jsonl new file mode 100644 index 0000000000..89cd67b6e6 --- /dev/null +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content/events.jsonl @@ -0,0 +1,59 @@ +{"identifier":"d08644be-70fd-4f47-9078-f676bbe13544","type":"ContentStreamWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8"},"metadata":[]} +{"identifier":"152f7ffe-b2a5-4237-beab-c4db9fa15587","type":"RootNodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"2fdbb3ea-1270-49bc-8f8b-cbfc563ef9a6","nodeTypeName":"Neos.Neos:Sites","coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"},{"language":"de"},{"language":"nl"},{"language":"fr"},{"language":"da"},{"language":"lv"}],"nodeAggregateClassification":"root"},"metadata":[]} +{"identifier":"c977a059-ba63-4132-a190-baa6ced4f614","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"fr"},"coveredDimensionSpacePoints":[{"language":"fr"}],"parentNodeAggregateId":"2fdbb3ea-1270-49bc-8f8b-cbfc563ef9a6","nodeName":"neos-test-onedimension","initialPropertyValues":{"title":{"value":"Accueil","type":"string"},"uriPathSegment":{"value":"home","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"7e1e6a07-b80f-4cad-8fe6-519d34b86cad","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"language":"fr"},"peerOrigin":{"language":"en_UK"},"peerCoverage":[{"language":"en_UK"}]},"metadata":[]} +{"identifier":"37c01008-80f0-4252-8ff5-d44154cec8e7","type":"NodePropertiesWereSet","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"language":"en_UK"},"affectedDimensionSpacePoints":[{"language":"en_UK"}],"propertyValues":{"title":{"value":"Home","type":"string"},"uriPathSegment":{"value":"home","type":"string"},"image":{"value":{"__flow_object_type":"Neos\\Media\\Domain\\Model\\ImageVariant","__identifier":"50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1"},"type":"Neos\\Media\\Domain\\Model\\ImageInterface"}}},"metadata":[]} +{"identifier":"c30068ba-258b-4393-b0de-aaf37d43fe69","type":"NodeGeneralizationVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"language":"en_UK"},"generalizationOrigin":{"language":"en_US"},"generalizationCoverage":[{"language":"en_US"}]},"metadata":[]} +{"identifier":"6a8125af-fcfa-45e3-8b23-bb99ae36e33e","type":"NodePropertiesWereSet","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"language":"en_US"},"affectedDimensionSpacePoints":[{"language":"en_US"}],"propertyValues":{"title":{"value":"Home","type":"string"},"uriPathSegment":{"value":"home","type":"string"},"image":{"value":{"__flow_object_type":"Neos\\Media\\Domain\\Model\\ImageVariant","__identifier":"50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1"},"type":"Neos\\Media\\Domain\\Model\\ImageInterface"}}},"metadata":[]} +{"identifier":"8d7b8db3-9f48-494c-b7c7-5e94a830e7be","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"language":"en_US"},"peerOrigin":{"language":"da"},"peerCoverage":[{"language":"da"}]},"metadata":[]} +{"identifier":"ca5803cb-c243-48f9-9670-bf7deef64622","type":"NodePropertiesWereSet","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"language":"da"},"affectedDimensionSpacePoints":[{"language":"da"}],"propertyValues":{"title":{"value":"Hjem","type":"string"},"uriPathSegment":{"value":"home","type":"string"}}},"metadata":[]} +{"identifier":"425419f2-c507-4f84-acac-bae008eb4c01","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"language":"da"},"peerOrigin":{"language":"lv"},"peerCoverage":[{"language":"lv"}]},"metadata":[]} +{"identifier":"51c5ceca-360f-45b4-b6fb-b6aa8ed8c2ff","type":"NodePropertiesWereSet","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"language":"lv"},"affectedDimensionSpacePoints":[{"language":"lv"}],"propertyValues":{"title":{"value":"M\u0101jas","type":"string"},"uriPathSegment":{"value":"home","type":"string"}}},"metadata":[]} +{"identifier":"76ebb9af-137f-4da1-8ba3-3db36815819f","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"language":"lv"},"peerOrigin":{"language":"nl"},"peerCoverage":[{"language":"nl"}]},"metadata":[]} +{"identifier":"91744471-1590-4b7d-8907-749bf5d80a2c","type":"NodePropertiesWereSet","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"language":"nl"},"affectedDimensionSpacePoints":[{"language":"nl"}],"propertyValues":{"title":{"value":"Huis","type":"string"},"uriPathSegment":{"value":"home","type":"string"}}},"metadata":[]} +{"identifier":"899ef4e2-d6ab-4794-a24c-0ef2152d2bd5","type":"NodeGeneralizationVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"language":"nl"},"generalizationOrigin":{"language":"de"},"generalizationCoverage":[{"language":"de"}]},"metadata":[]} +{"identifier":"ed48a226-9ea5-4439-bd3c-db8491649512","type":"NodePropertiesWereSet","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"language":"de"},"affectedDimensionSpacePoints":[{"language":"de"}],"propertyValues":{"title":{"value":"Startseite","type":"string"},"uriPathSegment":{"value":"home","type":"string"}}},"metadata":[]} +{"identifier":"297537f3-8ef7-408c-bf86-aed3f36e3dc9","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"64cdaa71-bdb1-4a07-a661-bb1787b8d077","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"language":"en_US"},"peerOrigin":{"language":"de"},"peerCoverage":[{"language":"de"},{"language":"nl"}]},"metadata":[]} +{"identifier":"c0b3f4e5-c3ff-4430-a906-a1f564fe1fd8","type":"NodeSpecializationVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"language":"en_US"},"specializationOrigin":{"language":"en_UK"},"specializationCoverage":[{"language":"en_UK"}]},"metadata":[]} +{"identifier":"4414f130-d8fc-422c-b304-708c8fec2777","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"language":"en_UK"},"peerOrigin":{"language":"da"},"peerCoverage":[{"language":"da"}]},"metadata":[]} +{"identifier":"3bd5280c-f131-4401-bcb0-3dd09ce3bef9","type":"NodeSpecializationVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"language":"de"},"specializationOrigin":{"language":"nl"},"specializationCoverage":[{"language":"nl"}]},"metadata":[]} +{"identifier":"4ffc3cc4-f657-4273-be53-88f4f74d3c62","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"language":"nl"},"peerOrigin":{"language":"lv"},"peerCoverage":[{"language":"lv"}]},"metadata":[]} +{"identifier":"fec825fe-47ab-4db7-8dcb-608c8530e74c","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"language":"lv"},"peerOrigin":{"language":"fr"},"peerCoverage":[{"language":"fr"}]},"metadata":[]} +{"identifier":"74255fc9-675a-4a7d-8d67-1e03cd9d4037","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"ce9e7dd2-2f7e-4cd7-94dc-e2dbd5bdec73","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeName":"node-g1gxvdbn8vq07","initialPropertyValues":{"uriPathSegment":{"value":"tree-search","type":"string"},"title":{"value":"Tree search","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"f0acc011-ec4f-42fc-b6ec-fde3f5f5581d","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"000b42ff-c9d3-4b5e-b6de-56d35832dc0e","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeName":"node-0t1w0st5k6ffr","initialPropertyValues":{"uriPathSegment":{"value":"create-new-nodes","type":"string"},"title":{"value":"Create new nodes","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"766f6f5c-700b-4698-8894-8f6b25c7160b","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"5d9a965c-884b-41af-9f21-ae305c2af2af","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeName":"node-8apiz7zen1sig","initialPropertyValues":{"uriPathSegment":{"value":"discarding","type":"string"},"title":{"value":"Discarding","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"5a8a66d2-15b1-4137-8ce7-8bb76a27fc20","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"af9db7c2-3cf0-4091-978e-1a0f81766242","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeName":"node-w0p249o10vma4","initialPropertyValues":{"uriPathSegment":{"value":"switching-dimensions","type":"string"},"title":{"value":"Switching dimensions","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"a49501ec-91bc-4172-a3a6-1e81daf81700","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f25d1518-60c2-4842-b2b0-bbd449697e77","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeName":"node-xel5da127kla5","initialPropertyValues":{"uriPathSegment":{"value":"select-boxes","type":"string"},"title":{"value":"Select Boxes","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"1b83da25-010b-447e-b621-b145eaa1c5cc","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"4fbd958a-3b24-4001-8342-5ceaf0750ffb","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeName":"node-knm2pltb5454z","initialPropertyValues":{"uriPathSegment":{"value":"tree-multiselect","type":"string"},"title":{"value":"Tree multiselect","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"866cec45-ae52-41f2-877e-3e533c0fc534","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"53c72be8-befb-409f-b2b6-ad54b68cbe05","nodeTypeName":"Neos.TestNodeTypes:Content.Headline","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","nodeName":"node-chdxek8m9mgp8","initialPropertyValues":{"title":{"value":"Content node to delete","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"9a11d10c-c3b6-41b7-9955-a66641b6e09a","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"d995d0af-2716-cbf0-a9a0-4547c87980d1","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"000b42ff-c9d3-4b5e-b6de-56d35832dc0e","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"2d239a21-4201-4b9c-9ddd-cd5fa936c650","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"edee62d3-4561-4c0c-bce0-41324b0df5db","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"000b42ff-c9d3-4b5e-b6de-56d35832dc0e","nodeName":"node-32bltfl4ugqi1","initialPropertyValues":{"uriPathSegment":{"value":"link-target","type":"string"},"title":{"value":"Link target","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"80f77eb0-d2d9-4d1b-8f27-7d8167426fcd","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"794b2be9-805d-fe98-e173-ee015811d3fc","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"edee62d3-4561-4c0c-bce0-41324b0df5db","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"6c9ed736-f124-43d9-a897-1d73abf279ec","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"9344756a-a5d1-9de0-0627-a701b27e62bf","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"5d9a965c-884b-41af-9f21-ae305c2af2af","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"26f906ac-12bd-4807-999a-f4f228c93a81","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"6c66e888-70ba-4e6c-838d-a13b642505ac","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"5d9a965c-884b-41af-9f21-ae305c2af2af","nodeName":"node-bezmi9v7mq8gm","initialPropertyValues":{"uriPathSegment":{"value":"node-to-delete","type":"string"},"title":{"value":"Node to delete","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"d3569ac5-f207-4559-864e-0ba01eed6382","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"868eb7da-ab60-15ef-2dc0-472dd8c346cd","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"6c66e888-70ba-4e6c-838d-a13b642505ac","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"21642ec4-9e43-49ac-bd71-a27b44e2813b","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f4be0477-85ad-4e7b-bc6d-b4f8d5da448c","nodeTypeName":"Neos.TestNodeTypes:Content.Headline","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"868eb7da-ab60-15ef-2dc0-472dd8c346cd","nodeName":"node-1jek82tofuzch","initialPropertyValues":{"title":{"value":"

I'll be deleted<\/h1>","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"0a3ae1e5-cd04-40f6-8c19-5aec91064320","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"487ef58b-7d6d-9e3f-b6ee-3552784ac0eb","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"ce9e7dd2-2f7e-4cd7-94dc-e2dbd5bdec73","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"c467d473-c42c-418f-9b42-9a04502e180a","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"ae7baddc-656a-4e57-9886-17d8783dae65","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"ce9e7dd2-2f7e-4cd7-94dc-e2dbd5bdec73","nodeName":"node-r6au40dkxh5k6","initialPropertyValues":{"uriPathSegment":{"value":"not-searched-page","type":"string"},"title":{"value":"Not searched page","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"a6969708-7689-42e9-ab39-eb869fd7891a","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"ecb3c490-e4ce-450b-ba59-584615d3ef81","nodeTypeName":"Neos.Neos:Shortcut","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"ce9e7dd2-2f7e-4cd7-94dc-e2dbd5bdec73","nodeName":"node-2oekw9xt2aqzh","initialPropertyValues":{"uriPathSegment":{"value":"not-searched-shortcut","type":"string"},"targetMode":{"value":"firstChildNode","type":"string"},"title":{"value":"Not searched shortcut","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"75190929-8ead-4d22-9e4c-57f9b5f52c5e","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"18b037dc-c06c-4d96-a991-893256a32e89","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"ce9e7dd2-2f7e-4cd7-94dc-e2dbd5bdec73","nodeName":"node-a8hbzgg4vij8o","initialPropertyValues":{"uriPathSegment":{"value":"searchme-page","type":"string"},"title":{"value":"Searchme page","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"d8bcef2d-d054-44ae-9c92-a56070954add","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"5a056a16-1bd6-4fca-b586-108e2130d55a","nodeTypeName":"Neos.Neos:Shortcut","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"ce9e7dd2-2f7e-4cd7-94dc-e2dbd5bdec73","nodeName":"node-2as0mtmis37be","initialPropertyValues":{"uriPathSegment":{"value":"searchme-shortcut","type":"string"},"targetMode":{"value":"firstChildNode","type":"string"},"title":{"value":"Searchme shortcut","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"1078453a-67a7-40b7-abde-6d4fa1e3ce85","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"eb217a26-d864-d456-822d-7476cef3e215","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"18b037dc-c06c-4d96-a991-893256a32e89","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"47f38ec7-69dc-4ab9-937c-b58b2450ffe5","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"e22df8b3-cc42-b6a1-184a-7778d1bf2750","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"ae7baddc-656a-4e57-9886-17d8783dae65","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"61ebdba4-8097-43be-910d-f44e809e1111","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"74263f87-2e7c-c916-c122-6a6cf4704f22","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"4fbd958a-3b24-4001-8342-5ceaf0750ffb","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"ddfa4633-add1-4bb4-86be-033cfd7fce84","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"1efe592f-2e2f-4737-b212-bbb42626e848","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"4fbd958a-3b24-4001-8342-5ceaf0750ffb","nodeName":"node-18qsaeidy6765","initialPropertyValues":{"uriPathSegment":{"value":"a","type":"string"},"title":{"value":"MultiA","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"7d859cb6-bb96-481b-999c-1f0e0f1914c1","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"5b0d6ac0-40ab-47e8-b79e-39de6c0700df","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"4fbd958a-3b24-4001-8342-5ceaf0750ffb","nodeName":"node-e8tw6sparbtp3","initialPropertyValues":{"uriPathSegment":{"value":"b","type":"string"},"title":{"value":"MultiB","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"7039e6be-dea2-48bb-abc6-605fdb7be762","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"84eb0340-ba34-4fdb-98b1-da503f967121","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"4fbd958a-3b24-4001-8342-5ceaf0750ffb","nodeName":"node-oml0cxaompt29","initialPropertyValues":{"uriPathSegment":{"value":"c","type":"string"},"title":{"value":"MultiC","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"30c8c801-884e-46f1-890c-8c9ee331300b","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f6bf1a78-9e2b-45ba-887c-9b7e43890a44","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"4fbd958a-3b24-4001-8342-5ceaf0750ffb","nodeName":"node-szu9u5yzpleck","initialPropertyValues":{"uriPathSegment":{"value":"d","type":"string"},"title":{"value":"MultiD","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"434cc297-b87c-43a9-b3c8-125a4147b8af","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"41dbc005-0327-8a86-0f98-8531112577b8","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"1efe592f-2e2f-4737-b212-bbb42626e848","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"2fab7955-21fe-421d-9809-64e21ca6c5b9","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"2969680f-75ff-13b6-efbd-f5a01fbb73e5","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"5b0d6ac0-40ab-47e8-b79e-39de6c0700df","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"a061f2ae-6fdd-49a4-ae2c-3f6e9ba57fdc","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"2ff43bf3-a953-d69d-0103-3ce80568e642","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"84eb0340-ba34-4fdb-98b1-da503f967121","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"7345ce26-df70-45c9-b464-f1d6c6d86959","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"f59c6680-06a4-4bc5-e563-9605bd4add99","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"f6bf1a78-9e2b-45ba-887c-9b7e43890a44","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"afb6efc4-7688-4d2a-a0e1-7c9ac53616ec","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"e91e184f-eb71-4b54-90dc-e8d8dd997f51","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"af9db7c2-3cf0-4091-978e-1a0f81766242","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"d483b7ad-1cc0-47e1-b70c-93906c060ae3","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"45270070-0d7c-4a89-90a8-a43ef454edf1","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"af9db7c2-3cf0-4091-978e-1a0f81766242","nodeName":"node-8ws6hkn4o36q1","initialPropertyValues":{"uriPathSegment":{"value":"translated-page","type":"string"},"title":{"value":"Translated page","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"9f60f1f3-b053-4854-9a04-8569b00f7649","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"555c9f80-7682-4916-a4c3-851ab5ea0559","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"af9db7c2-3cf0-4091-978e-1a0f81766242","nodeName":"node-f8e3ze7jvbxkl","initialPropertyValues":{"uriPathSegment":{"value":"untranslated-page","type":"string"},"title":{"value":"Untranslated page","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"01b8a28e-a2ed-4f8f-bad9-1354965a2d8c","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"d1d3bfdc-ce6a-cf2e-4eeb-02c11bbe87f4","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"45270070-0d7c-4a89-90a8-a43ef454edf1","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"c43fa247-68c4-4dd9-88f3-15e169680bfc","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"a54789f4-26df-de1d-c5dc-18a15556b40b","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"555c9f80-7682-4916-a4c3-851ab5ea0559","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"a30c607a-8767-44c7-b2a6-3d0b97bd478c","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"1fd64db3-c35f-4604-ad25-de0ef6d2bb32","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"f25d1518-60c2-4842-b2b0-bbd449697e77","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"c4a26082-8fac-4f7b-bad8-d07bfa68e9dd","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"7ebcc393-4120-4d29-a0d8-8bc708ecb3f8","nodeAggregateId":"3938292e-bf62-472a-a701-baf6e9ff395f","nodeTypeName":"Neos.TestNodeTypes:Document.SelectBoxTestPage.OpensAboveInInspector","originDimensionSpacePoint":{"language":"en_US"},"coveredDimensionSpacePoints":[{"language":"en_US"},{"language":"en_UK"}],"parentNodeAggregateId":"f25d1518-60c2-4842-b2b0-bbd449697e77","nodeName":"node-hg78tr7bvmmn4r","initialPropertyValues":{"uriPathSegment":{"value":"select-box-opens-above-in-inspector","type":"string"},"title":{"value":"SelectBox opens above in Inspector","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} diff --git a/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/composer.json b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/composer.json similarity index 56% rename from Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/composer.json rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/composer.json index fa7065d535..9e82c50165 100644 --- a/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/composer.json +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.OneDimension/composer.json @@ -1,6 +1,6 @@ { - "name": "neos/test-site", - "description": "A Neos website", + "name": "neos/test-onedimension", + "description": "A Neos website with one dimension", "type": "neos-site", "require": { "neos/neos": "*", @@ -9,7 +9,7 @@ }, "extra": { "neos": { - "package-key": "Neos.TestSite" + "package-key": "Neos.Test.OneDimension" } } } diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Configuration/Settings.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Configuration/Settings.yaml new file mode 100644 index 0000000000..bc751b79d0 --- /dev/null +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Configuration/Settings.yaml @@ -0,0 +1,93 @@ +Neos: + ContentRepositoryRegistry: + contentRepositories: + twodimensions: + preset: default + contentDimensions: + country: + label: 'Country' + icon: 'icon-globe' + values: + 'deu': + label: 'Germany' + specializations: + 'aut': + label: 'Austria' + 'lux': + label: 'Luxembourg' + 'dnk': + label: 'Denmark' + + 'language': + label: 'Language' + icon: icon-language + values: + 'en_US': + label: 'English (US)' + constraints: + 'country': + '*': false + 'deu': true + 'aut': true + specializations: + 'en_UK': + label: 'English (UK)' + 'de': + label: German + constraints: + 'country': + '*': false + 'deu': true + 'aut': true + 'lux': true + 'fr': + label: French + constraints: + 'country': + '*': false + 'deu': true + 'aut': true + 'nl': + label: Dutch + constraints: + 'country': + '*': false + 'deu': true + 'aut': true + 'da': + label: Danish + constraints: + 'country': + '*': false + 'dnk': true + 'lv': + label: Latvian + constraints: + 'country': + '*': false + 'deu': true + 'aut': true + Neos: + sites: + 'neos-test-twodimensions': + contentRepository: 'twodimensions' + contentDimensions: + resolver: + factoryClassName: Neos\Neos\FrontendRouting\DimensionResolution\Resolver\UriPathResolverFactory + options: + segments: + - dimensionIdentifier: 'country' + dimensionValueMapping: + 'deu': 'deu' + 'aut': 'aut' + 'lux': 'lux' + 'dnk': 'dnk' + - dimensionIdentifier: 'language' + dimensionValueMapping: + 'en_US': 'en' + 'en_UK': 'uk' + 'de': 'de' + 'fr': 'fr' + 'nl': 'nl' + 'da': 'da' + 'lv': 'lv' diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/Assets/ee3d239e-48b0-4f99-90be-054301b91792.json b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/Assets/ee3d239e-48b0-4f99-90be-054301b91792.json new file mode 100644 index 0000000000..e5d089b54b --- /dev/null +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/Assets/ee3d239e-48b0-4f99-90be-054301b91792.json @@ -0,0 +1,14 @@ +{ + "identifier": "ee3d239e-48b0-4f99-90be-054301b91792", + "type": "IMAGE", + "title": "", + "copyrightNotice": "", + "caption": "", + "assetSourceIdentifier": "neos", + "resource": { + "filename": "neos_primary.png", + "collectionName": "persistent", + "mediaType": "image\/png", + "sha1": "aac28f51e5ca842e2646e88e7d242ac3c27e1f25" + } +} \ No newline at end of file diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/ImageVariants/50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1.json b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/ImageVariants/50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1.json new file mode 100644 index 0000000000..af47865fee --- /dev/null +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/ImageVariants/50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1.json @@ -0,0 +1,20 @@ +{ + "identifier": "50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1", + "originalAssetIdentifier": "ee3d239e-48b0-4f99-90be-054301b91792", + "name": "", + "width": 126, + "height": 126, + "presetIdentifier": null, + "presetVariantName": null, + "imageAdjustments": [ + { + "type": "CROP_IMAGE", + "properties": { + "x": 328, + "y": 0, + "width": 126, + "height": 126 + } + } + ] +} \ No newline at end of file diff --git a/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Resources/Private/Content/Resources/aac28f51e5ca842e2646e88e7d242ac3c27e1f25 b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/Resources/aac28f51e5ca842e2646e88e7d242ac3c27e1f25 similarity index 100% rename from Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Resources/Private/Content/Resources/aac28f51e5ca842e2646e88e7d242ac3c27e1f25 rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/Resources/aac28f51e5ca842e2646e88e7d242ac3c27e1f25 diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/events.jsonl b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/events.jsonl new file mode 100644 index 0000000000..eb5e838523 --- /dev/null +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content/events.jsonl @@ -0,0 +1,29 @@ +{"identifier":"0ebdfc06-3698-4ddb-83f5-109023213b84","type":"ContentStreamWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b"},"metadata":[]} +{"identifier":"55ea0055-eda8-4077-b3b0-2c2d599a8f27","type":"RootNodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"2fbc3faf-663a-4ef0-b586-7b2c1c7fd342","nodeTypeName":"Neos.Neos:Sites","coveredDimensionSpacePoints":[{"country":"deu","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"deu","language":"de"},{"country":"deu","language":"fr"},{"country":"deu","language":"nl"},{"country":"deu","language":"lv"},{"country":"aut","language":"en_US"},{"country":"aut","language":"en_UK"},{"country":"aut","language":"de"},{"country":"aut","language":"fr"},{"country":"aut","language":"nl"},{"country":"aut","language":"lv"},{"country":"lux","language":"en_UK"},{"country":"lux","language":"de"},{"country":"dnk","language":"en_UK"},{"country":"dnk","language":"da"}],"nodeAggregateClassification":"root"},"metadata":[]} +{"identifier":"a9fdb629-97ce-4321-bbec-a1dbf27530fd","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"country":"dnk","language":"da"},"coveredDimensionSpacePoints":[{"country":"dnk","language":"da"}],"parentNodeAggregateId":"2fbc3faf-663a-4ef0-b586-7b2c1c7fd342","nodeName":"neos-test-twodimensions","initialPropertyValues":{"title":{"value":"Home","type":"string"},"uriPathSegment":{"value":"home","type":"string"},"image":{"value":{"__flow_object_type":"Neos\\Media\\Domain\\Model\\ImageVariant","__identifier":"50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1"},"type":"Neos\\Media\\Domain\\Model\\ImageInterface"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"06ce4e00-bede-4d76-a6b9-02c646ce933b","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"country":"dnk","language":"da"},"peerOrigin":{"country":"deu","language":"lv"},"peerCoverage":[{"country":"deu","language":"lv"},{"country":"aut","language":"lv"}]},"metadata":[]} +{"identifier":"c8b2be8f-fd74-4ea5-b2f8-35a3876d11a9","type":"NodePropertiesWereSet","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"country":"deu","language":"lv"},"affectedDimensionSpacePoints":[{"country":"deu","language":"lv"},{"country":"aut","language":"lv"}],"propertyValues":{"title":{"value":"M\u0101jas","type":"string"},"uriPathSegment":{"value":"home","type":"string"}}},"metadata":[]} +{"identifier":"c2c89695-2e12-41ac-bc4a-9b197b67a6f8","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"country":"deu","language":"lv"},"peerOrigin":{"country":"deu","language":"en_US"},"peerCoverage":[{"country":"deu","language":"en_US"},{"country":"aut","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}]},"metadata":[]} +{"identifier":"9a7f0b96-edf3-43f0-95ab-41dc553e6238","type":"NodePropertiesWereSet","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"country":"deu","language":"en_US"},"affectedDimensionSpacePoints":[{"country":"deu","language":"en_US"},{"country":"aut","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}],"propertyValues":{"title":{"value":"Home","type":"string"},"uriPathSegment":{"value":"home","type":"string"},"image":{"value":{"__flow_object_type":"Neos\\Media\\Domain\\Model\\ImageVariant","__identifier":"50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1"},"type":"Neos\\Media\\Domain\\Model\\ImageInterface"}}},"metadata":[]} +{"identifier":"8895d087-a855-485b-a0c5-fc2bd0953468","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"country":"deu","language":"en_US"},"peerOrigin":{"country":"deu","language":"nl"},"peerCoverage":[{"country":"deu","language":"nl"},{"country":"aut","language":"nl"}]},"metadata":[]} +{"identifier":"b1c595ba-ecf2-48cf-bd58-b14b2823b878","type":"NodePropertiesWereSet","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"country":"deu","language":"nl"},"affectedDimensionSpacePoints":[{"country":"deu","language":"nl"},{"country":"aut","language":"nl"}],"propertyValues":{"title":{"value":"Huis","type":"string"},"uriPathSegment":{"value":"home","type":"string"}}},"metadata":[]} +{"identifier":"17735c4f-8a79-4224-87c7-31182ddb04b1","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"country":"deu","language":"nl"},"peerOrigin":{"country":"deu","language":"de"},"peerCoverage":[{"country":"deu","language":"de"},{"country":"aut","language":"de"},{"country":"lux","language":"de"}]},"metadata":[]} +{"identifier":"aa8cc064-78f1-4bfc-b781-9c1c0782b0a9","type":"NodePropertiesWereSet","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"country":"deu","language":"de"},"affectedDimensionSpacePoints":[{"country":"deu","language":"de"},{"country":"aut","language":"de"},{"country":"lux","language":"de"}],"propertyValues":{"title":{"value":"Startseite","type":"string"},"uriPathSegment":{"value":"home","type":"string"}}},"metadata":[]} +{"identifier":"acc19ed2-3409-4801-8579-7cefdd967908","type":"NodeSpecializationVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"country":"deu","language":"en_US"},"specializationOrigin":{"country":"deu","language":"en_UK"},"specializationCoverage":[{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}]},"metadata":[]} +{"identifier":"406b7e68-d98d-4bd1-bf68-b728ab2b539f","type":"NodePropertiesWereSet","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"country":"deu","language":"en_UK"},"affectedDimensionSpacePoints":[{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}],"propertyValues":{"title":{"value":"Home","type":"string"},"uriPathSegment":{"value":"home","type":"string"},"image":{"value":{"__flow_object_type":"Neos\\Media\\Domain\\Model\\ImageVariant","__identifier":"50cd4a3e-1cc3-4bbb-b2ab-919abb4011f1"},"type":"Neos\\Media\\Domain\\Model\\ImageInterface"}}},"metadata":[]} +{"identifier":"7075a98d-ebe8-4035-92b9-8dc3e9e09098","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","sourceOrigin":{"country":"deu","language":"en_UK"},"peerOrigin":{"country":"deu","language":"fr"},"peerCoverage":[{"country":"deu","language":"fr"},{"country":"aut","language":"fr"}]},"metadata":[]} +{"identifier":"5cbcac8a-35e1-47e5-a55c-3392ddeb0ff3","type":"NodePropertiesWereSet","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","originDimensionSpacePoint":{"country":"deu","language":"fr"},"affectedDimensionSpacePoints":[{"country":"deu","language":"fr"},{"country":"aut","language":"fr"}],"propertyValues":{"title":{"value":"Accueil","type":"string"},"uriPathSegment":{"value":"home","type":"string"}}},"metadata":[]} +{"identifier":"a4a517b0-cc81-4840-9fb4-8dc501e57093","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"country":"deu","language":"lv"},"coveredDimensionSpacePoints":[{"country":"deu","language":"lv"},{"country":"aut","language":"lv"}],"parentNodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"bee965e3-c5e9-401d-ae17-cc21699b4f1d","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"country":"deu","language":"lv"},"peerOrigin":{"country":"deu","language":"fr"},"peerCoverage":[{"country":"deu","language":"fr"},{"country":"aut","language":"fr"}]},"metadata":[]} +{"identifier":"68479aef-43d6-4c9b-9af6-5e582c6fbcdf","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"country":"deu","language":"fr"},"peerOrigin":{"country":"deu","language":"en_US"},"peerCoverage":[{"country":"deu","language":"en_US"},{"country":"aut","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}]},"metadata":[]} +{"identifier":"2c399044-3a08-4465-ae49-98486029dc8d","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"country":"deu","language":"en_US"},"peerOrigin":{"country":"dnk","language":"da"},"peerCoverage":[{"country":"dnk","language":"da"}]},"metadata":[]} +{"identifier":"6b9abd14-e993-49c7-a255-d32024fc6e8b","type":"NodeSpecializationVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"country":"deu","language":"en_US"},"specializationOrigin":{"country":"deu","language":"en_UK"},"specializationCoverage":[{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}]},"metadata":[]} +{"identifier":"07f9b89a-704e-4f66-80d1-b5670ccbd110","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"country":"deu","language":"en_UK"},"peerOrigin":{"country":"deu","language":"nl"},"peerCoverage":[{"country":"deu","language":"nl"},{"country":"aut","language":"nl"}]},"metadata":[]} +{"identifier":"42a96bec-0f04-43ac-bbc7-be9baedbde2e","type":"NodePeerVariantWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","sourceOrigin":{"country":"deu","language":"nl"},"peerOrigin":{"country":"deu","language":"de"},"peerCoverage":[{"country":"deu","language":"de"},{"country":"aut","language":"de"},{"country":"lux","language":"de"}]},"metadata":[]} +{"identifier":"e1263785-b57d-4269-929f-670da4279cf0","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"af9db7c2-3cf0-4091-978e-1a0f81766242","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"country":"deu","language":"en_US"},"coveredDimensionSpacePoints":[{"country":"deu","language":"en_US"},{"country":"aut","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}],"parentNodeAggregateId":"f676459d-ca77-44bc-aeea-44114814c279","nodeName":"node-w0p249o10vma4","initialPropertyValues":{"uriPathSegment":{"value":"switching-dimensions","type":"string"},"title":{"value":"Switching dimensions","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"58459bb0-6ac4-4f32-9287-e2468bdbdccc","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"53c72be8-befb-409f-b2b6-ad54b68cbe05","nodeTypeName":"Neos.TestNodeTypes:Content.Headline","originDimensionSpacePoint":{"country":"deu","language":"en_US"},"coveredDimensionSpacePoints":[{"country":"deu","language":"en_US"},{"country":"aut","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}],"parentNodeAggregateId":"6c302e0e-1d54-4697-a7ec-88d4e0d010cf","nodeName":"node-chdxek8m9mgp8","initialPropertyValues":{"title":{"value":"Content node to delete","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"e2d2f6a6-67c4-48dd-a4f1-1026ac3d0065","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"e91e184f-eb71-4b54-90dc-e8d8dd997f51","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"country":"deu","language":"en_US"},"coveredDimensionSpacePoints":[{"country":"deu","language":"en_US"},{"country":"aut","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}],"parentNodeAggregateId":"af9db7c2-3cf0-4091-978e-1a0f81766242","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"0ee5bb06-c2a7-473e-8dc4-c3faa515d0d6","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"45270070-0d7c-4a89-90a8-a43ef454edf1","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"country":"deu","language":"en_US"},"coveredDimensionSpacePoints":[{"country":"deu","language":"en_US"},{"country":"aut","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}],"parentNodeAggregateId":"af9db7c2-3cf0-4091-978e-1a0f81766242","nodeName":"node-8ws6hkn4o36q1","initialPropertyValues":{"uriPathSegment":{"value":"translated-page","type":"string"},"title":{"value":"Translated page","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"d82b51b6-ffcf-4119-a279-80b137db438d","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"555c9f80-7682-4916-a4c3-851ab5ea0559","nodeTypeName":"Neos.TestNodeTypes:Document.Page","originDimensionSpacePoint":{"country":"deu","language":"en_US"},"coveredDimensionSpacePoints":[{"country":"deu","language":"en_US"},{"country":"aut","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}],"parentNodeAggregateId":"af9db7c2-3cf0-4091-978e-1a0f81766242","nodeName":"node-f8e3ze7jvbxkl","initialPropertyValues":{"uriPathSegment":{"value":"untranslated-page","type":"string"},"title":{"value":"Untranslated page","type":"string"}},"nodeAggregateClassification":"regular","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"6758939c-0091-43a0-9cee-16228b6ffdf9","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"d1d3bfdc-ce6a-cf2e-4eeb-02c11bbe87f4","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"country":"deu","language":"en_US"},"coveredDimensionSpacePoints":[{"country":"deu","language":"en_US"},{"country":"aut","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}],"parentNodeAggregateId":"45270070-0d7c-4a89-90a8-a43ef454edf1","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} +{"identifier":"3db13d5f-9a7d-4e98-8020-ac37bdc4ad92","type":"NodeAggregateWithNodeWasCreated","payload":{"contentStreamId":"ead48ed5-f915-44bd-8df8-29475c8b145b","nodeAggregateId":"a54789f4-26df-de1d-c5dc-18a15556b40b","nodeTypeName":"Neos.Neos:ContentCollection","originDimensionSpacePoint":{"country":"deu","language":"en_US"},"coveredDimensionSpacePoints":[{"country":"deu","language":"en_US"},{"country":"aut","language":"en_US"},{"country":"deu","language":"en_UK"},{"country":"aut","language":"en_UK"},{"country":"lux","language":"en_UK"}],"parentNodeAggregateId":"555c9f80-7682-4916-a4c3-851ab5ea0559","nodeName":"main","initialPropertyValues":[],"nodeAggregateClassification":"tethered","succeedingNodeAggregateId":null},"metadata":[]} diff --git a/Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Resources/Private/Fusion/Root.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Fusion/Root.fusion similarity index 100% rename from Tests/IntegrationTests/Fixtures/2Dimension/SitePackage/Resources/Private/Fusion/Root.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Fusion/Root.fusion diff --git a/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/composer.json b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/composer.json similarity index 56% rename from Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/composer.json rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/composer.json index fa7065d535..82d376240b 100644 --- a/Tests/IntegrationTests/Fixtures/1Dimension/SitePackage/composer.json +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.Test.TwoDimensions/composer.json @@ -1,6 +1,6 @@ { - "name": "neos/test-site", - "description": "A Neos website", + "name": "neos/test-twodimensions", + "description": "A Neos website with two dimensions", "type": "neos-site", "require": { "neos/neos": "*", @@ -9,7 +9,7 @@ }, "extra": { "neos": { - "package-key": "Neos.TestSite" + "package-key": "Neos.Test.TwoDimensions" } } } diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Classes/DataSources/NodeWithDependingPropertiesDataSource.php b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/DataSources/NodeWithDependingPropertiesDataSource.php similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Classes/DataSources/NodeWithDependingPropertiesDataSource.php rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/DataSources/NodeWithDependingPropertiesDataSource.php diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Classes/NodeCreationHandler/ImagePropertyNodeCreationHandler.php b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/NodeCreationHandler/ImagePropertyNodeCreationHandler.php similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Classes/NodeCreationHandler/ImagePropertyNodeCreationHandler.php rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Classes/NodeCreationHandler/ImagePropertyNodeCreationHandler.php diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Configuration/Settings.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Configuration/Settings.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Configuration/Settings.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Configuration/Settings.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/Container.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/Container.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/Container.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/Container.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/Headline.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/Headline.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/Headline.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/Headline.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/Image.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/Image.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/Image.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/Image.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/InlineHeadline.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/InlineHeadline.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/InlineHeadline.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/InlineHeadline.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/NodeWithDependingProperties.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/NodeWithDependingProperties.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/NodeWithDependingProperties.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/NodeWithDependingProperties.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/Text.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/Text.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Content/Text.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Content/Text.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Document/Page.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Document/Page.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Document/Page.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Document/Page.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Document/PageWithImage.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Document/PageWithImage.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Document/PageWithImage.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Document/PageWithImage.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Document/SelectBoxTestPage/OpensAbove.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Document/SelectBoxTestPage/OpensAbove.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Document/SelectBoxTestPage/OpensAbove.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Document/SelectBoxTestPage/OpensAbove.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Document/SelectBoxTestPage/OpensAboveInInspector.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Document/SelectBoxTestPage/OpensAboveInInspector.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Document/SelectBoxTestPage/OpensAboveInInspector.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Document/SelectBoxTestPage/OpensAboveInInspector.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Document/SelectBoxTestPage/OpensBelowAndBreaksOut.yaml b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Document/SelectBoxTestPage/OpensBelowAndBreaksOut.yaml similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/NodeTypes/Document/SelectBoxTestPage/OpensBelowAndBreaksOut.yaml rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/NodeTypes/Document/SelectBoxTestPage/OpensBelowAndBreaksOut.yaml diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Component/Navigation/Navigation.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Component/Navigation/Navigation.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Component/Navigation/Navigation.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Component/Navigation/Navigation.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/Container/Container.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/Container/Container.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/Container/Container.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/Container/Container.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/Headline/Headline.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/Headline/Headline.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/Headline/Headline.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/Headline/Headline.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/Image/Image.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/Image/Image.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/Image/Image.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/Image/Image.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/InlineHeadline/InlineHeadline.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/InlineHeadline/InlineHeadline.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/InlineHeadline/InlineHeadline.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/InlineHeadline/InlineHeadline.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/NodeWithDependingProperties/NodeWithDependingProperties.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/NodeWithDependingProperties/NodeWithDependingProperties.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/NodeWithDependingProperties/NodeWithDependingProperties.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/NodeWithDependingProperties/NodeWithDependingProperties.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/Text/Text.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/Text/Text.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Content/Text/Text.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Content/Text/Text.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Document/Page/Page.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Document/Page/Page.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Document/Page/Page.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Document/Page/Page.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Document/PageWithImage/PageWithImage.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Document/PageWithImage/PageWithImage.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Document/PageWithImage/PageWithImage.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Document/PageWithImage/PageWithImage.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Document/SelectBoxTestPage/OpensAboveIn.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Document/SelectBoxTestPage/OpensAboveIn.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Document/SelectBoxTestPage/OpensAboveIn.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Document/SelectBoxTestPage/OpensAboveIn.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Document/SelectBoxTestPage/OpensAboveInInspector.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Document/SelectBoxTestPage/OpensAboveInInspector.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Document/SelectBoxTestPage/OpensAboveInInspector.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Document/SelectBoxTestPage/OpensAboveInInspector.fusion diff --git a/Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Root.fusion b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Root.fusion similarity index 100% rename from Tests/IntegrationTests/SharedNodeTypesPackage/Resources/Private/Fusion/Root.fusion rename to Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/Resources/Private/Fusion/Root.fusion diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/composer.json b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/composer.json index 47c0164f23..e0af4bd7c2 100644 --- a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/composer.json +++ b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestNodeTypes/composer.json @@ -3,8 +3,8 @@ "description": "Some dummy nodetypes", "type": "neos-package", "require": { - "neos/neos-ui": "*", - "neos/fusion-afx": "*" + "neos/neos": "*", + "neos/neos-ui": "*" }, "extra": { "neos": { @@ -12,8 +12,8 @@ } }, "autoload": { - "psr-4": { - "Neos\\TestNodeTypes\\": "Classes" - } + "psr-4": { + "Neos\\TestNodeTypes\\": "Classes" + } } } diff --git a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestSite/composer.json b/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestSite/composer.json deleted file mode 100644 index 6b391192c8..0000000000 --- a/Tests/IntegrationTests/TestDistribution/DistributionPackages/Neos.TestSite/composer.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "neos/test-site", - "description": "A dummy site package that will be replaced by fixtures during tests", - "type": "neos-site", - "require": { - "neos/neos": "*", - "neos/neos-ui": "*", - "neos/fusion-afx": "*" - }, - "extra": { - "neos": { - "package-key": "Neos.TestSite" - } - } -} diff --git a/Tests/IntegrationTests/TestDistribution/composer.json b/Tests/IntegrationTests/TestDistribution/composer.json index 41fc86012c..20704ec76d 100644 --- a/Tests/IntegrationTests/TestDistribution/composer.json +++ b/Tests/IntegrationTests/TestDistribution/composer.json @@ -6,19 +6,33 @@ "vendor-dir": "Packages/Libraries", "bin-dir": "bin", "allow-plugins": { - "neos/composer-plugin": true + "neos/composer-plugin": true, + "cweagans/composer-patches": true } }, - "minimum-stability": "dev", "require": { - "neos/neos-ui": "8.3.x-dev", - "neos/fusion-afx": "*", - "neos/test-site": "@dev", - "neos/test-nodetypes": "@dev" + "neos/flow-development-collection": "9.0.x-dev as 9.0", + + "neos/neos-development-collection": "9.0.x-dev as 9.0", + "neos/eventstore": "dev-main", + "neos/eventstore-doctrineadapter": "dev-main", + + "neos/neos-ui": "9.0.x-dev as 9.0", + "neos/neos-ui-compiled": "9.0.x-dev as 9.0", + + "neos/test-onedimension": "@dev", + "neos/test-twodimensions": "@dev", + "neos/test-nodetypes": "@dev", + + "cweagans/composer-patches": "^1.7.3" }, "require-dev": { "neos/buildessentials": "@dev", - "phpunit/phpunit": "^8.1" + "phpunit/phpunit": "^9.0" + }, + "extra": { + "patches": { + } }, "repositories": { "distribution": { diff --git a/Tests/IntegrationTests/docker-compose.yaml b/Tests/IntegrationTests/docker-compose.yaml index 51125de99a..42a22e5904 100644 --- a/Tests/IntegrationTests/docker-compose.yaml +++ b/Tests/IntegrationTests/docker-compose.yaml @@ -2,22 +2,27 @@ version: "3.4" services: php: - image: thecodingmachine/php:8.0-v4-cli-node16 + image: thecodingmachine/php:8.2-v4-cli-node16 command: tail -f /dev/null ports: - 8081:8081 volumes: + - app:/usr/src/app - composer_cache:/home/circleci/.composer/cache + # add Neos Ui root as cached read-only volume that will be later symlinked into TestDistribution/Packages/ + - ../../.:/usr/src/neos-ui:cached,ro environment: # Enable GD PHP_EXTENSION_GD: 1 COMPOSER_CACHE_DIR: /home/circleci/.composer/cache + DB_HOST: db db: - image: mysql:8 + image: mariadb:10.4 environment: MYSQL_DATABASE: neos MYSQL_ROOT_PASSWORD: not_a_real_password volumes: + app: composer_cache: diff --git a/Tests/IntegrationTests/e2e-docker.sh b/Tests/IntegrationTests/e2e-docker.sh index 5dbb873c8d..bcec06b019 100755 --- a/Tests/IntegrationTests/e2e-docker.sh +++ b/Tests/IntegrationTests/e2e-docker.sh @@ -18,9 +18,12 @@ echo "########################################################################## dc down dc up -d dc exec -T php bash <<-'BASH' - rm -rf /usr/src/app/* + # WHY: change owner for composer cache for docker execution + sudo chown -R docker:docker /home/circleci/ BASH -docker cp $(pwd)/Tests/IntegrationTests/. $(dc ps -q php):/usr/src/app +#echo docker cp $(pwd)/Tests/IntegrationTests/TestDistribution/composer.json $(dc ps -q php):/usr/src/app/composer.json +#docker cp $(pwd)/Tests/IntegrationTests/TestDistribution/composer.json $(dc ps -q php):/usr/src/app/composer.json + sleep 2 echo "" @@ -29,10 +32,13 @@ echo "# Install dependencies... echo "#############################################################################" dc exec -T php bash <<-'BASH' cd /usr/src/app + mkdir -p Configuration sudo chown -R docker:docker . - # WHY: change owner for composer cache for docker execution - sudo chown -R docker:docker /home/circleci/ - cd TestDistribution + + ln -sf /usr/src/neos-ui/Tests/IntegrationTests/TestDistribution/composer.json /usr/src/app/composer.json + ln -sf /usr/src/neos-ui/Tests/IntegrationTests/TestDistribution/Configuration/Settings.yaml /usr/src/app/Configuration/Settings.yaml + ln -sfn /usr/src/neos-ui/Tests/IntegrationTests/TestDistribution/DistributionPackages /usr/src/app/DistributionPackages + composer install BASH @@ -40,16 +46,30 @@ echo "" echo "#############################################################################" echo "# Initialize Neos... #" echo "#############################################################################" -docker cp $(pwd)/. $(dc ps -q php):/usr/src/app/TestDistribution/Packages/Application/neos-ui dc exec -T php bash <<-'BASH' - cd TestDistribution rm -rf Packages/Application/Neos.Neos.Ui - mv Packages/Application/neos-ui Packages/Application/Neos.Neos.Ui - sed -i 's/host: 127.0.0.1/host: db/g' Configuration/Settings.yaml + ln -s /usr/src/neos-ui /usr/src/app/Packages/Application/Neos.Neos.Ui + ./flow flow:cache:flush ./flow flow:cache:warmup ./flow doctrine:migrate ./flow user:create --username=admin --password=password --first-name=John --last-name=Doe --roles=Administrator || true + + ./flow cr:setup --content-repository onedimension + ./flow site:create neos-test-onedimension Neos.Test.OneDimension Neos.TestNodeTypes:Document.Page + ./flow domain:add neos-test-onedimension onedimension.localhost --port 8081 + # TODO: Replace with "--assume-yes" flag once "./flow cr:prune" has one + printf "y\n" | ./flow cr:prune --content-repository onedimension + ./flow cr:import --content-repository onedimension --path ./DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content + + ./flow cr:setup --content-repository twodimensions + ./flow site:create neos-test-twodimensions Neos.Test.TwoDimensions Neos.TestNodeTypes:Document.Page + ./flow domain:add neos-test-twodimensions twodimensions.localhost --port 8081 + # TODO: Replace with "--assume-yes" flag once "./flow cr:prune" has one + printf "y\n" | ./flow cr:prune --content-repository twodimensions + ./flow cr:import --content-repository twodimensions --path ./DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content + + ./flow resource:publish BASH echo "" @@ -57,7 +77,6 @@ echo "########################################################################## echo "# Start Flow Server... #" echo "#############################################################################" dc exec -T php bash <<-'BASH' - cd TestDistribution ./flow server:run --port 8081 --host 0.0.0.0 & BASH @@ -65,35 +84,5 @@ echo "" echo "#############################################################################" echo "# Run E2E tests... #" echo "#############################################################################" -for fixture in $(pwd)/Tests/IntegrationTests/Fixtures/*/; do - echo "" - echo "########################################" - echo "# Fixture '$(basename $fixture)'" - echo "########################################" - dc exec -T php bash <<-BASH - mkdir -p ./TestDistribution/DistributionPackages - - rm -rf ./TestDistribution/DistributionPackages/Neos.TestNodeTypes - ln -s "../../SharedNodeTypesPackage" ./TestDistribution/DistributionPackages/Neos.TestNodeTypes - - rm -rf ./TestDistribution/DistributionPackages/Neos.TestSite - ln -s "../../Fixtures/$(basename $fixture)/SitePackage" ./TestDistribution/DistributionPackages/Neos.TestSite - - # TODO: optimize this - cd TestDistribution - composer reinstall neos/test-nodetypes - composer reinstall neos/test-site - ./flow flow:cache:flush --force - ./flow flow:cache:warmup - ./flow configuration:show --path Neos.ContentRepository.contentDimensions - - if ./flow site:list | grep -q 'Node name'; then - ./flow site:prune '*' - fi - ./flow site:import --package-key=Neos.TestSite - ./flow resource:publish -BASH - - yarn run testcafe "$1" "${fixture}*.e2e.js" \ - --selector-timeout=10000 --assertion-timeout=30000 --debug-on-fail -done +yarn run testcafe "$1" "$(pwd)/Tests/IntegrationTests/Fixtures/*/*.e2e.js" \ + --selector-timeout=10000 --assertion-timeout=30000 --debug-on-fail diff --git a/Tests/IntegrationTests/e2e.sh b/Tests/IntegrationTests/e2e.sh index fef89eb20c..e1331bcebb 100755 --- a/Tests/IntegrationTests/e2e.sh +++ b/Tests/IntegrationTests/e2e.sh @@ -8,37 +8,25 @@ fi cd ../../.. -rm -rf DummyDistributionPackages || true -mv DistributionPackages DummyDistributionPackages -mkdir DistributionPackages +./flow cr:setup --content-repository onedimension +./flow site:create neos-test-onedimension Neos.Test.OneDimension Neos.TestNodeTypes:Document.Page +./flow domain:add neos-test-onedimension onedimension.localhost --port 8081 +# TODO: Replace with "--assume-yes" flag once "./flow cr:prune" has one +printf "y\n" | ./flow cr:prune --content-repository onedimension +./flow cr:import --content-repository onedimension --path ./DistributionPackages/Neos.Test.OneDimension/Resources/Private/Content -ln -s "../Packages/Application/Neos.Neos.Ui/Tests/IntegrationTests/SharedNodeTypesPackage" DistributionPackages/Neos.TestNodeTypes +./flow cr:setup --content-repository twodimensions +./flow site:create neos-test-twodimensions Neos.Test.TwoDimensions Neos.TestNodeTypes:Document.Page +./flow domain:add neos-test-twodimensions twodimensions.localhost --port 8081 +# TODO: Replace with "--assume-yes" flag once "./flow cr:prune" has one +printf "y\n" | ./flow cr:prune --content-repository twodimensions +./flow cr:import --content-repository twodimensions --path ./DistributionPackages/Neos.Test.TwoDimensions/Resources/Private/Content -for fixture in Packages/Application/Neos.Neos.Ui/Tests/IntegrationTests/Fixtures/*/; do - echo "$fixture" +./flow resource:publish - ln -s "../${fixture}SitePackage" DistributionPackages/Neos.TestSite +cd Packages/Application/Neos.Neos.Ui - # TODO: optimize this - composer reinstall neos/test-nodetypes - composer reinstall neos/test-site - ./flow flow:cache:flush --force - ./flow flow:cache:warmup - ./flow configuration:show --path Neos.ContentRepository.contentDimensions +yarn run testcafe "$1" "Tests/IntegrationTests/Fixtures/*/*.e2e.js" \ + --selector-timeout=10000 --assertion-timeout=30000 - if ./flow site:list | grep -q 'Node name'; then - ./flow site:prune '*' - fi - ./flow site:import --package-key=Neos.TestSite - ./flow resource:publish - - cd Packages/Application/Neos.Neos.Ui - yarn run testcafe "$1" "../../../${fixture}*.e2e.js" \ - --selector-timeout=10000 --assertion-timeout=30000 - cd ../../.. - rm -f DistributionPackages/Neos.TestSite - -done - -rm -rf DistributionPackages -mv DummyDistributionPackages DistributionPackages +cd ../../.. diff --git a/Tests/IntegrationTests/utils.js b/Tests/IntegrationTests/utils.js index 8056cef048..86f3289b9e 100644 --- a/Tests/IntegrationTests/utils.js +++ b/Tests/IntegrationTests/utils.js @@ -4,13 +4,24 @@ import {PublishDropDown, Page} from './pageModel'; export const subSection = name => console.log('\x1b[33m%s\x1b[0m', ' - ' + name); -const adminUrl = 'http://127.0.0.1:8081/neos'; const adminUserName = 'admin'; const adminPassword = 'password'; export const getUrl = ClientFunction(() => window.location.href); -export const adminUser = Role(adminUrl, async t => { +export const adminUserOnOneDimensionTestSite = Role('http://onedimension.localhost:8081/neos', async t => { + await t + .typeText('#username', adminUserName) + .typeText('#password', adminPassword) + .click('button.neos-login-btn'); + + await t.expect(getUrl()).contains('/content'); + + await waitForReact(30000); + await Page.waitForIframeLoading(); +}, {preserveUrl: true}); + +export const adminUserOnTwoDimensionsTestSite = Role('http://twodimensions.localhost:8081/neos', async t => { await t .typeText('#username', adminUserName) .typeText('#password', adminPassword) @@ -39,7 +50,7 @@ export async function checkPropTypes() { } export async function beforeEach(t) { - await t.useRole(adminUser); + await t.useRole(adminUserOnOneDimensionTestSite); await waitForReact(30000); await PublishDropDown.discardAll(); await Page.goToPage('Home'); diff --git a/packages/neos-ui-backend-connector/src/Endpoints/index.ts b/packages/neos-ui-backend-connector/src/Endpoints/index.ts index 3babf7a40f..042bb7d60c 100644 --- a/packages/neos-ui-backend-connector/src/Endpoints/index.ts +++ b/packages/neos-ui-backend-connector/src/Endpoints/index.ts @@ -476,11 +476,16 @@ export default (routes: Routes) => { throw new Error('.node-frontend-uri does not contain a valid href attribut'); } - const nodeContextPath = d.querySelector('.node-context-path'); - if (!nodeContextPath) { + const nodeContextPathElement = d.querySelector('.node-context-path'); + if (!nodeContextPathElement) { throw new Error('.node-context-path is not found in the result'); } + const nodeContextPath = nodeContextPathElement.innerHTML.trim(); + if (!nodeContextPath) { + throw new Error('.node-context-path is empty'); + } + return { nodeFound: true, nodeFrontendUri, diff --git a/packages/neos-ui-sagas/src/UI/ContentTree/index.js b/packages/neos-ui-sagas/src/UI/ContentTree/index.js index a68d024ac1..adcdd4df6c 100644 --- a/packages/neos-ui-sagas/src/UI/ContentTree/index.js +++ b/packages/neos-ui-sagas/src/UI/ContentTree/index.js @@ -142,7 +142,7 @@ export function * watchCurrentDocument({globalRegistry, configuration}) { } const state = yield select(); - const childrenAreFullyLoaded = $get(['cr', 'nodes', 'byContextPath', contextPath, 'children'], state) + const childrenAreFullyLoaded = ($get(['cr', 'nodes', 'byContextPath', contextPath, 'children'], state) || []) .filter(childEnvelope => nodeTypesRegistry.hasRole(childEnvelope.nodeType, 'content') || nodeTypesRegistry.hasRole(childEnvelope.nodeType, 'contentCollection')) .every( childEnvelope => Boolean($get(['cr', 'nodes', 'byContextPath', $get('contextPath', childEnvelope)], state))