/sbw/ZendFramework-1.11.4/tests/Zend/Filter/Compress/TarTest.php

https://github.com/nbcutech/o3drupal · PHP · 271 lines · 174 code · 26 blank · 71 comment · 12 complexity · 4a4a60880057d2d76bef4946e87c5853 MD5 · raw file

  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Filter
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id: $
  21. */
  22. if (!defined('PHPUnit_MAIN_METHOD')) {
  23. define('PHPUnit_MAIN_METHOD', 'Zend_Filter_Compress_TarTest::main');
  24. }
  25. /**
  26. * @see Zend_Filter_Compress_Tar
  27. */
  28. require_once 'Zend/Filter/Compress/Tar.php';
  29. /**
  30. * @category Zend
  31. * @package Zend_Filter
  32. * @subpackage UnitTests
  33. * @group Zend_Filter
  34. * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
  35. * @license http://framework.zend.com/license/new-bsd New BSD License
  36. */
  37. class Zend_Filter_Compress_TarTest extends PHPUnit_Framework_TestCase
  38. {
  39. /**
  40. * Runs this test suite
  41. *
  42. * @return void
  43. */
  44. public static function main()
  45. {
  46. $suite = new PHPUnit_Framework_TestSuite('Zend_Filter_Compress_TarTest');
  47. $result = PHPUnit_TextUI_TestRunner::run($suite);
  48. }
  49. public function setUp()
  50. {
  51. if (!class_exists('Archive_Tar')) {
  52. require_once 'Zend/Loader.php';
  53. try {
  54. Zend_Loader::loadClass('Archive_Tar');
  55. } catch (Zend_Exception $e) {
  56. $this->markTestSkipped('This filter needs PEARs Archive_Tar');
  57. }
  58. }
  59. $files = array(
  60. dirname(__FILE__) . '/../_files/zipextracted.txt',
  61. dirname(__FILE__) . '/../_files/_compress/Compress/First/Second/zipextracted.txt',
  62. dirname(__FILE__) . '/../_files/_compress/Compress/First/Second',
  63. dirname(__FILE__) . '/../_files/_compress/Compress/First/zipextracted.txt',
  64. dirname(__FILE__) . '/../_files/_compress/Compress/First',
  65. dirname(__FILE__) . '/../_files/_compress/Compress/zipextracted.txt',
  66. dirname(__FILE__) . '/../_files/_compress/Compress',
  67. dirname(__FILE__) . '/../_files/_compress/zipextracted.txt',
  68. dirname(__FILE__) . '/../_files/_compress',
  69. dirname(__FILE__) . '/../_files/compressed.tar'
  70. );
  71. foreach($files as $file) {
  72. if (file_exists($file)) {
  73. if (is_dir($file)) {
  74. rmdir($file);
  75. } else {
  76. unlink($file);
  77. }
  78. }
  79. }
  80. if (!file_exists(dirname(__FILE__) . '/../_files/Compress/First/Second')) {
  81. mkdir(dirname(__FILE__) . '/../_files/Compress/First/Second', 0777, true);
  82. file_put_contents(dirname(__FILE__) . '/../_files/Compress/First/Second/zipextracted.txt', 'compress me');
  83. file_put_contents(dirname(__FILE__) . '/../_files/Compress/First/zipextracted.txt', 'compress me');
  84. file_put_contents(dirname(__FILE__) . '/../_files/Compress/zipextracted.txt', 'compress me');
  85. }
  86. }
  87. public function tearDown()
  88. {
  89. $files = array(
  90. dirname(__FILE__) . '/../_files/zipextracted.txt',
  91. dirname(__FILE__) . '/../_files/_compress/Compress/First/Second/zipextracted.txt',
  92. dirname(__FILE__) . '/../_files/_compress/Compress/First/Second',
  93. dirname(__FILE__) . '/../_files/_compress/Compress/First/zipextracted.txt',
  94. dirname(__FILE__) . '/../_files/_compress/Compress/First',
  95. dirname(__FILE__) . '/../_files/_compress/Compress/zipextracted.txt',
  96. dirname(__FILE__) . '/../_files/_compress/Compress',
  97. dirname(__FILE__) . '/../_files/_compress/zipextracted.txt',
  98. dirname(__FILE__) . '/../_files/_compress',
  99. dirname(__FILE__) . '/../_files/compressed.tar'
  100. );
  101. foreach($files as $file) {
  102. if (file_exists($file)) {
  103. if (is_dir($file)) {
  104. rmdir($file);
  105. } else {
  106. unlink($file);
  107. }
  108. }
  109. }
  110. if (!file_exists(dirname(__FILE__) . '/../_files/Compress/First/Second')) {
  111. mkdir(dirname(__FILE__) . '/../_files/Compress/First/Second', 0777, true);
  112. file_put_contents(dirname(__FILE__) . '/../_files/Compress/First/Second/zipextracted.txt', 'compress me');
  113. file_put_contents(dirname(__FILE__) . '/../_files/Compress/First/zipextracted.txt', 'compress me');
  114. file_put_contents(dirname(__FILE__) . '/../_files/Compress/zipextracted.txt', 'compress me');
  115. }
  116. }
  117. /**
  118. * Basic usage
  119. *
  120. * @return void
  121. */
  122. public function testBasicUsage()
  123. {
  124. $filter = new Zend_Filter_Compress_Tar(
  125. array(
  126. 'archive' => dirname(__FILE__) . '/../_files/compressed.tar',
  127. 'target' => dirname(__FILE__) . '/../_files/zipextracted.txt'
  128. )
  129. );
  130. $content = $filter->compress('compress me');
  131. $this->assertEquals(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '_files'
  132. . DIRECTORY_SEPARATOR . 'compressed.tar', $content);
  133. $content = $filter->decompress($content);
  134. $this->assertEquals(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR, $content);
  135. $content = file_get_contents(dirname(__FILE__) . '/../_files/zipextracted.txt');
  136. $this->assertEquals('compress me', $content);
  137. }
  138. /**
  139. * Setting Options
  140. *
  141. * @return void
  142. */
  143. public function testTarGetSetOptions()
  144. {
  145. $filter = new Zend_Filter_Compress_Tar();
  146. $this->assertEquals(
  147. array(
  148. 'archive' => null,
  149. 'target' => '.',
  150. 'mode' => null),
  151. $filter->getOptions()
  152. );
  153. $this->assertEquals(null, $filter->getOptions('archive'));
  154. $this->assertNull($filter->getOptions('nooption'));
  155. $filter->setOptions(array('nooptions' => 'foo'));
  156. $this->assertNull($filter->getOptions('nooption'));
  157. $filter->setOptions(array('archive' => 'temp.txt'));
  158. $this->assertEquals('temp.txt', $filter->getOptions('archive'));
  159. }
  160. /**
  161. * Setting Archive
  162. *
  163. * @return void
  164. */
  165. public function testTarGetSetArchive()
  166. {
  167. $filter = new Zend_Filter_Compress_Tar();
  168. $this->assertEquals(null, $filter->getArchive());
  169. $filter->setArchive('Testfile.txt');
  170. $this->assertEquals('Testfile.txt', $filter->getArchive());
  171. $this->assertEquals('Testfile.txt', $filter->getOptions('archive'));
  172. }
  173. /**
  174. * Setting Target
  175. *
  176. * @return void
  177. */
  178. public function testTarGetSetTarget()
  179. {
  180. $filter = new Zend_Filter_Compress_Tar();
  181. $this->assertEquals('.', $filter->getTarget());
  182. $filter->setTarget('Testfile.txt');
  183. $this->assertEquals('Testfile.txt', $filter->getTarget());
  184. $this->assertEquals('Testfile.txt', $filter->getOptions('target'));
  185. try {
  186. $filter->setTarget('/unknown/path/to/file.txt');
  187. $this->fail('Exception expected');
  188. } catch(Zend_Filter_Exception $e) {
  189. $this->assertContains('does not exist', $e->getMessage());
  190. }
  191. }
  192. /**
  193. * Setting Archive
  194. *
  195. * @return void
  196. */
  197. public function testTarCompressToFile()
  198. {
  199. $filter = new Zend_Filter_Compress_Tar(
  200. array(
  201. 'archive' => dirname(__FILE__) . '/../_files/compressed.tar',
  202. 'target' => dirname(__FILE__) . '/../_files/zipextracted.txt'
  203. )
  204. );
  205. file_put_contents(dirname(__FILE__) . '/../_files/zipextracted.txt', 'compress me');
  206. $content = $filter->compress(dirname(__FILE__) . '/../_files/zipextracted.txt');
  207. $this->assertEquals(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '_files'
  208. . DIRECTORY_SEPARATOR . 'compressed.tar', $content);
  209. $content = $filter->decompress($content);
  210. $this->assertEquals(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..'
  211. . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR, $content);
  212. $content = file_get_contents(dirname(__FILE__) . '/../_files/zipextracted.txt');
  213. $this->assertEquals('compress me', $content);
  214. }
  215. /**
  216. * Compress directory to Filename
  217. *
  218. * @return void
  219. */
  220. public function testTarCompressDirectory()
  221. {
  222. $filter = new Zend_Filter_Compress_Tar(
  223. array(
  224. 'archive' => dirname(__FILE__) . '/../_files/compressed.tar',
  225. 'target' => dirname(__FILE__) . '/../_files/_compress'
  226. )
  227. );
  228. $content = $filter->compress(dirname(__FILE__) . '/../_files/Compress');
  229. $this->assertEquals(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '_files'
  230. . DIRECTORY_SEPARATOR . 'compressed.tar', $content);
  231. }
  232. /**
  233. * testing toString
  234. *
  235. * @return void
  236. */
  237. public function testTarToString()
  238. {
  239. $filter = new Zend_Filter_Compress_Tar();
  240. $this->assertEquals('Tar', $filter->toString());
  241. }
  242. }
  243. if (PHPUnit_MAIN_METHOD == 'Zend_Filter_Compress_TarTest::main') {
  244. Zend_Filter_Compress_TarTest::main();
  245. }