mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
d2105ef7a6
Too many clashes with other steps otherwise, e.g. with 'And the preview contains "You can fill"'. Also removed some duplicated code no longer necessary because we use inheritance rather than composition
51 lines
1.7 KiB
PHP
51 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace SilverStripe\Cms\Test\Behaviour;
|
|
|
|
use Behat\Behat\Context\ClosuredContextInterface,
|
|
Behat\Behat\Context\TranslatedContextInterface,
|
|
Behat\Behat\Context\BehatContext,
|
|
Behat\Behat\Context\Step,
|
|
Behat\Behat\Event\StepEvent,
|
|
Behat\Behat\Exception\PendingException,
|
|
Behat\Mink\Driver\Selenium2Driver,
|
|
Behat\Gherkin\Node\PyStringNode,
|
|
Behat\Gherkin\Node\TableNode;
|
|
|
|
// PHPUnit
|
|
require_once 'PHPUnit/Autoload.php';
|
|
require_once 'PHPUnit/Framework/Assert/Functions.php';
|
|
|
|
/**
|
|
* Context used to create fixtures in the SilverStripe ORM.
|
|
*/
|
|
class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext
|
|
{
|
|
|
|
/**
|
|
* Find or create a redirector page and link to another existing page.
|
|
* Example: Given a "page" "My Redirect" which redirects to a "page" "Page 1"
|
|
*
|
|
* @Given /^(?:(an|a|the) )"(?<type>[^"]+)" "(?<id>[^"]+)" (:?which )?redirects to (?:(an|a|the) )"(?<targetType>[^"]+)" "(?<targetId>[^"]+)"$/
|
|
*/
|
|
public function stepCreateRedirectorPage($type, $id, $targetType, $targetId)
|
|
{
|
|
$class = 'RedirectorPage';
|
|
$targetClass = $this->convertTypeToClass($targetType);
|
|
|
|
$targetObj = $this->fixtureFactory->get($targetClass, $targetId);
|
|
if(!$targetObj) $targetObj = $this->fixtureFactory->get($targetClass, $targetId);
|
|
|
|
$fields = array('LinkToID' => $targetObj->ID);
|
|
$obj = $this->fixtureFactory->get($class, $id);
|
|
if($obj) {
|
|
$obj->update($fields);
|
|
} else {
|
|
$obj = $this->fixtureFactory->createObject($class, $id, $fields);
|
|
}
|
|
$obj->write();
|
|
$obj->publish('Stage', 'Live');
|
|
}
|
|
|
|
}
|