Completed
Push — Leksat-patch-1 ( 31c1c0...66f278 )
by Jonathan
01:23
created

DrupalParametersTrait::getDrupalText()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 5

Duplication

Lines 7
Ratio 87.5 %

Importance

Changes 0
Metric Value
dl 7
loc 8
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 5
nc 2
nop 1
1
<?php
2
3
namespace Drupal\DrupalExtension;
4
5
/**
6
 * Provides helpful methods for dealing with Drupal parameters.
7
 *
8
 * These parameters are placed in behat.yml and can be used to define commonly
9
 * customized aspects of the Drupal installation such as CSS selectors,
10
 * interface text or region maps.
11
 */
12
trait DrupalParametersTrait
13
{
14
15
    /**
16
     * Test parameters.
17
     *
18
     * @var array
19
     */
20
    protected $drupalParameters;
21
22
    /**
23
     * Set parameters provided for Drupal.
24
     *
25
     * @param array $parameters
26
     *   The parameters to set.
27
     */
28
    public function setDrupalParameters(array $parameters)
29
    {
30
        $this->drupalParameters = $parameters;
31
    }
32
33
    /**
34
     * Returns a specific Drupal parameter.
35
     *
36
     * @param string $name
37
     *   Parameter name.
38
     *
39
     * @return mixed
40
     *   The value.
41
     */
42
    public function getDrupalParameter($name)
43
    {
44
        return isset($this->drupalParameters[$name]) ? $this->drupalParameters[$name] : null;
45
    }
46
47
    /**
48
     * Returns a specific Drupal text value.
49
     *
50
     * @param string $name
51
     *   Text value name, such as 'log_out', which corresponds to the default
52
     *   'Log out' link text.
53
     *
54
     * @return string
55
     *   The text value.
56
     *
57
     * @throws \Exception
58
     *   Thrown when the text is not present in the list of parameters.
59
     */
60 View Code Duplication
    public function getDrupalText($name)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
61
    {
62
        $text = $this->getDrupalParameter('text');
63
        if (!isset($text[$name])) {
64
            throw new \Exception(sprintf('No such Drupal string: %s', $name));
65
        }
66
        return $text[$name];
67
    }
68
69
    /**
70
     * Returns a specific CSS selector.
71
     *
72
     * @param string $name
73
     *   The name of the CSS selector.
74
     *
75
     * @return string
76
     *   The CSS selector.
77
     *
78
     * @throws \Exception
79
     *   Thrown when the selector is not present in the list of parameters.
80
     */
81 View Code Duplication
    public function getDrupalSelector($name)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
82
    {
83
        $text = $this->getDrupalParameter('selectors');
84
        if (!isset($text[$name])) {
85
            throw new \Exception(sprintf('No such selector configured: %s', $name));
86
        }
87
        return $text[$name];
88
    }
89
}
90