/**
  * testStaticAssets method
  *
  * @return void
  * @access public
  */
 function testAssets()
 {
     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->assertFalse($result);
     ob_start();
     $Dispatcher->dispatch('theme/test_theme/pdfs');
     $result = ob_get_clean();
     $this->assertFalse($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->asset('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->asset('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->asset('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->asset('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->asset('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->asset('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->asset('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->asset('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->asset('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');
     $Dispatcher->params = $Dispatcher->parseParams('test_plugin/css/theme_one.htc');
     ob_start();
     $Dispatcher->asset('test_plugin/css/unknown.extension');
     $result = ob_get_clean();
     $this->assertEqual('Testing a file with unknown extension to mime mapping.', $result);
     header('Content-type: text/html');
     $Dispatcher->params = $Dispatcher->parseParams('test_plugin/css/theme_one.htc');
     ob_start();
     $Dispatcher->asset('test_plugin/css/theme_one.htc');
     $result = ob_get_clean();
     $this->assertEqual('htc file', $result);
     header('Content-type: text/html');
 }
Beispiel #2
0
 /**
  * test that asset filters work for theme and plugin assets
  *
  * @return void
  */
 public function testAssetFilterForThemeAndPlugins()
 {
     $Dispatcher = new TestDispatcher();
     $response = $this->getMock('CakeResponse', array('_sendHeader'));
     Configure::write('Asset.filter', array('js' => '', 'css' => ''));
     $this->assertTrue($Dispatcher->asset('theme/test_theme/ccss/cake.generic.css', $response));
     $this->assertTrue($Dispatcher->asset('theme/test_theme/cjs/debug_kit.js', $response));
     $this->assertTrue($Dispatcher->asset('test_plugin/ccss/cake.generic.css', $response));
     $this->assertTrue($Dispatcher->asset('test_plugin/cjs/debug_kit.js', $response));
     $this->assertFalse($Dispatcher->asset('css/ccss/debug_kit.css', $response));
     $this->assertFalse($Dispatcher->asset('js/cjs/debug_kit.js', $response));
 }