pharfileinfo_compression.phpt 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. --TEST--
  2. Phar: PharFileInfo compression-related methods
  3. --EXTENSIONS--
  4. phar
  5. zlib
  6. bz2
  7. --INI--
  8. phar.readonly=0
  9. --FILE--
  10. <?php
  11. $fname = __DIR__ . '/' . 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. try {
  17. $b->isCompressed(25);
  18. } catch (Exception $e) {
  19. echo $e->getMessage() . "\n";
  20. }
  21. try {
  22. $b->compress(25);
  23. } catch (Exception $e) {
  24. echo $e->getMessage() . "\n";
  25. }
  26. $tar = $phar->convertToData(Phar::TAR);
  27. $c = $tar['a/b'];
  28. try {
  29. $c->compress(Phar::GZ);
  30. } catch (Exception $e) {
  31. echo $e->getMessage() . "\n";
  32. }
  33. try {
  34. $phar['a']->compress(Phar::GZ);
  35. } catch (Exception $e) {
  36. echo $e->getMessage() . "\n";
  37. }
  38. ini_set('phar.readonly', 1);
  39. try {
  40. $b->compress(Phar::GZ);
  41. } catch (Exception $e) {
  42. echo $e->getMessage() . "\n";
  43. }
  44. ini_set('phar.readonly', 0);
  45. var_dump($b->compress(Phar::GZ));
  46. var_dump($b->compress(Phar::GZ));
  47. var_dump($b->compress(Phar::BZ2));
  48. var_dump($b->compress(Phar::BZ2));
  49. echo "decompress\n";
  50. ini_set('phar.readonly', 1);
  51. try {
  52. $phar['a/b']->decompress();
  53. } catch (Exception $e) {
  54. echo $e->getMessage() . "\n";
  55. }
  56. ini_set('phar.readonly', 0);
  57. try {
  58. $phar['a']->decompress();
  59. } catch (Exception $e) {
  60. echo $e->getMessage() . "\n";
  61. }
  62. var_dump($b->decompress());
  63. var_dump($b->decompress());
  64. ?>
  65. --CLEAN--
  66. <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?>
  67. <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar'); ?>
  68. --EXPECT--
  69. Unknown compression type specified
  70. Unknown compression type specified
  71. Cannot compress with Gzip compression, not possible with tar-based phar archives
  72. Phar entry is a directory, cannot set compression
  73. Phar is readonly, cannot change compression
  74. bool(true)
  75. bool(true)
  76. bool(true)
  77. bool(true)
  78. decompress
  79. Phar is readonly, cannot decompress
  80. Phar entry is a directory, cannot set compression
  81. bool(true)
  82. bool(true)