Example #1
0
 public function testHandle()
 {
     $request = Request::create('http://localhost/test', 'GET', array(), array(), array(), array('PATH_INFO' => '/test'));
     $fileCache = new FileCacheModuleProvider($this->application);
     $fileCache->setCachePath(vfsStream::url('cacheDir'));
     $this->application[\Phruts\Util\Globals::MODULE_CONFIG_PROVIDER] = $fileCache;
     $response = $this->actionKernel->handle($request, HttpKernelInterface::MASTER_REQUEST, false);
     $this->assertEquals(200, $response->getStatusCode(), $response->getContent());
     //        $request = Request::create('http://localhost/admin/test', 'GET', array(), array(), array(), array('PATH_INFO' => '/admin/test'));
     //        RequestUtils::selectModule($request, $this->application);
     //        $response = $this->actionKernel->handle($request, HttpKernelInterface::MASTER_REQUEST, false);
     //        $this->assertEquals(200, $response->getStatusCode(), $response->getContent());
 }
Example #2
0
 public function testLocale()
 {
     $getLocale = self::getMethod('getLocale');
     $setLocale = self::getMethod('setLocale');
     $this->request->setDefaultLocale('fr');
     $this->actionKernel->method('getApplication')->willReturn(array('locale' => 'fr'));
     // Source from the default space in the application
     $this->assertEquals('fr', $getLocale->invokeArgs($this->action, array($this->request)));
     // Source from the session if set
     $setLocale->invokeArgs($this->action, array($this->request, 'gb'));
     $this->assertEquals('gb', $getLocale->invokeArgs($this->action, array($this->request)));
     $setLocale->invokeArgs($this->action, array($this->request, null));
     $this->assertEquals('fr', $getLocale->invokeArgs($this->action, array($this->request)));
 }
Example #3
0
 /**
  * Do a forward to specified uri using request dispatcher.
  *
  * This method is used by all internal method needing to do a forward.
  *
  * @param string $uri Context-relative URI to forward to
  * @param \Symfony\Component\HttpFoundation\Request $request Current page request
  * @param \Symfony\Component\HttpFoundation\Response $response Current page response
  */
 protected function doForward($uri, \Symfony\Component\HttpFoundation\Request $request, \Symfony\Component\HttpFoundation\Response $response)
 {
     // Create a new URI
     $uri = $request->getUriForPath($uri);
     // Consider using standard $_POST, $_FILES etc.
     $subRequest = Request::create($uri, $request->getMethod(), $request->getMethod() == 'POST' ? $request->request->all() : $request->query->all(), $request->cookies->all(), $request->files->all(), $request->server->all());
     // If it was a POST then ensure it also has any query parameters
     if ($request->getMethod() == 'POST') {
         $subRequest->query->add($request->query->all());
     }
     if ($request->getSession()) {
         $subRequest->setSession($request->getSession());
     }
     // Obtain a new subrequest without Silex attributes
     $allowedKeys = array_filter(array_keys($request->attributes->all()), function ($key) {
         // Filter out silex "_" attributes
         return substr($key, 0, 1) != '_';
     });
     $subRequest->attributes->add(array_intersect_key($request->attributes->all(), array_flip($allowedKeys)));
     // Call for a sub-request (Note: Non-conventionally passes parent query/attributes)
     $subResponse = $this->actionKernel->getApplication()->handle($subRequest, HttpKernelInterface::SUB_REQUEST, false);
     // Update our current response to bring in the response
     $response->setContent($subResponse->getContent());
     $response->setStatusCode($subResponse->getStatusCode());
     $response->setCharset($subResponse->getCharset());
     $response->setProtocolVersion($subResponse->getProtocolVersion());
     // Determine whether all headers are 'added' or should replace (?)
     $response->headers->add($subResponse->headers->all());
 }
Example #4
0
 /**
  * Set the user's currently selected Locale.
  *
  * @param \Symfony\Component\HttpFoundation\Request $request The request we are processing
  * @param string $locale The user's selected Locale to be set,
  * or null to select the system's default Locale
  */
 protected function setLocale(Request $request, $locale)
 {
     $session = $request->getSession();
     if (is_null($locale)) {
         // Silex core parameter
         $app = $this->actionKernel->getApplication();
         $locale = $app['locale'];
     }
     $session->set(\Phruts\Util\Globals::LOCALE_KEY, $locale);
 }