phar_oo_iswriteable.phpt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. --TEST--
  2. Phar::isWriteable
  3. --EXTENSIONS--
  4. phar
  5. --INI--
  6. phar.readonly=0
  7. phar.require_hash=0
  8. --FILE--
  9. <?php
  10. $fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.1.phar.php';
  11. $fname2 = __DIR__ . '/' . basename(__FILE__, '.php') . '.tar';
  12. $pname = 'phar://hio';
  13. $file = '<?php include "' . $pname . '/a.php"; __HALT_COMPILER(); ?>';
  14. $files = array();
  15. $files['a.php'] = '<?php echo "This is a\n"; include "'.$pname.'/b.php"; ?>';
  16. $files['dir/'] = '';
  17. $hasdir = 1;
  18. include 'files/phar_test.inc';
  19. $a = new Phar($fname);
  20. $b = new PharData($fname2);
  21. $b['test'] = 'hi';
  22. var_dump($a['a.php']->isWritable());
  23. var_dump($a['a.php']->isReadable());
  24. $a['a.php']->chmod(000);
  25. var_dump($a['a.php']->isWritable());
  26. var_dump($a['a.php']->isReadable());
  27. $a['a.php']->chmod(0666);
  28. var_dump($a['a.php']->isWritable());
  29. var_dump($a['a.php']->isReadable());
  30. ini_set('phar.readonly',1);
  31. clearstatcache();
  32. var_dump($a['a.php']->isWritable());
  33. var_dump($a['a.php']->isReadable());
  34. ini_set('phar.readonly',0);
  35. clearstatcache();
  36. var_dump($a['a.php']->isWritable());
  37. var_dump($a['a.php']->isReadable());
  38. ?>
  39. archive
  40. <?php
  41. ini_set('phar.readonly',0);
  42. $p = new Phar('doesnotexisthere.phar');
  43. var_dump($p->isWritable());
  44. clearstatcache();
  45. var_dump($a->isWritable());
  46. var_dump($b->isWritable());
  47. ini_set('phar.readonly',1);
  48. clearstatcache();
  49. var_dump($a->isWritable());
  50. var_dump($b->isWritable());
  51. chmod($fname2, 000);
  52. clearstatcache();
  53. var_dump($a->isWritable());
  54. var_dump($b->isWritable());
  55. chmod($fname2, 0666);
  56. ?>
  57. --CLEAN--
  58. <?php
  59. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.1.phar.php');
  60. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar');
  61. ?>
  62. --EXPECT--
  63. bool(true)
  64. bool(true)
  65. bool(false)
  66. bool(false)
  67. bool(true)
  68. bool(true)
  69. bool(false)
  70. bool(true)
  71. bool(true)
  72. bool(true)
  73. archive
  74. bool(true)
  75. bool(true)
  76. bool(true)
  77. bool(false)
  78. bool(true)
  79. bool(false)
  80. bool(false)