all.phpt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. --TEST--
  2. Phar: test that creation of zip-based phar generates valid zip with all bells/whistles
  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.zip.php';
  12. $pname = 'phar://' . $fname;
  13. $fname2 = __DIR__ . '/' . basename(__FILE__, '.php') . '.2.phar.zip.php';
  14. $pname2 = 'phar://' . $fname2;
  15. $phar = new Phar($fname);
  16. $phar->setMetadata('hi there');
  17. $phar['a'] = 'hi';
  18. $phar['a']->setMetadata('a meta');
  19. $phar['b'] = 'hi2';
  20. $phar['b']->compress(Phar::GZ);
  21. $phar['c'] = 'hi3';
  22. $phar['c']->compress(Phar::BZ2);
  23. $phar['b']->chmod(0444);
  24. $phar->setStub("<?php ok __HALT_COMPILER();");
  25. $phar->setAlias("hime");
  26. unset($phar);
  27. copy($fname, $fname2);
  28. Phar::unlinkArchive($fname);
  29. var_dump(file_exists($fname), file_exists($pname . '/a'));
  30. $phar = new Phar($fname2);
  31. var_dump($phar['a']->getContent(), $phar['b']->getContent(), $phar['c']->getContent());
  32. var_dump($phar['a']->isCompressed(), $phar['b']->isCompressed() == Phar::GZ, $phar['c']->isCompressed() == Phar::BZ2);
  33. var_dump((string) decoct(fileperms($pname2 . '/b')));
  34. var_dump($phar->getStub());
  35. var_dump($phar->getAlias());
  36. var_dump($phar->getMetadata());
  37. var_dump($phar['a']->getMetadata());
  38. ?>
  39. --CLEAN--
  40. <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.zip.php'); ?>
  41. <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.2.phar.zip.php'); ?>
  42. --EXPECT--
  43. bool(false)
  44. bool(false)
  45. string(2) "hi"
  46. string(3) "hi2"
  47. string(3) "hi3"
  48. bool(false)
  49. bool(true)
  50. bool(true)
  51. string(6) "100444"
  52. string(32) "<?php ok __HALT_COMPILER(); ?>
  53. "
  54. string(4) "hime"
  55. string(8) "hi there"
  56. string(6) "a meta"