useContext('BasicContext', new BasicContext($parameters)); $this->useContext('LoginContext', new LoginContext($parameters)); $this->useContext('CmsFormsContext', new CmsFormsContext($parameters)); $this->useContext('CmsUiContext', new CmsUiContext($parameters)); $fixtureContext = new FixtureContext($parameters); $fixtureContext->setFixtureFactory($this->getFixtureFactory()); $this->useContext('FixtureContext', $fixtureContext); // Use blueprints to set user name from identifier $factory = $fixtureContext->getFixtureFactory(); $blueprint = Injector::inst()->create('SilverStripe\\Dev\\FixtureBlueprint', 'SilverStripe\\Security\\Member'); $blueprint->addCallback('beforeCreate', function($identifier, &$data, &$fixtures) { if(!isset($data['FirstName'])) $data['FirstName'] = $identifier; }); $factory->define('SilverStripe\\Security\\Member', $blueprint); // Auto-publish pages foreach(ClassInfo::subclassesFor('SilverStripe\\CMS\\Model\\SiteTree') as $id => $class) { $blueprint = Injector::inst()->create('SilverStripe\\Dev\\FixtureBlueprint', $class); $blueprint->addCallback('afterCreate', function($obj, $identifier, &$data, &$fixtures) { $obj->publish('Stage', 'Live'); }); $factory->define($class, $blueprint); } } public function setMinkParameters(array $parameters) { parent::setMinkParameters($parameters); if(isset($parameters['files_path'])) { $this->getSubcontext('FixtureContext')->setFilesPath($parameters['files_path']); } } /** * @return FixtureFactory */ public function getFixtureFactory() { if(!$this->fixtureFactory) { $this->fixtureFactory = Injector::inst()->create('SilverStripe\\Dev\\BehatFixtureFactory'); } return $this->fixtureFactory; } public function setFixtureFactory(FixtureFactory $factory) { $this->fixtureFactory = $factory; } // // Place your definition and hook methods here: // // /** // * @Given /^I have done something with "([^"]*)"$/ // */ // public function iHaveDoneSomethingWith($argument) { // $container = $this->kernel->getContainer(); // $container->get('some_service')->doSomethingWith($argument); // } // }