Bolt\Tests\Controller\Backend\RecordsTest::testRelated PHP Метод

testRelated() публичный Метод

public testRelated ( )
    public function testRelated()
    {
        $this->setRequest(Request::create('/bolt/relatedto/showcases/1'));
        $response = $this->controller()->related($this->getRequest(), 'showcases', 1);
        $context = $response->getContext();
        $this->assertEquals(1, $context['context']['id']);
        $this->assertEquals('Showcase', $context['context']['name']);
        $this->assertEquals('Showcases', $context['context']['contenttype']['name']);
        $this->assertEquals(2, count($context['context']['relations']));
        // By default we show the first one
        $this->assertEquals('Entries', $context['context']['show_contenttype']['name']);
        // Now we specify we want to see pages
        $this->setRequest(Request::create('/bolt/relatedto/showcases/1', 'GET', ['show' => 'pages']));
        $response = $this->controller()->related($this->getRequest(), 'showcases', 1);
        $context = $response->getContext();
        $this->assertEquals('Pages', $context['context']['show_contenttype']['name']);
        // Try a request where there are no relations
        $this->setRequest(Request::create('/bolt/relatedto/pages/1'));
        $response = $this->controller()->related($this->getRequest(), 'pages', 1);
        $context = $response->getContext();
        $this->assertNull($context['context']['relations']);
        // Test redirect when user isn't allowed.
        $permissions = $this->getMockPermissions();
        $permissions->expects($this->any())->method('isAllowed')->will($this->returnValue(false));
        $this->setService('permissions', $permissions);
        $this->setRequest(Request::create('/bolt/relatedto/showcases/1'));
        $response = $this->controller()->related($this->getRequest(), 'showcases', 1);
        $this->assertEquals('/bolt', $response->getTargetUrl());
    }