+++ /dev/null
-<?php
-
-/**
- * @file
- * Contains \Drupal\DrupalExtension\Context\ConfigContext.
- */
-
-namespace Drupal\DrupalExtension\Context;
-
-use Behat\Behat\Context\TranslatableContext;
-use Behat\Gherkin\Node\TableNode;
-
-/**
- * Provides pre-built step definitions for interacting with Drupal config.
- */
-class ConfigContext extends RawDrupalContext implements TranslatableContext {
-
- /**
- * {@inheritDoc}
- */
- public static function getTranslationResources() {
- return glob(__DIR__ . '/../../../../i18n/*.xliff');
- }
-
- /**
- * Keep track of any config that was changed so they can easily be reverted.
- *
- * @var array
- */
- protected $config = array();
-
- /**
- * Revert any changed config.
- *
- * @AfterScenario
- */
- public function cleanConfig() {
- // Revert config that was changed.
- foreach ($this->config as $name => $key_value) {
- foreach ($key_value as $key => $value) {
- $this->getDriver()->configSet($name, $key, $value);
- }
- }
- $this->config = array();
- }
-
- /**
- * Sets basic configuration item.
- *
- * @param string $name
- * The name of the configuration object.
- * @param string $key
- * Identifier to store value in configuration.
- * @param mixed $value
- * Value to associate with identifier.
- *
- * @Given I set the configuration item :name with key :key to :value
- */
- public function setBasicConfig($name, $key, $value) {
- $this->setConfig($name, $key, $value);
- }
-
- /**
- * Sets complex configuration.
- *
- * @param string $name
- * The name of the configuration object.
- * @param string $key
- * Identifier to store value in configuration.
- * @param TableNode $config_table
- * The table listing configuration keys and values.
- *
- * @Given I set the configuration item :name with key :key with values:
- *
- * Provide configuration data in the following format:
- * | key | value |
- * | foo | bar |
- */
- public function setComplexConfig($name, $key, TableNode $config_table) {
- $value = array();
- foreach ($config_table->getHash() as $row) {
- // Allow json values for extra complexity.
- if (json_decode($row['value'])) {
- $row['value'] = json_decode($row['value'], TRUE);
- }
- $value[$row['key']] = $row['value'];
- }
- $this->setConfig($name, $key, $value);
- }
-
- /**
- * Sets a value in a configuration object.
- *
- * @param string $name
- * The name of the configuration object.
- * @param string $key
- * Identifier to store value in configuration.
- * @param mixed $value
- * Value to associate with identifier.
- */
- public function setConfig($name, $key, $value) {
- $backup = $this->getDriver()->configGet($name, $key);
- $this->getDriver()->configSet($name, $key, $value);
- $this->config[$name][$key] = $backup;
- }
-
-}
\ No newline at end of file