2010-04-13 20:04:13 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* ThemeViewTest file
|
|
|
|
*
|
2010-10-03 16:31:21 +00:00
|
|
|
* PHP 5
|
2010-04-13 20:04:13 +00:00
|
|
|
*
|
2010-05-19 01:15:13 +00:00
|
|
|
* CakePHP(tm) Tests <http://book.cakephp.org/view/1196/Testing>
|
2010-04-13 20:04:13 +00:00
|
|
|
* Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
|
|
|
|
*
|
2010-10-03 16:31:21 +00:00
|
|
|
* Licensed under The MIT License
|
|
|
|
* Redistributions of files must retain the above copyright notice
|
2010-04-13 20:04:13 +00:00
|
|
|
*
|
|
|
|
* @copyright Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
|
2010-05-19 01:15:13 +00:00
|
|
|
* @link http://book.cakephp.org/view/1196/Testing CakePHP(tm) Tests
|
2010-12-24 18:57:20 +00:00
|
|
|
* @package cake.tests.cases.libs
|
2010-04-13 20:04:13 +00:00
|
|
|
* @since CakePHP(tm) v 1.2.0.4206
|
2010-10-03 16:27:27 +00:00
|
|
|
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
|
2010-04-13 20:04:13 +00:00
|
|
|
*/
|
2010-10-04 04:00:02 +00:00
|
|
|
App::import('Core', array('Media', 'Controller', 'CakeResponse'));
|
2010-04-13 20:04:13 +00:00
|
|
|
|
|
|
|
/**
|
2010-10-04 04:00:02 +00:00
|
|
|
* MediaViewTest class
|
2010-04-13 20:04:13 +00:00
|
|
|
*
|
2010-12-24 18:57:20 +00:00
|
|
|
* @package cake.tests.cases.libs
|
2010-04-13 20:04:13 +00:00
|
|
|
*/
|
|
|
|
class MediaViewTest extends CakeTestCase {
|
|
|
|
|
|
|
|
/**
|
2010-09-26 01:36:49 +00:00
|
|
|
* setUp method
|
2010-04-13 20:04:13 +00:00
|
|
|
*
|
|
|
|
* @return void
|
|
|
|
*/
|
2010-09-26 01:36:49 +00:00
|
|
|
function setUp() {
|
|
|
|
parent::setUp();
|
2010-10-04 04:00:02 +00:00
|
|
|
$controller = new Controller();
|
|
|
|
$this->MediaView = $this->getMock('MediaView', array('_isActive', '_clearBuffer', '_flushBuffer'));
|
|
|
|
$this->MediaView->response = $this->getMock('CakeResponse');
|
2010-04-13 20:04:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* endTest method
|
|
|
|
*
|
|
|
|
* @return void
|
|
|
|
*/
|
2010-09-26 01:36:49 +00:00
|
|
|
function tearDown() {
|
|
|
|
parent::tearDown();
|
2010-04-13 20:04:13 +00:00
|
|
|
unset($this->MediaView);
|
2010-10-04 04:00:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* tests that rendering a file that does not exists throws an exception
|
|
|
|
*
|
2010-10-04 04:00:47 +00:00
|
|
|
* @expectedException NotFoundException
|
2010-10-04 04:00:02 +00:00
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function testRenderNotFound() {
|
|
|
|
$this->MediaView->viewVars = array(
|
|
|
|
'path' => '/some/missing/folder',
|
|
|
|
'id' => 'file.jpg'
|
|
|
|
);
|
|
|
|
$this->MediaView->render();
|
2010-04-13 20:04:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* testRender method
|
|
|
|
*
|
|
|
|
* @access public
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
function testRender() {
|
2010-10-04 04:00:02 +00:00
|
|
|
$this->MediaView->viewVars = array(
|
|
|
|
'path' => TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'vendors' . DS .'css' . DS,
|
|
|
|
'id' => 'test_asset.css',
|
2010-10-04 04:00:47 +00:00
|
|
|
'extension' => 'css',
|
2010-10-04 04:00:02 +00:00
|
|
|
);
|
|
|
|
$this->MediaView->expects($this->exactly(2))
|
|
|
|
->method('_isActive')
|
|
|
|
->will($this->returnValue(true));
|
|
|
|
|
2011-02-27 01:01:15 +00:00
|
|
|
$this->MediaView->response->expects($this->exactly(1))
|
2010-10-04 04:00:02 +00:00
|
|
|
->method('type')
|
|
|
|
->with('css')
|
|
|
|
->will($this->returnArgument(0));
|
|
|
|
|
|
|
|
$this->MediaView->response->expects($this->at(1))
|
|
|
|
->method('header')
|
|
|
|
->with(array(
|
|
|
|
'Date' => gmdate('D, d M Y H:i:s', time()) . ' GMT',
|
|
|
|
'Expires' => '0',
|
|
|
|
'Cache-Control' => 'private, must-revalidate, post-check=0, pre-check=0',
|
|
|
|
'Pragma' => 'no-cache'
|
|
|
|
));
|
|
|
|
|
2011-02-27 01:01:15 +00:00
|
|
|
$this->MediaView->response->expects($this->at(2))
|
2010-10-04 04:00:02 +00:00
|
|
|
->method('header')
|
|
|
|
->with(array(
|
|
|
|
'Content-Length' => 31
|
|
|
|
));
|
|
|
|
$this->MediaView->response->expects($this->once())->method('send');
|
|
|
|
$this->MediaView->expects($this->once())->method('_clearBuffer');
|
|
|
|
$this->MediaView->expects($this->once())->method('_flushBuffer');
|
|
|
|
|
2010-04-13 20:04:13 +00:00
|
|
|
ob_start();
|
|
|
|
$result = $this->MediaView->render();
|
|
|
|
$output = ob_get_clean();
|
2010-10-04 04:00:02 +00:00
|
|
|
$this->assertEqual('this is the test asset css file', $output);
|
2010-04-13 20:04:13 +00:00
|
|
|
$this->assertTrue($result !== false);
|
|
|
|
}
|
|
|
|
|
2011-02-27 01:01:15 +00:00
|
|
|
/**
|
|
|
|
* testRenderWithUnknownFileType method
|
|
|
|
*
|
|
|
|
* @access public
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
function testRenderWithUnknownFileType() {
|
|
|
|
$this->MediaView->viewVars = array(
|
|
|
|
'path' => TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'config' . DS,
|
|
|
|
'id' => 'no_section.ini',
|
|
|
|
'extension' => 'ini',
|
|
|
|
);
|
|
|
|
$this->MediaView->expects($this->exactly(2))
|
|
|
|
->method('_isActive')
|
|
|
|
->will($this->returnValue(true));
|
|
|
|
|
|
|
|
$this->MediaView->response->expects($this->exactly(1))
|
|
|
|
->method('type')
|
|
|
|
->with('ini')
|
|
|
|
->will($this->returnValue(false));
|
|
|
|
|
|
|
|
$this->MediaView->response->expects($this->at(1))
|
|
|
|
->method('header')
|
|
|
|
->with(array(
|
|
|
|
'Date' => gmdate('D, d M Y H:i:s', time()) . ' GMT',
|
|
|
|
'Expires' => '0',
|
|
|
|
'Cache-Control' => 'private, must-revalidate, post-check=0, pre-check=0',
|
|
|
|
'Pragma' => 'no-cache'
|
|
|
|
));
|
|
|
|
|
|
|
|
$this->MediaView->response->expects($this->once())
|
|
|
|
->method('download')
|
|
|
|
->with('no_section.ini');
|
|
|
|
|
|
|
|
$this->MediaView->response->expects($this->at(3))
|
|
|
|
->method('header')
|
|
|
|
->with(array(
|
|
|
|
'Accept-Ranges' => 'bytes'
|
|
|
|
));
|
|
|
|
|
|
|
|
$this->MediaView->response->expects($this->at(4))
|
|
|
|
->method('header')
|
|
|
|
->with('Content-Length', 35);
|
|
|
|
|
|
|
|
$this->MediaView->response->expects($this->once())->method('send');
|
|
|
|
$this->MediaView->expects($this->once())->method('_clearBuffer');
|
|
|
|
$this->MediaView->expects($this->once())->method('_flushBuffer');
|
|
|
|
|
|
|
|
ob_start();
|
|
|
|
$result = $this->MediaView->render();
|
|
|
|
$output = ob_get_clean();
|
|
|
|
$this->assertEqual("some_key = some_value\nbool_key = 1\n", $output);
|
|
|
|
$this->assertTrue($result !== false);
|
|
|
|
}
|
|
|
|
|
2010-04-13 20:04:13 +00:00
|
|
|
/**
|
|
|
|
* testConnectionAborted method
|
|
|
|
*
|
|
|
|
* @access public
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
function testConnectionAborted() {
|
2010-10-04 04:00:47 +00:00
|
|
|
$this->MediaView->viewVars = array(
|
|
|
|
'path' => TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'vendors' . DS .'css' . DS,
|
|
|
|
'id' => 'test_asset.css',
|
|
|
|
'extension' => 'css',
|
|
|
|
);
|
|
|
|
|
|
|
|
$this->MediaView->expects($this->once())
|
|
|
|
->method('_isActive')
|
|
|
|
->will($this->returnValue(false));
|
|
|
|
|
2011-02-27 01:01:15 +00:00
|
|
|
$this->MediaView->response->expects($this->never())
|
|
|
|
->method('type');
|
2010-10-04 04:00:47 +00:00
|
|
|
|
|
|
|
$result = $this->MediaView->render();
|
|
|
|
$this->assertFalse($result);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* testConnectionAbortedOnBuffering method
|
|
|
|
*
|
|
|
|
* @access public
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
function testConnectionAbortedOnBuffering() {
|
|
|
|
$this->MediaView->viewVars = array(
|
|
|
|
'path' => TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'vendors' . DS .'css' . DS,
|
|
|
|
'id' => 'test_asset.css',
|
|
|
|
'extension' => 'css',
|
|
|
|
);
|
|
|
|
|
|
|
|
$this->MediaView->expects($this->at(0))
|
|
|
|
->method('_isActive')
|
|
|
|
->will($this->returnValue(true));
|
|
|
|
|
|
|
|
$this->MediaView->response->expects($this->any())
|
|
|
|
->method('type')
|
|
|
|
->with('css')
|
|
|
|
->will($this->returnArgument(0));
|
|
|
|
|
|
|
|
$this->MediaView->expects($this->at(1))
|
|
|
|
->method('_isActive')
|
|
|
|
->will($this->returnValue(false));
|
|
|
|
|
|
|
|
$this->MediaView->response->expects($this->once())->method('send');
|
|
|
|
$this->MediaView->expects($this->once())->method('_clearBuffer');
|
|
|
|
$this->MediaView->expects($this->never())->method('_flushBuffer');
|
|
|
|
|
2010-04-13 20:04:13 +00:00
|
|
|
$result = $this->MediaView->render();
|
|
|
|
$this->assertFalse($result);
|
|
|
|
}
|
|
|
|
}
|