Inheritance: extends Dispatcher
Example #1
0
 /**
  * testFullPageCachingDispatch method
  *
  * @dataProvider cacheActionProvider
  * @return void
  */
 public function testFullPageCachingDispatch($url)
 {
     Configure::write('Cache.disable', false);
     Configure::write('Cache.check', true);
     Configure::write('debug', 2);
     Router::reload();
     Router::connect('/', array('controller' => 'test_cached_pages', 'action' => 'index'));
     Router::connect('/:controller/:action/*');
     App::build(array('View' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'View' . DS)), App::RESET);
     $dispatcher = new TestDispatcher();
     $request = new CakeRequest($url);
     $response = $this->getMock('CakeResponse', array('send'));
     $dispatcher->dispatch($request, $response);
     $out = $response->body();
     Configure::write('Dispatcher.filters', array('CacheDispatcher'));
     $request = new CakeRequest($url);
     $response = $this->getMock('CakeResponse', array('send'));
     $dispatcher = new TestDispatcher();
     $dispatcher->dispatch($request, $response);
     $cached = $response->body();
     $cached = preg_replace('/<!--+[^<>]+-->/', '', $cached);
     $this->assertTextEquals($out, $cached);
     $filename = $this->_cachePath($request->here());
     unlink($filename);
 }
Example #2
0
 /**
  * Tests that the Dispatcher does not return an empty action
  *
  * @return void
  * @access public
  */
 function testTrailingSlash()
 {
     $_POST = array();
     $_SERVER['PHP_SELF'] = '/cake/repo/branches/1.2.x.x/index.php';
     Router::reload();
     $Dispatcher = new TestDispatcher();
     Router::connect('/myalias/:action/*', array('controller' => 'my_controller', 'action' => null));
     $Dispatcher->base = false;
     $url = 'myalias/';
     //Fails
     $controller = $Dispatcher->dispatch($url, array('return' => 1));
     $result = $Dispatcher->parseParams($url);
     $this->assertEqual('index', $result['action']);
     $url = 'myalias';
     //Passes
     $controller = $Dispatcher->dispatch($url, array('return' => 1));
     $result = $Dispatcher->parseParams($url);
     $this->assertEqual('index', $result['action']);
 }
 /**
  * testFullPageCachingDispatch method
  *
  * @dataProvider cacheActionProvider
  * @return void
  */
 public function testFullPageCachingDispatch($url)
 {
     Configure::write('Cache.disable', false);
     Configure::write('Cache.check', true);
     Configure::write('debug', 2);
     Router::reload();
     Router::connect('/', array('controller' => 'test_cached_pages', 'action' => 'index'));
     Router::connect('/:controller/:action/*');
     App::build(array('View' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'View' . DS)), true);
     $dispatcher = new TestDispatcher();
     $request = new CakeRequest($url);
     $response = new CakeResponse();
     ob_start();
     $dispatcher->dispatch($request, $response);
     $out = ob_get_clean();
     ob_start();
     $dispatcher->cached($request->here());
     $cached = ob_get_clean();
     $result = str_replace(array("\t", "\r\n", "\n"), "", $out);
     $cached = preg_replace('/<!--+[^<>]+-->/', '', $cached);
     $expected = str_replace(array("\t", "\r\n", "\n"), "", $cached);
     $this->assertEquals($expected, $result);
     $filename = $this->__cachePath($request->here());
     unlink($filename);
 }
