Ejemplo n.º 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 = new CakeResponse();
     ob_start();
     $dispatcher->dispatch($request, $response);
     $out = ob_get_clean();
     ob_start();
     $dispatcher->cached($request->here());
     $cached = ob_get_clean();
     $cached = preg_replace('/<!--+[^<>]+-->/', '', $cached);
     $this->assertTextEquals($cached, $out);
     $filename = $this->__cachePath($request->here());
     unlink($filename);
 }
Ejemplo n.º 2
0
 /**
  * Test full page caching with themes.
  *
  * @return void
  */
 public function testFullPageCachingWithThemes()
 {
     Configure::write('Cache.disable', false);
     Configure::write('Cache.check', true);
     Configure::write('debug', 2);
     Router::reload();
     Router::connect('/:controller/:action/*');
     App::build(array('View' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'View' . DS)), true);
     $dispatcher = new TestDispatcher();
     $request = new CakeRequest('/test_cached_pages/themed');
     $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->assertEqual($expected, $result);
     $filename = $this->__cachePath($request->here);
     unlink($filename);
 }
Ejemplo n.º 3
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);
 }
Ejemplo n.º 4
0
 /**
  * testStaticAssets method
  *
  * @return void
  * @access public
  */
 function testStaticAssets()
 {
     Router::reload();
     App::build(array('plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS), 'vendors' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'vendors' . DS), 'views' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views' . DS)));
     $Dispatcher = new TestDispatcher();
     $debug = Configure::read('debug');
     Configure::write('debug', 0);
     ob_start();
     $Dispatcher->dispatch('theme/test_theme/../webroot/css/test_asset.css');
     $result = ob_get_clean();
     $this->assertEqual(null, $result);
     ob_start();
     $Dispatcher->dispatch('theme/test_theme/flash/theme_test.swf');
     $result = ob_get_clean();
     $file = file_get_contents(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views' . DS . 'themed' . DS . 'test_theme' . DS . 'webroot' . DS . 'flash' . DS . 'theme_test.swf');
     $this->assertEqual($file, $result);
     $this->assertEqual('this is just a test to load swf file from the theme.', $result);
     ob_start();
     $Dispatcher->dispatch('theme/test_theme/pdfs/theme_test.pdf');
     $result = ob_get_clean();
     $file = file_get_contents(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views' . DS . 'themed' . DS . 'test_theme' . DS . 'webroot' . DS . 'pdfs' . DS . 'theme_test.pdf');
     $this->assertEqual($file, $result);
     $this->assertEqual('this is just a test to load pdf file from the theme.', $result);
     ob_start();
     $Dispatcher->dispatch('theme/test_theme/img/test.jpg');
     $result = ob_get_clean();
     $file = file_get_contents(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views' . DS . 'themed' . DS . 'test_theme' . DS . 'webroot' . DS . 'img' . DS . 'test.jpg');
     $this->assertEqual($file, $result);
     $Dispatcher->params = $Dispatcher->parseParams('theme/test_theme/css/test_asset.css');
     ob_start();
     $Dispatcher->cached('theme/test_theme/css/test_asset.css');
     $result = ob_get_clean();
     $this->assertEqual('this is the test asset css file', $result);
     $Dispatcher->params = $Dispatcher->parseParams('theme/test_theme/js/theme.js');
     ob_start();
     $Dispatcher->cached('theme/test_theme/js/theme.js');
     $result = ob_get_clean();
     $this->assertEqual('root theme js file', $result);
     $Dispatcher->params = $Dispatcher->parseParams('theme/test_theme/js/one/theme_one.js');
     ob_start();
     $Dispatcher->cached('theme/test_theme/js/one/theme_one.js');
     $result = ob_get_clean();
     $this->assertEqual('nested theme js file', $result);
     ob_start();
     $Dispatcher->dispatch('test_plugin/flash/plugin_test.swf');
     $result = ob_get_clean();
     $file = file_get_contents(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS . 'test_plugin' . DS . 'webroot' . DS . 'flash' . DS . 'plugin_test.swf');
     $this->assertEqual($file, $result);
     $this->assertEqual('this is just a test to load swf file from the plugin.', $result);
     ob_start();
     $Dispatcher->dispatch('test_plugin/pdfs/plugin_test.pdf');
     $result = ob_get_clean();
     $file = file_get_contents(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS . 'test_plugin' . DS . 'webroot' . DS . 'pdfs' . DS . 'plugin_test.pdf');
     $this->assertEqual($file, $result);
     $this->assertEqual('this is just a test to load pdf file from the plugin.', $result);
     ob_start();
     $Dispatcher->cached('test_plugin/js/test_plugin/test.js');
     $result = ob_get_clean();
     $this->assertEqual('alert("Test App");', $result);
     $Dispatcher->params = $Dispatcher->parseParams('test_plugin/js/test_plugin/test.js');
     ob_start();
     $Dispatcher->cached('test_plugin/js/test_plugin/test.js');
     $result = ob_get_clean();
     $this->assertEqual('alert("Test App");', $result);
     $Dispatcher->params = $Dispatcher->parseParams('test_plugin/css/test_plugin_asset.css');
     ob_start();
     $Dispatcher->cached('test_plugin/css/test_plugin_asset.css');
     $result = ob_get_clean();
     $this->assertEqual('this is the test plugin asset css file', $result);
     $Dispatcher->params = $Dispatcher->parseParams('test_plugin/img/cake.icon.gif');
     ob_start();
     $Dispatcher->cached('test_plugin/img/cake.icon.gif');
     $result = ob_get_clean();
     $file = file_get_contents(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS . 'test_plugin' . DS . 'webroot' . DS . 'img' . DS . 'cake.icon.gif');
     $this->assertEqual($file, $result);
     $Dispatcher->params = $Dispatcher->parseParams('plugin_js/js/plugin_js.js');
     ob_start();
     $Dispatcher->cached('plugin_js/js/plugin_js.js');
     $result = ob_get_clean();
     $expected = "alert('win sauce');";
     $this->assertEqual($result, $expected);
     $Dispatcher->params = $Dispatcher->parseParams('plugin_js/js/one/plugin_one.js');
     ob_start();
     $Dispatcher->cached('plugin_js/js/one/plugin_one.js');
     $result = ob_get_clean();
     $expected = "alert('plugin one nested js file');";
     $this->assertEqual($result, $expected);
     Configure::write('debug', $debug);
     //reset the header content-type without page can render as plain text.
     header('Content-type: text/html');
 }