150 lines
3.4 KiB
PHP
150 lines
3.4 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* MediaViewTest file
|
||
|
*
|
||
|
* CakePHP(tm) Tests <http://book.cakephp.org/2.0/en/development/testing.html>
|
||
|
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||
|
*
|
||
|
* Licensed under The MIT License
|
||
|
* For full copyright and license information, please see the LICENSE.txt
|
||
|
* Redistributions of files must retain the above copyright notice
|
||
|
*
|
||
|
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||
|
* @link http://book.cakephp.org/2.0/en/development/testing.html CakePHP(tm) Tests
|
||
|
* @package Cake.Test.Case.View
|
||
|
* @since CakePHP(tm) v 1.2.0.4206
|
||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||
|
*/
|
||
|
|
||
|
App::uses('Controller', 'Controller');
|
||
|
App::uses('MediaView', 'View');
|
||
|
App::uses('CakeResponse', 'Network');
|
||
|
|
||
|
/**
|
||
|
* MediaViewTest class
|
||
|
*
|
||
|
* @package Cake.Test.Case.View
|
||
|
*/
|
||
|
class MediaViewTest extends CakeTestCase {
|
||
|
|
||
|
/**
|
||
|
* setUp method
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function setUp() {
|
||
|
parent::setUp();
|
||
|
$this->MediaView = new MediaView();
|
||
|
$this->MediaView->response = $this->getMock('CakeResponse', array(
|
||
|
'cache',
|
||
|
'type',
|
||
|
'disableCache',
|
||
|
'file',
|
||
|
'send',
|
||
|
'compress',
|
||
|
));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* tearDown method
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function tearDown() {
|
||
|
parent::tearDown();
|
||
|
unset($this->MediaView);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* testRender method
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function testRender() {
|
||
|
$vars = array(
|
||
|
'path' => CAKE . 'Test' . DS . 'test_app' . DS . 'Vendor' . DS . 'css' . DS,
|
||
|
'id' => 'test_asset.css'
|
||
|
);
|
||
|
$this->MediaView->viewVars = $vars;
|
||
|
|
||
|
$this->MediaView->response->expects($this->once())
|
||
|
->method('disableCache');
|
||
|
|
||
|
$this->MediaView->response->expects($this->once())
|
||
|
->method('file')
|
||
|
->with(
|
||
|
$vars['path'] . $vars['id'],
|
||
|
array('name' => null, 'download' => null)
|
||
|
);
|
||
|
|
||
|
$this->MediaView->response->expects($this->once())
|
||
|
->method('send');
|
||
|
|
||
|
$result = $this->MediaView->render();
|
||
|
$this->assertTrue($result);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Test render() when caching is on.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function testRenderCachingAndName() {
|
||
|
$vars = array(
|
||
|
'path' => CAKE . 'Test' . DS . 'test_app' . DS . 'Vendor' . DS . 'css' . DS,
|
||
|
'id' => 'test_asset.css',
|
||
|
'cache' => '+1 day',
|
||
|
'name' => 'something_special',
|
||
|
'download' => true,
|
||
|
);
|
||
|
$this->MediaView->viewVars = $vars;
|
||
|
|
||
|
$this->MediaView->response->expects($this->never())
|
||
|
->method('disableCache');
|
||
|
|
||
|
$this->MediaView->response->expects($this->once())
|
||
|
->method('cache')
|
||
|
->with($this->anything(), $vars['cache']);
|
||
|
|
||
|
$this->MediaView->response->expects($this->once())
|
||
|
->method('file')
|
||
|
->with(
|
||
|
$vars['path'] . $vars['id'],
|
||
|
array(
|
||
|
'name' => 'something_special.css',
|
||
|
'download' => true
|
||
|
)
|
||
|
);
|
||
|
|
||
|
$this->MediaView->response->expects($this->once())
|
||
|
->method('send');
|
||
|
|
||
|
$result = $this->MediaView->render();
|
||
|
$this->assertTrue($result);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Test downloading files with UPPERCASE extensions.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function testRenderUpperExtension() {
|
||
|
$this->MediaView->viewVars = array(
|
||
|
'path' => CAKE . 'Test' . DS . 'test_app' . DS . 'Vendor' . DS . 'img' . DS,
|
||
|
'id' => 'test_2.JPG'
|
||
|
);
|
||
|
|
||
|
$this->MediaView->response->expects($this->any())
|
||
|
->method('type')
|
||
|
->with('jpg')
|
||
|
->will($this->returnArgument(0));
|
||
|
|
||
|
$this->MediaView->response->expects($this->at(0))
|
||
|
->method('send')
|
||
|
->will($this->returnValue(true));
|
||
|
|
||
|
$this->MediaView->render();
|
||
|
}
|
||
|
|
||
|
}
|