PHP Class Neos\ContentRepository\Tests\Functional\Domain\NodesTest

Inheritance: extends Neos\Flow\Tests\FunctionalTestCase
Datei anzeigen Open project: neos/neos-development-collection

Protected Properties

Property Type Description
$contentDimensionRepository Neos\ContentRepository\Domain\Repository\ContentDimensionRepository
$context Neos\ContentRepository\Domain\Service\Context
$contextFactory Neos\ContentRepository\Domain\Service\ContextFactoryInterface
$liveWorkspace Neos\ContentRepository\Domain\Model\Workspace
$nodeDataRepository Neos\ContentRepository\Domain\Repository\NodeDataRepository
$nodeTypeManager Neos\ContentRepository\Domain\Service\NodeTypeManager
$testablePersistenceEnabled boolean
$workspaceRepository Neos\ContentRepository\Domain\Repository\WorkspaceRepository

Public Methods

Method Description
adoptNodeMatchesTargetContextDimensions ( )
adoptNodeReturnsExistingNodeWithMatchingDimensionsIfPossible ( )
adoptNodeWithExistingNodeMatchingTargetDimensionValuesWillReuseNode ( )
copyAfterThrowsExceptionIfTargetExists ( )
copyBeforeThrowsExceptionIfTargetExists ( )
copyIntoThrowsExceptionIfTargetExists ( )
createVariantForContextAlsoWorksIfTheTargetWorkspaceDiffersFromTheSourceWorkspace ( )
createVariantForContextMatchesTargetContextDimensions ( )
createdNodesHaveDefaultValuesSet ( )
createdNodesHaveSubNodesCreatedIfDefinedInNodeType ( )
creatingAChildNodeAndRetrievingItAfterPersistAllWorks ( )
getChildNodesSupportsSettingALimitAndOffset ( )
getChildNodesWithNodeTypeFilterWorks ( )
getChildNodesWorksCaseInsensitive ( )
getLabelUsesFallbackExpression ( )
getPropertiesReturnsReferencePropertiesAsNodeObjects ( )
getPropertyDoesNotReturnNodeReferencesIfTheyAreNotVisibleAccordingToTheContentContext ( )
getPropertyReturnsReferencedNodesInCorrectWorkspace ( )
moveAfterMovesNodesAfterOthersOnDifferentLevelWithPersistAll ( )
moveAfterMovesNodesAfterOthersOnDifferentLevelWithoutPersistAll ( )
moveAfterNodesWithHigherIndexMovesNodesAfterOthersWithPersistAll ( )
moveAfterNodesWithHigherIndexMovesNodesAfterOthersWithoutPersistAll ( )
moveAfterNodesWithLowerIndexMovesNodesAfterOthersWithPersistAll ( )
moveAfterNodesWithLowerIndexMovesNodesAfterOthersWithoutPersistAll ( )
moveAfterThrowsExceptionIfTargetExists ( )
moveAndRenameAtTheSameTime ( )
moveBeforeInASeparateWorkspaceLeadsToCorrectSortingAcrossWorkspaces ( )
moveBeforeMovesNodesBeforeOthersOnDifferentLevelWithPersistAll ( )
moveBeforeMovesNodesBeforeOthersOnDifferentLevelWithoutPersistAll ( )
moveBeforeMovesNodesBeforeOthersWithoutPersistAll ( )
moveBeforeNodesWithHigherIndexMovesNodesBeforeOthersWithPersistAll ( )
moveBeforeNodesWithHigherIndexMovesNodesBeforeOthersWithoutPersistAll ( )
moveBeforeNodesWithLowerIndexMovesNodesBeforeOthersWithPersistAll ( )
moveBeforeThrowsExceptionIfTargetExists ( )
moveIntoMovesNodesIntoOthersOnDifferentLevelWithPersistAll ( )
moveIntoMovesNodesIntoOthersOnDifferentLevelWithoutPersistAll ( )
moveIntoThrowsExceptionIfTargetExists ( )
nodeCreationThrowsExceptionIfNodeNameContainsUppercaseCharacters ( )
nodeDataRepositoryRenumbersNodesIfNoFreeSortingIndexesAreAvailable ( )
nodeDataRepositoryRenumbersNodesIfNoFreeSortingIndexesAreAvailableAcrossDimensions ( )
nodeFactoryCachesCreatedNodesBasedOnIdentifierAndDimensions ( )
nodesAreCopiedAfterRecursively ( )
nodesAreCopiedBeforeRecursively ( )
nodesAreCopiedIntoRecursively ( )
nodesAreCopiedIntoThemselvesRecursively ( )
nodesCanBeCopiedAfter ( )
nodesCanBeCopiedAfterAndBeforeAndKeepProperties ( )
nodesCanBeCopiedBefore ( )
nodesCanBeCopiedInto ( )
nodesCanBeCopiedIntoThemselves ( )
nodesCanBeRenamed ( )
nodesCanHaveCustomImplementationClass ( )
nodesCreatedInTheLiveWorkspacesCanBeRetrievedAgainInTheLiveContext ( )
nodesInPathAreHiddenIfBetterVariantInOtherPathExists ( )
postprocessorUpdatesNodeTypesProperty ( )
removedNodesAreNotCountedAsChildNodes ( )
removedNodesCannotBeRetrievedAnymore ( )
renumberingTakesUnpersistedNodeOrderChangesIntoAccount ( ) Testcase for bug #34291 (ContentRepository reordering does not take unpersisted node order changes into account)
setNameWorksRecursively ( )
setPropertyAcceptsAndConvertsIdentifierIfTargetTypeIsReference ( )
setPropertyAcceptsAndConvertsIdentifiersIfTargetTypeIsReferences ( )
setUp ( ) : void
tearDown ( ) : void
threeChildNodesOfTheRootNodeCanBeRetrievedInSameOrder ( )
threeCreatedNodesCanBeRetrievedInSameOrder ( )

