/**
  * Initializes context.
  * Every scenario gets it's own context object.
  *
  * @param array $parameters context parameters (set them up through behat.yml)
  */
 public function __construct(array $parameters)
 {
     if (!isset($parameters['template'])) {
         throw new \RuntimeException("Template not set. Please start testsuite using the --profile argument.");
     }
     self::$template = $parameters['template'];
     $this->dirtyConfigElements = array();
     $this->useContext('shopware', new ShopwareContext($parameters));
     $this->useContext('account', new AccountContext($parameters));
     $this->useContext('checkout', new CheckoutContext($parameters));
     $this->useContext('listing', new ListingContext($parameters));
     $this->useContext('detail', new DetailContext($parameters));
     $this->useContext('note', new NoteContext($parameters));
     $this->useContext('form', new FormContext($parameters));
     $this->useContext('blog', new BlogContext($parameters));
     $this->useContext('sitemap', new SitemapContext($parameters));
     $this->useContext('special', new SpecialContext($parameters));
     $this->useContext('seo', new SeoContext($parameters));
     $this->useContext('basicSettings', new BasicSettingsContext($parameters));
 }