public function initialize(ContextInterface $context) { // Set Drupal driver manager. $context->setDrupal($this->drupal); // Set event dispatcher. $context->setDispatcher($this->dispatcher); // Add all parameters to the context. $context->setDrupalParameters($this->parameters); // Add commonly used parameters as proper class variables. if (isset($this->parameters['basic_auth'])) { $context->basic_auth = $this->parameters['basic_auth']; } // Initialize any available sub-contexts. if (isset($this->parameters['subcontexts'])) { $paths = array(); // Drivers may specify paths to subcontexts. if ($this->parameters['subcontexts']['autoload']) { foreach ($this->drupal->getDrivers() as $name => $driver) { if ($driver instanceof DrupalSubContextFinderInterface) { $paths += $driver->getSubContextPaths(); } } } // Additional subcontext locations may be specified manually in behat.yml. if (isset($this->parameters['subcontexts']['paths'])) { $paths = array_merge($paths, $this->parameters['subcontexts']['paths']); } foreach ($paths as $path) { if ($subcontexts = $this->findAvailableSubContexts($path)) { $this->loadSubContexts($subcontexts); } } $context->initializeSubContexts(); } }