Protected Methods

Method Description
assertSameOrder ( array $expectedNodes, array $actualNodes ) : void Asserts that the order of the given nodes is the same.

Method Details

adoptNodeMatchesTargetContextDimensions() public method

adoptNodeReturnsExistingNodeWithMatchingDimensionsIfPossible() public method

adoptNodeWithExistingNodeMatchingTargetDimensionValuesWillReuseNode() public method

assertSameOrder() protected method

This doesn't check if the node objects are the same or equal but rather tests if their path is identical. Therefore nodes can be in different workspaces or nodes.
protected assertSameOrder ( array $expectedNodes, array $actualNodes ) : void
$expectedNodes array The expected order
$actualNodes array The actual order
return void

copyAfterThrowsExceptionIfTargetExists() public method

copyBeforeThrowsExceptionIfTargetExists() public method

copyIntoThrowsExceptionIfTargetExists() public method

createVariantForContextAlsoWorksIfTheTargetWorkspaceDiffersFromTheSourceWorkspace() public method

createVariantForContextMatchesTargetContextDimensions() public method

createdNodesHaveDefaultValuesSet() public method

createdNodesHaveSubNodesCreatedIfDefinedInNodeType() public method

creatingAChildNodeAndRetrievingItAfterPersistAllWorks() public method

getChildNodesSupportsSettingALimitAndOffset() public method

getChildNodesWithNodeTypeFilterWorks() public method

getChildNodesWorksCaseInsensitive() public method

getLabelUsesFallbackExpression() public method

getPropertiesReturnsReferencePropertiesAsNodeObjects() public method

getPropertyDoesNotReturnNodeReferencesIfTheyAreNotVisibleAccordingToTheContentContext() public method

getPropertyReturnsReferencedNodesInCorrectWorkspace() public method

moveAfterMovesNodesAfterOthersOnDifferentLevelWithPersistAll() public method

moveAfterMovesNodesAfterOthersOnDifferentLevelWithoutPersistAll() public method

moveAfterNodesWithHigherIndexMovesNodesAfterOthersWithPersistAll() public method

moveAfterNodesWithHigherIndexMovesNodesAfterOthersWithoutPersistAll() public method

moveAfterNodesWithLowerIndexMovesNodesAfterOthersWithPersistAll() public method

moveAfterNodesWithLowerIndexMovesNodesAfterOthersWithoutPersistAll() public method

moveAfterThrowsExceptionIfTargetExists() public method

moveAndRenameAtTheSameTime() public method

moveBeforeInASeparateWorkspaceLeadsToCorrectSortingAcrossWorkspaces() public method

moveBeforeMovesNodesBeforeOthersOnDifferentLevelWithPersistAll() public method

moveBeforeMovesNodesBeforeOthersOnDifferentLevelWithoutPersistAll() public method

moveBeforeMovesNodesBeforeOthersWithoutPersistAll() public method

moveBeforeNodesWithHigherIndexMovesNodesBeforeOthersWithPersistAll() public method

