Как тестировать маршруты на основе субдоменов в Symfony2

У меня есть приложение, которое использует поддомены для маршрутизации к агентствам:

foo.domain.dev -> Agency:showAction(foo)
bar.domain.dev -> Agency:showAction(bar)
domain.dev     -> Agency:indexAction()

Каждое из них соответствует объекту агентства и контроллеру.

У меня есть прослушиватель, который прослушивает событие onDomainParse и записывает субдомен в атрибуты запроса.

/**
* Listens for on domainParse event
* Writes to request attributes
*/
class SubdomainListener {
   public function onDomainParse(Event $event)
   {
       $request = $event->getRequest();
       $session = $request->getSession();
       // Split the host name into tokens
       $tokens = $this->tokenizeHost($request->getHost());

       if (isset($tokens['subdomain'])){
           $request->attributes->set('_subdomain',$tokens['subdomain']);
       }

   }
   //...
 }

Затем я использую это в контроллере для перенаправления на действие show:

class AgencyController extends Controller
{

    /**
     * Lists all Agency entities.
     *
     */
    public function indexAction()
    {
        // We reroute to show action here.
        $subdomain = $this->getRequest()
                        ->attributes
                        ->get('_subdomain');
        if ($subdomain)
            return $this->showAction($subdomain);


        $em = $this->getDoctrine()->getEntityManager();

        $agencies = $em->getRepository('NordRvisnCoreBundle:Agency')->findAll();

        return $this->render('NordRvisnCoreBundle:Agency:index.html.twig', array(
            'agencies' => $agencies
        ));
    }
    // ...

}

Мой вопрос:

Как мне сымитировать это при выполнении теста с помощью WebTestCase?

6
задан max 20 May 2012 в 21:35
поделиться