PageRenderTime 46ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/cases/views/helpers/media.test.php

http://github.com/davidpersson/media
PHP | 195 lines | 129 code | 37 blank | 29 comment | 2 complexity | 319f1df1f57ac7049f9df1c44d87ec2c MD5 | raw file
Possible License(s): MIT
  1. <?php
  2. /**
  3. * Media Helper Test Case File
  4. *
  5. * Copyright (c) 2007-2013 David Persson
  6. *
  7. * Distributed under the terms of the MIT License.
  8. * Redistributions of files must retain the above copyright notice.
  9. *
  10. * PHP version 5
  11. * CakePHP version 1.3
  12. *
  13. * @package media
  14. * @subpackage media.tests.cases.views.helpers
  15. * @copyright 2007-2013 David Persson <nperson@gmx.de>
  16. * @license http://www.opensource.org/licenses/mit-license.php The MIT License
  17. * @link http://github.com/davidpersson/media
  18. */
  19. if (!defined('MEDIA')) {
  20. define('MEDIA', TMP . 'tests' . DS);
  21. } elseif (MEDIA != TMP . 'tests' . DS) {
  22. trigger_error('MEDIA constant already defined and not pointing to tests directory.', E_USER_ERROR);
  23. }
  24. require_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . DS . 'config' . DS . 'media.php';
  25. require_once dirname(dirname(dirname(dirname(__FILE__)))) . DS . 'fixtures' . DS . 'test_data.php';
  26. App::import('Core', array('Helper', 'AppHelper', 'ClassRegistry'));
  27. App::import('Helper', 'Media.Media');
  28. /**
  29. * Mock Media Helper
  30. *
  31. * @package media
  32. * @subpackage media.tests.cases.views.helpers
  33. */
  34. class MockMediaHelper extends MediaHelper {
  35. public function versions() {
  36. return $this->_versions;
  37. }
  38. public function directories() {
  39. return $this->_directories;
  40. }
  41. }
  42. /**
  43. * Media Helper Test Case Class
  44. *
  45. * @package media
  46. * @subpackage media.tests.cases.views.helpers
  47. */
  48. class MediaHelperTestCase extends CakeTestCase {
  49. public function setUp() {
  50. $this->_config = Configure::read('Media');
  51. $this->TmpFolder = new Folder(TMP . 'tests' . DS, true);
  52. $this->TmpFolder->create($this->TmpFolder->pwd() . 'static');
  53. $this->TmpFolder->create($this->TmpFolder->pwd() . 'static' . DS . 'img');
  54. $this->TmpFolder->create($this->TmpFolder->pwd() . 'filter');
  55. $this->TmpFolder->create($this->TmpFolder->pwd() . 'filter' . DS . 's' . DS . 'static' . DS . 'img');
  56. $this->TmpFolder->create($this->TmpFolder->pwd() . 'transfer');
  57. $this->TmpFolder->create($this->TmpFolder->pwd() . 'transfer' . DS . 'img');
  58. $this->TmpFolder->create($this->TmpFolder->pwd() . 'filter' . DS . 's' . DS . 'transfer' . DS . 'img');
  59. $this->TmpFolder->create($this->TmpFolder->pwd() . 'theme');
  60. $this->TmpFolder->create($this->TmpFolder->pwd() . 'theme' . DS . 'blanko');
  61. $this->TmpFolder->create($this->TmpFolder->pwd() . 'theme' . DS . 'blanko' . DS . 'img' . DS);
  62. $this->TestData = new TestData();
  63. $this->file0 = $this->TestData->getFile(array(
  64. 'image-png.png' => $this->TmpFolder->pwd() . 'static/img/image-png.png'));
  65. $this->file1 = $this->TestData->getFile(array(
  66. 'image-png.png' => $this->TmpFolder->pwd() . 'filter/s/static/img/image-png.png'));
  67. $this->file2 = $this->TestData->getFile(array(
  68. 'image-png.png' => $this->TmpFolder->pwd() . 'filter/s/static/img/dot.ted.name.png'));
  69. $this->file3 = $this->TestData->getFile(array(
  70. 'image-png.png' => $this->TmpFolder->pwd() . 'transfer/img/image-png-x.png'));
  71. $this->file4 = $this->TestData->getFile(array(
  72. 'image-png.png' => $this->TmpFolder->pwd() . 'filter/s/transfer/img/image-png-x.png'));
  73. $this->file5 = $this->TestData->getFile(array(
  74. 'image-png.png' => $this->TmpFolder->pwd() . 'theme/blanko/img/image-blanko.png'));
  75. $settings = array(
  76. $this->TmpFolder->pwd() . 'static' . DS => 'media/static/',
  77. $this->TmpFolder->pwd() . 'filter' . DS => 'media/filter/',
  78. $this->TmpFolder->pwd() . 'transfer' . DS => false,
  79. $this->TmpFolder->pwd() . 'theme' . DS => 'media/theme/'
  80. );
  81. $this->Helper = new MediaHelper($settings);
  82. }
  83. public function tearDown() {
  84. Configure::write('Media', $this->_config);
  85. $this->TestData->flushFiles();
  86. $this->TmpFolder->delete();
  87. ClassRegistry::flush();
  88. }
  89. public function testConstruct() {
  90. $settings = array(
  91. $this->TmpFolder->pwd() . 'static' . DS => 'media/static/',
  92. $this->TmpFolder->pwd() . 'theme' . DS => 'media/theme/'
  93. );
  94. Configure::write('Media.filter', array(
  95. 'image' => array('s' => array(), 'm' => array()),
  96. 'video' => array('s' => array(), 'xl' => array())
  97. ));
  98. $Helper = new MockMediaHelper($settings);
  99. }
  100. public function testUrl() {
  101. $result = $this->Helper->url('img/image-png');
  102. $this->assertEqual($result, 'media/static/img/image-png.png');
  103. $result = $this->Helper->url('s/static/img/image-png');
  104. $this->assertEqual($result, 'media/filter/s/static/img/image-png.png');
  105. $result = $this->Helper->url('img/image-png-x');
  106. $this->assertNull($result);
  107. $result = $this->Helper->url('img/image-png-xyz');
  108. $this->assertNull($result);
  109. $result = $this->Helper->url('s/transfer/img/image-png-x');
  110. $this->assertEqual($result, 'media/filter/s/transfer/img/image-png-x.png');
  111. $result = $this->Helper->url($this->TmpFolder->pwd() . 'filter/s/transfer/img/image-png-x.png');
  112. $this->assertEqual($result, 'media/filter/s/transfer/img/image-png-x.png');
  113. }
  114. public function testWebroot() {
  115. $result = $this->Helper->webroot('img/image-png');
  116. $this->assertEqual($result, 'media/static/img/image-png.png');
  117. $result = $this->Helper->webroot('s/static/img/image-png');
  118. $this->assertEqual($result, 'media/filter/s/static/img/image-png.png');
  119. $result = $this->Helper->webroot('img/image-png-x');
  120. $this->assertNull($result);
  121. $result = $this->Helper->webroot('img/image-png-xyz');
  122. $this->assertNull($result);
  123. $result = $this->Helper->webroot('s/transfer/img/image-png-x');
  124. $this->assertEqual($result, 'media/filter/s/transfer/img/image-png-x.png');
  125. $result = $this->Helper->webroot($this->TmpFolder->pwd() . 'filter/s/transfer/img/image-png-x.png');
  126. $this->assertEqual($result, 'media/filter/s/transfer/img/image-png-x.png');
  127. }
  128. public function testFile() {
  129. $result = $this->Helper->file('static/img/not-existant.jpg');
  130. $this->assertFalse($result);
  131. $result = $this->Helper->file('img/image-png');
  132. $this->assertEqual($result, $this->file0);
  133. $result = $this->Helper->file('s/static/img/image-png');
  134. $this->assertEqual($result, $this->file1);
  135. $result = $this->Helper->file('s/static/img/dot.ted.name');
  136. $this->assertEqual($result, $this->file2);
  137. $result = $this->Helper->file('img/image-png-x');
  138. $this->assertEqual($result, $this->file3);
  139. $result = $this->Helper->file('s/transfer/img/image-png-x');
  140. $this->assertEqual($result, $this->file4);
  141. $result = $this->Helper->file($this->TmpFolder->pwd() . 'filter/s/transfer/img/image-png-x.png');
  142. $this->assertEqual($result, $this->file4);
  143. $result = $this->Helper->file('blanko/img/image-blanko');
  144. $this->assertEqual($result, $this->file5);
  145. }
  146. public function testName() {
  147. $this->assertEqual($this->Helper->name('img/image-png.png'), 'image');
  148. $this->assertNull($this->Helper->name('static/img/not-existant.jpg'));
  149. }
  150. public function testMimeType() {
  151. $this->assertEqual($this->Helper->mimeType('img/image-png.png'), 'image/png');
  152. $this->assertNull($this->Helper->mimeType('static/img/not-existant.jpg'));
  153. }
  154. public function testSize() {
  155. $this->assertEqual($this->Helper->size('img/image-png.png'), 10142);
  156. $this->assertNull($this->Helper->size('static/img/not-existant.jpg'));
  157. }
  158. }