Passed
Pull Request — master (#4)
by Raúl
02:04
created

ConfigureTest::installPagantisModule()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 23
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 15
nc 1
nop 0
dl 0
loc 23
rs 9.7666
c 0
b 0
f 0
1
<?php
2
3
namespace Test\Configure;
4
5
use Facebook\WebDriver\WebDriverBy;
6
use Facebook\WebDriver\WebDriverExpectedCondition;
7
use Test\PagantisOscommerceTest;
8
9
/**
10
 * Class ConfigureTest
11
 * @package Test\Configure
12
 *
13
 * @group oscommerce-configure
14
15
 */
16
class ConfigureTest extends PagantisOscommerceTest
17
{
18
    /**
19
     * testConfigurePagantisInOscommerce15
20
     */
21
    public function testConfigureAndConfigurePagantisInOscommerce()
22
    {
23
        $this->loginToBackOffice();
24
        $this->installPagantisModule();
25
        $this->configureModule();
26
        $this->quit();
27
    }
28
29
    /**
30
     * Login to the backoffice
31
     */
32
    public function loginToBackOffice()
33
    {
34
        $this->webDriver->get(self::OSCURL.self::BACKOFFICE_FOLDER);
35
        sleep(2);
36
37
        $usernameElementSearch = WebDriverBy::name('username');
38
        $condition = WebDriverExpectedCondition::visibilityOfElementLocated($usernameElementSearch);
39
        $this->waitUntil($condition);
40
41
        $this->findByName('username')->clear()->sendKeys($this->configuration['username']);
42
        $this->findByName('password')->clear()->sendKeys($this->configuration['password']);
43
44
45
        $this->webDriver->executeScript('$("#tdb1").click();');
46
47
        $loginElements = $this->webDriver->findElements(WebDriverBy::className('messageStackError'));
48
        $this->assertEquals(0, count($loginElements), "Login KO");
49
50
        $elementSearch = WebDriverBy::className('headerBar');
51
        $condition = WebDriverExpectedCondition::visibilityOfElementLocated($elementSearch);
52
        $this->waitUntil($condition);
53
54
        $text = $this->findByClass('headerBar')->getText();
55
56
        $this->assertContains('Logged in', $text, "Login OK");
57
    }
58
59
    /**
60
     * Configure PagantisModule
61
     */
62
    public function installPagantisModule()
63
    {
64
        $this->findByLinkText('Modules')->click();
65
        sleep(1);
66
        $this->findByLinkText('Payment')->click();
67
68
        // click on install new module
69
        $button = WebDriverBy::id('tdb1');
70
        $condition = WebDriverExpectedCondition::visibilityOfElementLocated($button);
71
        $this->waitUntil($condition);
72
        $this->findById('tdb1')->click();
73
74
        // click on Pagantis
75
        $button = WebDriverBy::xpath("//td[contains(text(), 'Pagantis')]");
76
        $condition = WebDriverExpectedCondition::visibilityOfElementLocated($button);
77
        $this->waitUntil($condition);
78
        $this->findByXpath("//td[contains(text(), 'Pagantis')]")->click();
79
80
        // Click on install module
81
        $button = WebDriverBy::id('tdb2');
82
        $condition = WebDriverExpectedCondition::visibilityOfElementLocated($button);
83
        $this->waitUntil($condition);
84
        $this->findById('tdb2')->click();
85
86
    }
87
88
    /**
89
     * Configure paylater module
90
     */
91
    public function configureModule()
92
    {
93
        // click on Edit
94
        $button = WebDriverBy::id('tdb2');
95
        $condition = WebDriverExpectedCondition::visibilityOfElementLocated($button);
96
        $this->waitUntil($condition);
97
        $this->findById('tdb2')->click();
98
99
        //enter PK and secret
100
        $pkElementSearch = WebDriverBy::name('configuration[MODULE_PAYMENT_PAGANTIS_PK]');
101
        $condition = WebDriverExpectedCondition::visibilityOfElementLocated($pkElementSearch);
102
        $this->waitUntil($condition);
103
104
        $this->findByName('configuration[MODULE_PAYMENT_PAGANTIS_PK]')
105
            ->clear()
106
            ->sendKeys($this->configuration['publicKey'])
107
        ;
108
109
        $this->findByName('configuration[MODULE_PAYMENT_PAGANTIS_SK]')
110
            ->clear()
111
            ->sendKeys($this->configuration['secretKey'])
112
        ;
113
114
        // click on Save
115
        $button = WebDriverBy::id('tdb2');
116
        $condition = WebDriverExpectedCondition::visibilityOfElementLocated($button);
117
        $this->waitUntil($condition);
118
        $this->findById('tdb2')->click();
119
    }
120
}
121