示例#1
0
 /**
  * Default to loginRedirect, if set, on authError.
  *
  * @return void
  * @triggers Controller.startup $Controller
  */
 public function testDefaultToLoginRedirect()
 {
     $url = '/party/on';
     $this->Auth->request = $request = new Request($url);
     $request->env('HTTP_REFERER', false);
     $request->addParams(Router::parse($url));
     $request->addPaths(['base' => 'dirname', 'webroot' => '/dirname/']);
     Router::pushRequest($request);
     $this->Auth->config('authorize', ['Controller']);
     $this->Auth->setUser(['username' => 'mariano', 'password' => 'cake']);
     $this->Auth->config('loginRedirect', ['controller' => 'something', 'action' => 'else']);
     $response = new Response();
     $Controller = $this->getMock('Cake\\Controller\\Controller', ['on', 'redirect'], [$request, $response]);
     $event = new Event('Controller.startup', $Controller);
     // Should not contain basedir when redirect is called.
     $expected = '/something/else';
     $Controller->expects($this->once())->method('redirect')->with($this->equalTo($expected));
     $this->Auth->startup($event);
 }
 /**
  * Test splicing in paths.
  *
  * @return void
  */
 public function testAddPaths()
 {
     $request = new Request();
     $request->webroot = '/some/path/going/here/';
     $result = $request->addPaths(['random' => '/something', 'webroot' => '/', 'here' => '/', 'base' => '/base_dir']);
     $this->assertSame($result, $request, 'Method did not return itself. %s');
     $this->assertEquals('/', $request->webroot);
     $this->assertEquals('/base_dir', $request->base);
     $this->assertEquals('/', $request->here);
     $this->assertFalse(isset($request->random));
 }