pharfileinfo_construct.phpt 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. --TEST--
  2. Phar: PharFileInfo::__construct
  3. --EXTENSIONS--
  4. phar
  5. --INI--
  6. phar.readonly=0
  7. --FILE--
  8. <?php
  9. $fname = __DIR__ . '/' . 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. --CLEAN--
  43. <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar'); ?>
  44. --EXPECTF--
  45. Cannot open phar file 'phar://%spharfileinfo_construct.phar/oops': internal corruption of phar "%spharfileinfo_construct.phar" (truncated entry)
  46. PharFileInfo::__construct(): Argument #1 ($filename) must be of type string, array given
  47. Cannot access phar file entry '%s' in archive '%s'
  48. Cannot call constructor twice
  49. '%s' is not a valid phar archive URL (must have at least phar://filename.phar)