Example #4
0
 /**
  * testFullPageCachingDispatch method
  *
  * @return void
  */
 public function testFullPageCachingDispatch()
 {
     Configure::write('Cache.disable', false);
     Configure::write('Cache.check', true);
     Configure::write('debug', 2);
     $_POST = array();
     $_SERVER['PHP_SELF'] = '/';
     Router::reload();
     Router::connect('/', array('controller' => 'test_cached_pages', 'action' => 'index'));
     App::build(array('views' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views' . DS)), true);
     $dispatcher = new TestDispatcher();
     $request = new CakeRequest('/');
     ob_start();
     $dispatcher->dispatch($request);
     $out = ob_get_clean();
     ob_start();
     $dispatcher->cached($request->here);
     $cached = ob_get_clean();
     $result = str_replace(array("\t", "\r\n", "\n"), "", $out);
     $cached = preg_replace('/<!--+[^<>]+-->/', '', $cached);
     $expected = str_replace(array("\t", "\r\n", "\n"), "", $cached);
     $this->assertEqual($result, $expected);
     $filename = $this->__cachePath($request->here);
     unlink($filename);
     $request = new CakeRequest('test_cached_pages/index');
     $_POST = array('slasher' => "Up in your's grill \\ '");
     ob_start();
     $dispatcher->dispatch($request);
     $out = ob_get_clean();
     ob_start();
     $dispatcher->cached($request->here);
     $cached = ob_get_clean();
     $result = str_replace(array("\t", "\r\n", "\n"), "", $out);
     $cached = preg_replace('/<!--+[^<>]+-->/', '', $cached);
     $expected = str_replace(array("\t", "\r\n", "\n"), "", $cached);
     $this->assertEqual($result, $expected);
     $filename = $this->__cachePath($request->here);
     unlink($filename);
     $request = new CakeRequest('TestCachedPages/index');
     ob_start();
     $dispatcher->dispatch($request);
     $out = ob_get_clean();
     ob_start();
     $dispatcher->cached($request->here);
     $cached = ob_get_clean();
     $result = str_replace(array("\t", "\r\n", "\n"), "", $out);
     $cached = preg_replace('/<!--+[^<>]+-->/', '', $cached);
     $expected = str_replace(array("\t", "\r\n", "\n"), "", $cached);
     $this->assertEqual($result, $expected);
     $filename = $this->__cachePath($request->here);
     unlink($filename);
     $request = new CakeRequest('TestCachedPages/test_nocache_tags');
     ob_start();
     $dispatcher->dispatch($request);
     $out = ob_get_clean();
     ob_start();
     $dispatcher->cached($request->here);
     $cached = ob_get_clean();
     $result = str_replace(array("\t", "\r\n", "\n"), "", $out);
     $cached = preg_replace('/<!--+[^<>]+-->/', '', $cached);
     $expected = str_replace(array("\t", "\r\n", "\n"), "", $cached);
     $this->assertEqual($result, $expected);
     $filename = $this->__cachePath($request->here);
     unlink($filename);
     $request = new CakeRequest('test_cached_pages/view/param/param');
     ob_start();
     $dispatcher->dispatch($request);
     $out = ob_get_clean();
     ob_start();
     $dispatcher->cached($request->here);
     $cached = ob_get_clean();
     $result = str_replace(array("\t", "\r\n", "\n"), "", $out);
     $cached = preg_replace('/<!--+[^<>]+-->/', '', $cached);
     $expected = str_replace(array("\t", "\r\n", "\n"), "", $cached);
     $this->assertEqual($result, $expected);
     $filename = $this->__cachePath($request->here);
     unlink($filename);
     $request = new CakeRequest('test_cached_pages/view/foo:bar/value:goo');
     ob_start();
     $dispatcher->dispatch($request);
     $out = ob_get_clean();
     ob_start();
     $dispatcher->cached($request->here);
     $cached = ob_get_clean();
     $result = str_replace(array("\t", "\r\n", "\n"), "", $out);
     $cached = preg_replace('/<!--+[^<>]+-->/', '', $cached);
     $expected = str_replace(array("\t", "\r\n", "\n"), "", $cached);
     $this->assertEqual($result, $expected);
     $filename = $this->__cachePath($request->here);
     $this->assertTrue(file_exists($filename));
     unlink($filename);
 }
Example #5
0
anewt_include('urldispatcher');
class TestDispatcher extends AnewtURLDispatcher
{
    function __construct()
    {
        parent::__construct();
        $this->add_route_regex('test', '#^regex$#');
        $this->add_route_regex('test', '#^regex/(\\d)$#');
        $this->add_route_regex('test', '#^regex/(?P<first>\\d+)/(?P<second>\\d+)$#');
        $this->constraints = array('first' => '/^1$/', 'second' => '/^\\d+$/');
        $this->add_route_url_parts('test', 'parts/foo/:bar');
        $this->add_route_url_parts('test', '/parts/:first/:second/');
        $this->add_route_url_parts('test', array('parts', ':first', ':second', ':third'), array('third' => '#^three$#'));
        $this->add_route_url_parts(array($this, 'command_test'), '/');
        $this->add_route_url_parts(array('TestDispatcherCommand', 'external_test'), '/external');
    }
    function command_test($parameters)
    {
        print_r($parameters);
    }
}
class TestDispatcherCommand
{
    public static function external_test($parameters)
    {
        echo 'external command', NL;
        print_r($parameters);
    }
}
$d = new TestDispatcher();
$d->dispatch();