Completed
Push — master ( 1ecbe4...2ec63c )
by Kamil
21:52
created

UpdateConfigurableProductPage::getCodeElement()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
/*
4
 * This file is part of the Sylius package.
5
 *
6
 * (c) Paweł Jędrzejewski
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Sylius\Behat\Page\Admin\Product;
13
14
use Sylius\Behat\Behaviour\ChecksCodeImmutability;
15
use Sylius\Behat\Page\Admin\Crud\UpdatePage as BaseUpdatePage;
16
17
/**
18
 * @author Łukasz Chruściel <[email protected]>
19
 */
20
class UpdateConfigurableProductPage extends BaseUpdatePage implements UpdateConfigurableProductPageInterface
21
{
22
    use ChecksCodeImmutability;
23
24
    /**
25
     * {@inheritdoc}
26
     */
27
    public function nameItIn($name, $localeCode)
28
    {
29
        $this->getDocument()->fillField(
30
            sprintf('sylius_product_translations_%s_name', $localeCode), $name
31
        );
32
    }
33
34
    /**
35
     * {@inheritdoc}
36
     */
37
    public function isProductOptionChosen($option)
38
    {
39
        return $this->getElement('options')->find('named', array('option', $option))->hasAttribute('selected');
40
    }
41
42
    /**
43
     * @return bool
44
     */
45
    public function isProductOptionsDisabled()
46
    {
47
        return 'disabled' === $this->getElement('options')->getAttribute('disabled');
48
    }
49
50
    /**
51
     * {@inheritdoc}
52
     */
53
    protected function getCodeElement()
54
    {
55
        return $this->getElement('code');
56
    }
57
58
    /**
59
     * {@inheritdoc}
60
     */
61
    protected function getDefinedElements()
62
    {
63
        return array_merge(parent::getDefinedElements(), [
64
            'code' => '#sylius_product_code',
65
            'options' => '#sylius_product_options',
66
            'price' => '#sylius_product_masterVariant_price',
67
            'name' => '#sylius_product_translations_en_US_name',
68
        ]);
69
    }
70
}
71