bug64874_part1.phpt 1.4 KB

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