moveBeforeNodesWithHigherIndexMovesNodesBeforeOthersWithoutPersistAll() public method

moveBeforeNodesWithLowerIndexMovesNodesBeforeOthersWithPersistAll() public method

moveBeforeThrowsExceptionIfTargetExists() public method

moveIntoMovesNodesIntoOthersOnDifferentLevelWithPersistAll() public method

moveIntoMovesNodesIntoOthersOnDifferentLevelWithoutPersistAll() public method

moveIntoThrowsExceptionIfTargetExists() public method

nodeCreationThrowsExceptionIfNodeNameContainsUppercaseCharacters() public method

nodeDataRepositoryRenumbersNodesIfNoFreeSortingIndexesAreAvailable() public method

nodeDataRepositoryRenumbersNodesIfNoFreeSortingIndexesAreAvailableAcrossDimensions() public method

nodeFactoryCachesCreatedNodesBasedOnIdentifierAndDimensions() public method

nodesAreCopiedAfterRecursively() public method

nodesAreCopiedBeforeRecursively() public method

nodesAreCopiedIntoRecursively() public method

nodesAreCopiedIntoThemselvesRecursively() public method

nodesCanBeCopiedAfter() public method

nodesCanBeCopiedAfterAndBeforeAndKeepProperties() public method

nodesCanBeCopiedBefore() public method

nodesCanBeCopiedInto() public method

nodesCanBeCopiedIntoThemselves() public method

nodesCanBeRenamed() public method

public nodesCanBeRenamed ( )

nodesCanHaveCustomImplementationClass() public method

nodesCreatedInTheLiveWorkspacesCanBeRetrievedAgainInTheLiveContext() public method

nodesInPathAreHiddenIfBetterVariantInOtherPathExists() public method

postprocessorUpdatesNodeTypesProperty() public method

removedNodesAreNotCountedAsChildNodes() public method

removedNodesCannotBeRetrievedAnymore() public method

renumberingTakesUnpersistedNodeOrderChangesIntoAccount() public method

The error can be reproduced in the following way: - First, create some nodes, and persist. - Then, move a node after another one, filling the LAST free sorting index between the nodes. Do NOT persist after that. - After that, try to *again* move a node to this spot. In this case, we need to *renumber* the node indices, and the system needs to take the before-moved node into account as well. The bug tested by this testcase led to wrong orderings on the floworg website in the documentation part under some circumstances.

setNameWorksRecursively() public method

setPropertyAcceptsAndConvertsIdentifierIfTargetTypeIsReference() public method

setPropertyAcceptsAndConvertsIdentifiersIfTargetTypeIsReferences() public method

setUp() public method

public setUp ( ) : void
return void

tearDown() public method

public tearDown ( ) : void
return void

threeChildNodesOfTheRootNodeCanBeRetrievedInSameOrder() public method

threeCreatedNodesCanBeRetrievedInSameOrder() public method

Property Details

$contentDimensionRepository protected_oe property

protected ContentDimensionRepository,Neos\ContentRepository\Domain\Repository $contentDimensionRepository
return Neos\ContentRepository\Domain\Repository\ContentDimensionRepository

$context protected_oe property

protected Context,Neos\ContentRepository\Domain\Service $context
return Neos\ContentRepository\Domain\Service\Context

$contextFactory protected_oe property

protected ContextFactoryInterface,Neos\ContentRepository\Domain\Service $contextFactory
return Neos\ContentRepository\Domain\Service\ContextFactoryInterface

$liveWorkspace protected_oe property

protected Workspace,Neos\ContentRepository\Domain\Model $liveWorkspace
return Neos\ContentRepository\Domain\Model\Workspace

$nodeDataRepository protected_oe property

protected NodeDataRepository,Neos\ContentRepository\Domain\Repository $nodeDataRepository
return Neos\ContentRepository\Domain\Repository\NodeDataRepository

$nodeTypeManager protected_oe property

protected NodeTypeManager,Neos\ContentRepository\Domain\Service $nodeTypeManager
return Neos\ContentRepository\Domain\Service\NodeTypeManager

$testablePersistenceEnabled protected_oe static_oe property

protected static bool $testablePersistenceEnabled
return boolean

$workspaceRepository protected_oe property

protected WorkspaceRepository,Neos\ContentRepository\Domain\Repository $workspaceRepository
return Neos\ContentRepository\Domain\Repository\WorkspaceRepository