Passed
Push — master ( d26004...ab777b )
by Jan
04:54
created

DatatablesAvailabilityTest::testDataTable()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 17
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 9
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 17
rs 9.9666
1
<?php
2
/**
3
 * This file is part of Part-DB (https://github.com/Part-DB/Part-DB-symfony).
4
 *
5
 * Copyright (C) 2019 - 2020 Jan Böhmer (https://github.com/jbtronics)
6
 *
7
 * This program is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU General Public License
9
 * as published by the Free Software Foundation; either version 2
10
 * of the License, or (at your option) any later version.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU General Public License
18
 * along with this program; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
20
 */
21
22
namespace App\Tests;
23
24
25
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
26
27
class DatatablesAvailabilityTest extends WebTestCase
28
{
29
    /**
30
     * @dataProvider urlProvider
31
     * @param  string  $url
32
     */
33
    public function testDataTable(string $url)
34
    {
35
        //We have localized routes
36
        $url = '/en'.$url;
37
38
        //Try to access pages with admin, because he should be able to view every page!
39
        $client = static::createClient([], [
40
            'PHP_AUTH_USER' => 'admin',
41
            'PHP_AUTH_PW' => 'test',
42
        ]);
43
44
        $client->request('GET', $url);
45
        $this->assertTrue($client->getResponse()->isSuccessful(), 'Request not successful. Status code is '.$client->getResponse()->getStatusCode());
46
47
        $client->request('POST', $url, ['_dt' => 'dt']);
48
        $this->assertTrue($client->getResponse()->isSuccessful());
49
        $this->assertJson($client->getResponse()->getContent());
50
    }
51
52
    public function urlProvider()
53
    {
54
        //Part lists
55
        yield ['/category/1/parts'];
56
        yield ['/footprint/1/parts'];
57
        yield ['/manufacturer/1/parts'];
58
        yield ['/store_location/1/parts'];
59
        yield ['/supplier/1/parts'];
60
        yield ['/parts/by_tag/Test'];
61
        yield ['/parts/search?keyword=test'];
62
        yield ['/parts'];
63
64
        yield ['/log/'];
65
66
        yield ['/attachment/list'];
67
68
    }
69
}