Вход Регистрация
Файл: gapps/vendor/symfony/http-kernel/Tests/Fragment/RoutableFragmentRendererTest.php
Строк: 181
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentHttpKernelTestsFragment;

use 
SymfonyComponentHttpFoundationRequest;
use 
SymfonyComponentHttpKernelControllerControllerReference;

class 
RoutableFragmentRendererTest extends PHPUnit_Framework_TestCase
{
    
/**
     * @dataProvider getGenerateFragmentUriData
     */
    
public function testGenerateFragmentUri($uri$controller)
    {
        
$this->assertEquals($uri$this->callGenerateFragmentUriMethod($controllerRequest::create('/')));
    }

    
/**
     * @dataProvider getGenerateFragmentUriData
     */
    
public function testGenerateAbsoluteFragmentUri($uri$controller)
    {
        
$this->assertEquals('http://localhost'.$uri$this->callGenerateFragmentUriMethod($controllerRequest::create('/'), true));
    }

    public function 
getGenerateFragmentUriData()
    {
        return array(
            array(
'/_fragment?_path=_format%3Dhtml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array(), array())),
            array(
'/_fragment?_path=_format%3Dxml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array('_format' => 'xml'), array())),
            array(
'/_fragment?_path=foo%3Dfoo%26_format%3Djson%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array('foo' => 'foo''_format' => 'json'), array())),
            array(
'/_fragment?bar=bar&_path=foo%3Dfoo%26_format%3Dhtml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array('foo' => 'foo'), array('bar' => 'bar'))),
            array(
'/_fragment?foo=foo&_path=_format%3Dhtml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array(), array('foo' => 'foo'))),
            array(
'/_fragment?_path=foo%255B0%255D%3Dfoo%26foo%255B1%255D%3Dbar%26_format%3Dhtml%26_locale%3Den%26_controller%3Dcontroller', new ControllerReference('controller', array('foo' => array('foo''bar')), array())),
        );
    }

    public function 
testGenerateFragmentUriWithARequest()
    {
        
$request Request::create('/');
        
$request->attributes->set('_format''json');
        
$request->setLocale('fr');
        
$controller = new ControllerReference('controller', array(), array());

        
$this->assertEquals('/_fragment?_path=_format%3Djson%26_locale%3Dfr%26_controller%3Dcontroller'$this->callGenerateFragmentUriMethod($controller$request));
    }

    
/**
     * @expectedException LogicException
     * @dataProvider      getGenerateFragmentUriDataWithNonScalar
     */
    
public function testGenerateFragmentUriWithNonScalar($controller)
    {
        
$this->callGenerateFragmentUriMethod($controllerRequest::create('/'));
    }

    public function 
getGenerateFragmentUriDataWithNonScalar()
    {
        return array(
            array(new 
ControllerReference('controller', array('foo' => new Foo(), 'bar' => 'bar'), array())),
            array(new 
ControllerReference('controller', array('foo' => array('foo' => 'foo'), 'bar' => array('bar' => new Foo())), array())),
        );
    }

    private function 
callGenerateFragmentUriMethod(ControllerReference $referenceRequest $request$absolute false)
    {
        
$renderer $this->getMockForAbstractClass('SymfonyComponentHttpKernelFragmentRoutableFragmentRenderer');
        
$r = new ReflectionObject($renderer);
        
$m $r->getMethod('generateFragmentUri');
        
$m->setAccessible(true);

        return 
$m->invoke($renderer$reference$request$absolute);
    }
}

class 
Foo
{
    public 
$foo;

    public function 
getFoo()
    {
        return 
$this->foo;
    }
}
Онлайн: 1
Реклама