pharfileinfo_construct.phpt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. --TEST--
  2. Phar: PharFileInfo::__construct
  3. --SKIPIF--
  4. <?php if (!extension_loaded("phar")) die("skip"); ?>
  5. --INI--
  6. phar.readonly=0
  7. --FILE--
  8. <?php
  9. $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar';
  10. $pname = 'phar://' . $fname;
  11. try {
  12. file_put_contents($fname, 'blah');
  13. $a = new PharFileInfo($pname . '/oops');
  14. } catch (Exception $e) {
  15. echo $e->getMessage() . "\n";
  16. unlink($fname);
  17. }
  18. try {
  19. $a = new PharFileInfo(array());
  20. } catch (TypeError $e) {
  21. echo $e->getMessage() . "\n";
  22. }
  23. $a = new Phar($fname);
  24. $a['a'] = 'hi';
  25. $b = $a['a'];
  26. try {
  27. $a = new PharFileInfo($pname . '/oops/I/do/not/exist');
  28. } catch (Exception $e) {
  29. echo $e->getMessage() . "\n";
  30. }
  31. try {
  32. $b->__construct('oops');
  33. } catch (Exception $e) {
  34. echo $e->getMessage() . "\n";
  35. }
  36. try {
  37. $a = new PharFileInfo(__FILE__);
  38. } catch (Exception $e) {
  39. echo $e->getMessage() . "\n";
  40. }
  41. ?>
  42. ===DONE===
  43. --CLEAN--
  44. <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?>
  45. --EXPECTF--
  46. Cannot open phar file 'phar://%spharfileinfo_construct.phar/oops': internal corruption of phar "%spharfileinfo_construct.phar" (truncated entry)
  47. PharFileInfo::__construct() expects parameter 1 to be a valid path, array given
  48. Cannot access phar file entry '%s' in archive '%s'
  49. Cannot call constructor twice
  50. '%s' is not a valid phar archive URL (must have at least phar://filename.phar)
  51. ===DONE===