bug64874_part1.phpt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. --TEST--
  2. Whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly")
  3. --FILE--
  4. <?php
  5. function decode($json) {
  6. var_dump(json_decode($json));
  7. var_dump(json_last_error() !== 0);
  8. echo "\n";
  9. }
  10. // Leading whitespace should be ignored
  11. decode(" true");
  12. decode("\ttrue");
  13. decode("\ntrue");
  14. decode("\rtrue");
  15. // So should trailing whitespace
  16. decode("true ");
  17. decode("true\t");
  18. decode("true\n");
  19. decode("true\r");
  20. // And so should the combination of both
  21. decode(" true ");
  22. decode(" true\t");
  23. decode(" true\n");
  24. decode(" true\r");
  25. decode("\ttrue ");
  26. decode("\ttrue\t");
  27. decode("\ttrue\n");
  28. decode("\ttrue\r");
  29. decode("\ntrue ");
  30. decode("\ntrue\t");
  31. decode("\ntrue\n");
  32. decode("\ntrue\r");
  33. decode("\rtrue ");
  34. decode("\rtrue\t");
  35. decode("\rtrue\n");
  36. decode("\rtrue\r");
  37. echo "Done\n";
  38. ?>
  39. --EXPECT--
  40. bool(true)
  41. bool(false)
  42. bool(true)
  43. bool(false)
  44. bool(true)
  45. bool(false)
  46. bool(true)
  47. bool(false)
  48. bool(true)
  49. bool(false)
  50. bool(true)
  51. bool(false)
  52. bool(true)
  53. bool(false)
  54. bool(true)
  55. bool(false)
  56. bool(true)
  57. bool(false)
  58. bool(true)
  59. bool(false)
  60. bool(true)
  61. bool(false)
  62. bool(true)
  63. bool(false)
  64. bool(true)
  65. bool(false)
  66. bool(true)
  67. bool(false)
  68. bool(true)
  69. bool(false)
  70. bool(true)
  71. bool(false)
  72. bool(true)
  73. bool(false)
  74. bool(true)
  75. bool(false)
  76. bool(true)
  77. bool(false)
  78. bool(true)
  79. bool(false)
  80. bool(true)
  81. bool(false)
  82. bool(true)
  83. bool(false)
  84. bool(true)
  85. bool(false)
  86. bool(true)
  87. bool(false)
  88. Done