You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

178 lines
2.6 KiB

  1. --TEST--
  2. Test session_save_path() function : error functionality
  3. --INI--
  4. session.gc_probability=0
  5. session.save_path=
  6. session.name=PHPSESSID
  7. --SKIPIF--
  8. <?php include('skipif.inc'); ?>
  9. --FILE--
  10. <?php
  11. ob_start();
  12. /*
  13. * Prototype : string session_save_path([string $path])
  14. * Description : Get and/or set the current session save path
  15. * Source code : ext/session/session.c
  16. */
  17. echo "*** Testing session_save_path() : error functionality ***\n";
  18. // Get an unset variable
  19. $unset_var = 10;
  20. unset($unset_var);
  21. class classA
  22. {
  23. public function __toString() {
  24. return "Hello World!";
  25. }
  26. }
  27. $heredoc = <<<EOT
  28. Hello World!
  29. EOT;
  30. $fp = fopen(__FILE__, "r");
  31. // Unexpected values to be passed as arguments
  32. $inputs = array(
  33. // Integer data
  34. /*1*/ 0,
  35. 1,
  36. 12345,
  37. -2345,
  38. // Float data
  39. /*5*/ 10.5,
  40. -10.5,
  41. 12.3456789000e10,
  42. 12.3456789000E-10,
  43. .5,
  44. // Null data
  45. /*10*/ NULL,
  46. null,
  47. // Boolean data
  48. /*12*/ true,
  49. false,
  50. TRUE,
  51. FALSE,
  52. // Empty strings
  53. /*16*/ "",
  54. '',
  55. // Invalid string data
  56. /*18*/ "Nothing",
  57. 'Nothing',
  58. $heredoc,
  59. // Object data
  60. /*21*/ new classA(),
  61. // Undefined data
  62. /*22*/ @$undefined_var,
  63. // Unset data
  64. /*23*/ @$unset_var,
  65. // Resource variable
  66. /*24*/ $fp
  67. );
  68. session_start();
  69. $iterator = 1;
  70. foreach($inputs as $input) {
  71. echo "\n-- Iteration $iterator --\n";
  72. var_dump(session_save_path($input));
  73. $iterator++;
  74. };
  75. session_destroy();
  76. fclose($fp);
  77. echo "Done";
  78. ob_end_flush();
  79. ?>
  80. --EXPECTF--
  81. *** Testing session_save_path() : error functionality ***
  82. -- Iteration 1 --
  83. string(0) ""
  84. -- Iteration 2 --
  85. string(1) "0"
  86. -- Iteration 3 --
  87. string(1) "1"
  88. -- Iteration 4 --
  89. string(5) "12345"
  90. -- Iteration 5 --
  91. string(5) "-2345"
  92. -- Iteration 6 --
  93. string(4) "10.5"
  94. -- Iteration 7 --
  95. string(5) "-10.5"
  96. -- Iteration 8 --
  97. string(12) "123456789000"
  98. -- Iteration 9 --
  99. string(13) "1.23456789E-9"
  100. -- Iteration 10 --
  101. string(3) "0.5"
  102. -- Iteration 11 --
  103. string(0) ""
  104. -- Iteration 12 --
  105. string(0) ""
  106. -- Iteration 13 --
  107. string(1) "1"
  108. -- Iteration 14 --
  109. string(0) ""
  110. -- Iteration 15 --
  111. string(1) "1"
  112. -- Iteration 16 --
  113. string(0) ""
  114. -- Iteration 17 --
  115. string(0) ""
  116. -- Iteration 18 --
  117. string(0) ""
  118. -- Iteration 19 --
  119. string(7) "Nothing"
  120. -- Iteration 20 --
  121. string(7) "Nothing"
  122. -- Iteration 21 --
  123. string(12) "Hello World!"
  124. -- Iteration 22 --
  125. string(12) "Hello World!"
  126. -- Iteration 23 --
  127. string(0) ""
  128. -- Iteration 24 --
  129. Warning: session_save_path() expects parameter 1 to be string, resource given in %s on line %d
  130. NULL
  131. Done