統計
| ブランチ: | リビジョン:

pictcode / lib / Cake / Test / Case / View / MediaViewTest.php @ 0b1b8047

履歴 | 表示 | アノテート | ダウンロード (3.065 KB)

1
<?php
2
/**
3
 * MediaViewTest file
4
 *
5
 * CakePHP(tm) Tests <http://book.cakephp.org/2.0/en/development/testing.html>
6
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
7
 *
8
 * Licensed under The MIT License
9
 * For full copyright and license information, please see the LICENSE.txt
10
 * Redistributions of files must retain the above copyright notice
11
 *
12
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
13
 * @link          http://book.cakephp.org/2.0/en/development/testing.html CakePHP(tm) Tests
14
 * @package       Cake.Test.Case.View
15
 * @since         CakePHP(tm) v 1.2.0.4206
16
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
17
 */
18

    
19
App::uses('Controller', 'Controller');
20
App::uses('MediaView', 'View');
21
App::uses('CakeResponse', 'Network');
22

    
23
/**
24
 * MediaViewTest class
25
 *
26
 * @package       Cake.Test.Case.View
27
 */
28
class MediaViewTest extends CakeTestCase {
29

    
30
/**
31
 * setUp method
32
 *
33
 * @return void
34
 */
35
        public function setUp() {
36
                parent::setUp();
37
                $this->MediaView = new MediaView();
38
                $this->MediaView->response = $this->getMock('CakeResponse', array(
39
                        'cache',
40
                        'type',
41
                        'disableCache',
42
                        'file',
43
                        'send',
44
                        'compress',
45
                ));
46
        }
47

    
48
/**
49
 * tearDown method
50
 *
51
 * @return void
52
 */
53
        public function tearDown() {
54
                parent::tearDown();
55
                unset($this->MediaView);
56
        }
57

    
58
/**
59
 * testRender method
60
 *
61
 * @return void
62
 */
63
        public function testRender() {
64
                $vars = array(
65
                        'path' => CAKE . 'Test' . DS . 'test_app' . DS . 'Vendor' . DS . 'css' . DS,
66
                        'id' => 'test_asset.css'
67
                );
68
                $this->MediaView->viewVars = $vars;
69

    
70
                $this->MediaView->response->expects($this->once())
71
                        ->method('disableCache');
72

    
73
                $this->MediaView->response->expects($this->once())
74
                        ->method('file')
75
                        ->with(
76
                                $vars['path'] . $vars['id'],
77
                                array('name' => null, 'download' => null)
78
                        );
79

    
80
                $this->MediaView->render();
81
        }
82

    
83
/**
84
 * Test render() when caching is on.
85
 *
86
 * @return void
87
 */
88
        public function testRenderCachingAndName() {
89
                $vars = array(
90
                        'path' => CAKE . 'Test' . DS . 'test_app' . DS . 'Vendor' . DS . 'css' . DS,
91
                        'id' => 'test_asset.css',
92
                        'cache' => '+1 day',
93
                        'name' => 'something_special',
94
                        'download' => true,
95
                );
96
                $this->MediaView->viewVars = $vars;
97

    
98
                $this->MediaView->response->expects($this->never())
99
                        ->method('disableCache');
100

    
101
                $this->MediaView->response->expects($this->once())
102
                        ->method('cache')
103
                        ->with($this->anything(), $vars['cache']);
104

    
105
                $this->MediaView->response->expects($this->once())
106
                        ->method('file')
107
                        ->with(
108
                                $vars['path'] . $vars['id'],
109
                                array(
110
                                        'name' => 'something_special.css',
111
                                        'download' => true
112
                                )
113
                        );
114

    
115
                $this->MediaView->render();
116
        }
117

    
118
/**
119
 * Test downloading files with UPPERCASE extensions.
120
 *
121
 * @return void
122
 */
123
        public function testRenderUpperExtension() {
124
                $this->MediaView->viewVars = array(
125
                        'path' => CAKE . 'Test' . DS . 'test_app' . DS . 'Vendor' . DS . 'img' . DS,
126
                        'id' => 'test_2.JPG'
127
                );
128

    
129
                $this->MediaView->response->expects($this->any())
130
                        ->method('type')
131
                        ->with('jpg')
132
                        ->will($this->returnArgument(0));
133

    
134
                $this->MediaView->render();
135
        }
136

    
137
}