-
Notifications
You must be signed in to change notification settings - Fork 33
Expand file tree
/
Copy pathMagazineSubControllerTest.php
More file actions
67 lines (47 loc) · 2.46 KB
/
Copy pathMagazineSubControllerTest.php
File metadata and controls
67 lines (47 loc) · 2.46 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
60
61
62
63
64
65
66
67
<?php
declare(strict_types=1);
namespace App\Tests\Functional\Controller\Magazine;
use App\Tests\WebTestCase;
class MagazineSubControllerTest extends WebTestCase
{
public function testUserCanSubAndUnsubMagazine(): void
{
$this->client->loginUser($this->getUserByUsername('JaneDoe'));
$this->getMagazineByName('acme');
$crawler = $this->client->request('GET', '/m/acme');
// Sub magazine
$this->client->submit($crawler->filter('#sidebar .magazine')->selectButton('Sub')->form());
$crawler = $this->client->followRedirect();
$this->assertSelectorExists('#sidebar form[name=magazine_subscribe] .active');
$this->assertSelectorTextContains('#sidebar .magazine', 'Unsub');
$this->assertSelectorTextContains('#sidebar .magazine', '2');
// Unsub magazine
$this->client->submit($crawler->filter('#sidebar .magazine')->selectButton('Unsub')->form());
$this->client->followRedirect();
$this->assertSelectorTextContains('#sidebar .magazine', '1');
}
public function testXmlUserCanSubMagazine(): void
{
$this->client->loginUser($this->getUserByUsername('JaneDoe'));
$this->getMagazineByName('acme');
$crawler = $this->client->request('GET', '/m/acme');
$this->client->setServerParameter('HTTP_X-Requested-With', 'XMLHttpRequest');
$this->client->submit($crawler->filter('#sidebar .magazine')->selectButton('Sub')->form());
$this->assertStringContainsString('{"html":', $this->client->getResponse()->getContent());
$this->assertStringContainsString('Unsub', $this->client->getResponse()->getContent());
}
public function testXmlUserCanUnsubMagazine(): void
{
$this->client->loginUser($this->getUserByUsername('JaneDoe'));
$this->getMagazineByName('acme');
$crawler = $this->client->request('GET', '/m/acme');
// Sub magazine
$this->client->submit($crawler->filter('#sidebar .magazine')->selectButton('Sub')->form());
$crawler = $this->client->followRedirect();
// Unsub magazine
$this->client->setServerParameter('HTTP_X-Requested-With', 'XMLHttpRequest');
$this->client->submit($crawler->filter('#sidebar .magazine')->selectButton('Unsub')->form());
$this->assertStringContainsString('{"html":', $this->client->getResponse()->getContent());
$this->assertStringContainsString('Sub', $this->client->getResponse()->getContent());
}
}