1. Go to this page and download the library: Download sandstorm/e2etesttools library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sandstorm / e2etesttools example snippets
namespace PACKAGEKEY\Command;
use Neos\ContentRepository\Domain\Model\NodeInterface;
use Neos\ContentRepository\Domain\Service\ContextFactoryInterface;
use Neos\Flow\Annotations as Flow;
use Neos\Flow\Cli\CommandController;
use Sandstorm\E2ETestTools\StepGenerator\NodeTableBuilderService;
class StepGeneratorCommandController extends CommandController
{
/**
* @Flow\Inject
*/
protected ContextFactoryInterface $contextFactory;
/**
* Main API for creating NodeTable instances to print BDD steps.
*
* @Flow\Inject
*/
protected NodeTableBuilderService $nodeTableBuilderService;
public function homepageCommand()
{
$nodeTable = $this->nodeTableBuilderService->nodeTable()
->withDefaultNodeProperties(['Language' => 'de'])
->build();
$siteNode = $this->getSiteNode();
$nodeTable->addParents($siteNode);
$nodeTable->addNode($siteNode);
$nodeTable->addNodesUnderneathExcludingAutoGeneratedChildNodes($siteNode, '!Neos.Neos:Document'); // we recurse into the content of the homepage
$nodeTable->addNodesUnderneathExcludingAutoGeneratedChildNodes($siteNode, 'Neos.Neos:Document'); // we render the remaining document nodes so we can have a menu rendered (but without content)
$nodeTable->print();
}
/**
* @return NodeInterface
*/
public function getSiteNode(): NodeInterface
{
$context = $this->contextFactory->create([
'workspaceName' => 'live',
'invisibleContentShown' => true,
'dimensions' => [
'language' => ['de']
],
'targetDimensions' => [
'language' => 'de'
]
]);
return $context->getCurrentSiteNode();
}
}
// ... Step Generator Command Controller
public function homepageCommand()
{
$nodeTable = $this->nodeTableBuilderService->nodeTable()
->withDefaultNodeProperties(['Language' => 'de'])
// !!! Here you setup your directory for storing your fixture files.
// It will print a path relative to the Flow package directory.
// -> most likely: Sites/Your.PackageKey/Tests/Behavior/Features/Homepage/Resources/someSHA1.png (depending on the type of the composer package)
->withFixtureBasePath('Your.PackageKey', 'Tests/Behavior/Features/Homepage/Resources/')
->build();
$siteNode = $this->getSiteNode();
$nodeTable->addParents($siteNode);
$nodeTable->addNode($siteNode);
$nodeTable->addNodesUnderneathExcludingAutoGeneratedChildNodes($siteNode, '!Neos.Neos:Document'); // we recurse into the content of the homepage
$nodeTable->addNodesUnderneathExcludingAutoGeneratedChildNodes($siteNode, 'Neos.Neos:Document'); // we render the remaining document nodes so we can have a menu rendered (but without content)
// when the table is printed, it
...
/**
* @Given my base URL is :baseUrl
*/
public function myBaseUrlIs($baseUrl)
{
$this->setSystemUnderTestUrlModifier(function (string $staticBaseUrl) use ($baseUrl) {
return $baseUrl;
});
}
/**
* @Given my subdomain is :subdomain
*/
public function mySubdomainIs($subdomain)
{
$this->setSystemUnderTestUrlModifier(function (string $baseUrl) use ($subdomain) {
return sprintf("%s://%s.%s.nip.io:%s/%s",
parse_url($baseUrl, PHP_URL_SCHEME),
$subdomain,
parse_url($baseUrl, PHP_URL_HOST),
parse_url($baseUrl, PHP_URL_PORT),
parse_url($baseUrl, PHP_URL_PATH),
);
});
}
...
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.