-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEmailCodeCest.php
More file actions
59 lines (44 loc) · 1.77 KB
/
EmailCodeCest.php
File metadata and controls
59 lines (44 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
namespace Tests\Acceptance;
use Codeception\Configuration;
use ProxiedMail\Client\Entrypoint\PxdMailApinitializer;
use Tests\Support\AcceptanceTester;
use ProxiedMail\Client\Config\Config;
class EmailCodeCest
{
public function _before(AcceptanceTester $I)
{
}
public function frontpageWorks(
AcceptanceTester $I
) {
$proxiedMailApiToken = Configuration::config()['PROXIEDMAIL_API_TOKEN'];
$config = new Config();
$config->setApiToken($proxiedMailApiToken);
$api = PxdMailApinitializer::init($config);
$proxyEmail = $api->createProxyEmail();
$I->amOnPage('/email-playground/index.html');
$I->fillField(['id' => 'name'], 'Tester');
$I->fillField(['id' => 'email'], $proxyEmail->getProxyAddress());
$I->executeJS('document.getElementById("submit").click()');
sleep(3);
$I->canSee('Check your mailbox');
$firstEmail = $api->waitUntilFirstEmail($proxyEmail->getId());
$I->assertSame($firstEmail->getSubject(), 'Code confirmation');
$text = $firstEmail->getPayload()['stripped-text'];
//find code after "Your confirmation code is"
preg_match('/Your confirmation code is ([0-9]+)/', $text, $matches);
var_dump($text);
$code = $matches[1];
$I->amOnPage('/email-playground/confirmation.html');
//testing negative behaviour
$I->fillField(['id' => 'confirmation_code'], mt_rand(0000, 9999));
$I->executeJS('document.getElementById("submit").click()');
sleep(1);
$I->canSee('Code is invalid');
$I->fillField(['id' => 'confirmation_code'], $code);
$I->executeJS('document.getElementById("submit").click()');
sleep(3);
$I->canSee('Code is valid');
}
}