Completed
Push — master ( eb83f4...bb238e )
by Maximilian
14s
created

tests/WebTest/Admin/ContentAdminTest.php (1 issue)

mismatching argument types.

Documentation Minor

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace Sonata\DoctrinePHPCRAdminBundle\Tests\WebTest\Admin;
4
5
use Symfony\Cmf\Component\Testing\Functional\BaseTestCase;
6
7
class ContentAdminTest extends BaseTestCase
8
{
9
    public function setUp()
10
    {
11
        $this->db('PHPCR')->loadFixtures(array('Sonata\DoctrinePHPCRAdminBundle\Tests\Resources\DataFixtures\Phpcr\LoadTreeData'));
12
        $this->client = $this->createClient();
13
    }
14
15
    public function testContentList()
16
    {
17
        $crawler = $this->client->request('GET', '/admin/tests/resources/content/list');
18
        $res = $this->client->getResponse();
19
20
        $this->assertResponseSuccess($res);
21
        $this->assertCount(1, $crawler->filter('html:contains("Content 1")'));
22
    }
23
24
    public function testContentWithChildEdit()
25
    {
26
        $crawler = $this->client->request('GET', '/admin/tests/resources/content/test/content/content-1/edit');
27
        $res = $this->client->getResponse();
28
29
        $this->assertResponseSuccess($res);
30
        $this->assertCount(1, $crawler->filter('input[value="content-1"]'));
31
        $this->assertCount(1, $crawler->filter('input[value="Content 1"]'));
32
        $this->assertCount(1, $crawler->filter('input[value="/test/content"]'));
33
        $this->assertCount(1, $crawler->filter('input[value="/test/routes/route-1"]'));
34
        // ToDo: Sub Admin for child association
35
        $this->assertCount(1, $crawler->filter('div[id$="child"] select'));
36
37
        // see the routes selection of a ModelType
38
        $this->assertCount(1, $crawler->filter('div[id$="_routes"] select'));
39
    }
40
41
    public function testContentWithChildrenEdit()
42
    {
43
        $crawler = $this->client->request('GET', '/admin/tests/resources/content/test/content/content-2/edit');
44
        $res = $this->client->getResponse();
45
46
        $this->assertResponseSuccess($res);
47
        $this->assertCount(1, $crawler->filter('input[value="content-2"]'));
48
        $this->assertCount(1, $crawler->filter('input[value="Content 2"]'));
49
        $this->assertCount(1, $crawler->filter('input[value="/test/content"]'));
50
51
        // see the children table view of a CollectionType
52
        $this->assertCount(1, $crawler->filter('div[id$="_children"] table'));
53
    }
54
55
    public function testContentCreate()
56
    {
57
        $crawler = $this->client->request('GET', '/admin/tests/resources/content/create');
58
        $res = $this->client->getResponse();
59
        $this->assertResponseSuccess($res);
60
61
        $button = $crawler->selectButton('Create');
62
        $form = $button->form();
63
        $node = $form->getFormNode();
64
        $actionUrl = $node->getAttribute('action');
65
        $uniqId = substr(strstr($actionUrl, '='), 1);
66
67
        $form[$uniqId.'[parentDocument]'] = '/test/content';
68
        $form[$uniqId.'[name]'] = 'foo-test';
69
        $form[$uniqId.'[title]'] = 'Foo Test';
70
71
        $this->client->submit($form);
0 ignored issues
show
$form is of type array<string,string>, but the function expects a object<Symfony\Component\DomCrawler\Form>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
72
        $res = $this->client->getResponse();
73
74
        // If we have a 302 redirect, then all is well
75
        $this->assertEquals(302, $res->getStatusCode());
76
    }
77
78
    public function testShowContent()
79
    {
80
        $crawler = $this->client->request('GET', '/admin/tests/resources/content/test/content/content-1/show');
81
        $res = $this->client->getResponse();
82
83
        if ($res->getStatusCode() !== 200) {
84
            echo $res->getContent();
85
        }
86
        $this->assertResponseSuccess($res);
87
    }
88
}
89