pharfileinfo_compression.phpt 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. --TEST--
  2. Phar: PharFileInfo compression-related methods
  3. --SKIPIF--
  4. <?php if (!extension_loaded("phar")) die("skip"); ?>
  5. <?php if (!extension_loaded("zlib")) die("skip no zlib"); ?>
  6. <?php if (!extension_loaded("bz2")) die("skip no bz2"); ?>
  7. --INI--
  8. phar.readonly=0
  9. --FILE--
  10. <?php
  11. $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar';
  12. $pname = 'phar://' . $fname;
  13. $phar = new Phar($fname);
  14. $phar['a/b'] = 'hi there';
  15. $b = $phar['a/b'];
  16. $b->isCompressed(array());
  17. try {
  18. $b->isCompressed(25);
  19. } catch (Exception $e) {
  20. echo $e->getMessage() . "\n";
  21. }
  22. try {
  23. $b->compress(25);
  24. } catch (Exception $e) {
  25. echo $e->getMessage() . "\n";
  26. }
  27. $tar = $phar->convertToData(Phar::TAR);
  28. $c = $tar['a/b'];
  29. try {
  30. $c->compress(Phar::GZ);
  31. } catch (Exception $e) {
  32. echo $e->getMessage() . "\n";
  33. }
  34. try {
  35. $phar['a']->compress(Phar::GZ);
  36. } catch (Exception $e) {
  37. echo $e->getMessage() . "\n";
  38. }
  39. ini_set('phar.readonly', 1);
  40. try {
  41. $b->compress(Phar::GZ);
  42. } catch (Exception $e) {
  43. echo $e->getMessage() . "\n";
  44. }
  45. ini_set('phar.readonly', 0);
  46. var_dump($b->compress(Phar::GZ));
  47. var_dump($b->compress(Phar::GZ));
  48. var_dump($b->compress(Phar::BZ2));
  49. var_dump($b->compress(Phar::BZ2));
  50. echo "decompress\n";
  51. ini_set('phar.readonly', 1);
  52. try {
  53. $phar['a/b']->decompress();
  54. } catch (Exception $e) {
  55. echo $e->getMessage() . "\n";
  56. }
  57. ini_set('phar.readonly', 0);
  58. try {
  59. $phar['a']->decompress();
  60. } catch (Exception $e) {
  61. echo $e->getMessage() . "\n";
  62. }
  63. var_dump($b->decompress());
  64. var_dump($b->decompress());
  65. ?>
  66. ===DONE===
  67. --CLEAN--
  68. <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?>
  69. <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.tar'); ?>
  70. --EXPECTF--
  71. Warning: PharFileInfo::isCompressed() expects parameter 1 to be long, array given in %spharfileinfo_compression.php on line 11
  72. Unknown compression type specified
  73. Unknown compression type specified
  74. Cannot compress with Gzip compression, not possible with tar-based phar archives
  75. Phar entry is a directory, cannot set compression
  76. Phar is readonly, cannot change compression
  77. bool(true)
  78. bool(true)
  79. bool(true)
  80. bool(true)
  81. decompress
  82. Phar is readonly, cannot decompress
  83. Phar entry is a directory, cannot set compression
  84. bool(true)
  85. bool(true)
  86. ===DONE===