property_exists.phpt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. --TEST--
  2. Test V8::executeString() : property_exists/isset/empty on wrapped JS objects
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $v8 = new V8Js();
  8. $JS = <<< EOT
  9. (function(exports) {
  10. // begin module code
  11. exports.hello = function() { return 'hello'; };
  12. exports.isnull = null;
  13. exports.isundefined = undefined;
  14. exports.isfalse = false;
  15. exports.iszero = 0;
  16. exports.isquotezero = '0';
  17. exports.isemptyarray = [];
  18. exports.isemptystring = '';
  19. exports.istrue = true;
  20. // end module code
  21. return exports;
  22. })({})
  23. EOT;
  24. $exports = $v8->executeString($JS, 'basic.js');
  25. echo "= isset() =\n";
  26. echo "bogus: "; var_dump(isset( $exports->bogus ));
  27. echo "hello: "; var_dump(isset( $exports->hello ));
  28. echo "isnull: "; var_dump(isset( $exports->isnull ));
  29. echo "isundefined: "; var_dump(isset( $exports->isundefined ));
  30. echo "isfalse: "; var_dump(isset( $exports->isfalse ));
  31. echo "iszero: "; var_dump(isset( $exports->iszero ));
  32. echo "isquotezero: "; var_dump(isset( $exports->isquotezero ));
  33. echo "isemptyarray: "; var_dump(isset( $exports->isemptyarray ));
  34. echo "isemptystring: "; var_dump(isset( $exports->isemptystring ));
  35. echo "istrue: "; var_dump(isset( $exports->istrue ));
  36. echo "\n";
  37. echo "= empty() =\n";
  38. echo "bogus: "; var_dump(empty( $exports->bogus ));
  39. echo "hello: "; var_dump(empty( $exports->hello ));
  40. echo "isnull: "; var_dump(empty( $exports->isnull ));
  41. echo "isundefined: "; var_dump(empty( $exports->isundefined ));
  42. echo "isfalse: "; var_dump(empty( $exports->isfalse ));
  43. echo "iszero: "; var_dump(empty( $exports->iszero ));
  44. echo "isquotezero: "; var_dump(empty( $exports->isquotezero ));
  45. echo "isemptyarray: "; var_dump(empty( $exports->isemptyarray ));
  46. echo "isemptystring: "; var_dump(empty( $exports->isemptystring ));
  47. echo "istrue: "; var_dump(empty( $exports->istrue ));
  48. echo "\n";
  49. echo "= property_exists() =\n";
  50. echo "bogus: "; var_dump(property_exists( $exports, 'bogus' ));
  51. echo "hello: "; var_dump(property_exists( $exports, 'hello' ));
  52. echo "isnull: "; var_dump(property_exists( $exports, 'isnull' ));
  53. echo "isundefined: "; var_dump(property_exists( $exports, 'isundefined' ));
  54. echo "isfalse: "; var_dump(property_exists( $exports, 'isfalse' ));
  55. echo "iszero: "; var_dump(property_exists( $exports, 'iszero' ));
  56. echo "isquotezero: "; var_dump(property_exists( $exports, 'isquotezero' ));
  57. echo "isemptyarray: "; var_dump(property_exists( $exports, 'isemptyarray' ));
  58. echo "isemptystring: "; var_dump(property_exists( $exports, 'isemptystring' ));
  59. echo "istrue: "; var_dump(property_exists( $exports, 'istrue' ));
  60. echo "\n";
  61. ?>
  62. ===EOF===
  63. --EXPECT--
  64. = isset() =
  65. bogus: bool(false)
  66. hello: bool(true)
  67. isnull: bool(false)
  68. isundefined: bool(false)
  69. isfalse: bool(true)
  70. iszero: bool(true)
  71. isquotezero: bool(true)
  72. isemptyarray: bool(true)
  73. isemptystring: bool(true)
  74. istrue: bool(true)
  75. = empty() =
  76. bogus: bool(true)
  77. hello: bool(false)
  78. isnull: bool(true)
  79. isundefined: bool(true)
  80. isfalse: bool(true)
  81. iszero: bool(true)
  82. isquotezero: bool(true)
  83. isemptyarray: bool(true)
  84. isemptystring: bool(true)
  85. istrue: bool(false)
  86. = property_exists() =
  87. bogus: bool(false)
  88. hello: bool(true)
  89. isnull: bool(true)
  90. isundefined: bool(true)
  91. isfalse: bool(true)
  92. iszero: bool(true)
  93. isquotezero: bool(true)
  94. isemptyarray: bool(true)
  95. isemptystring: bool(true)
  96. istrue: bool(true)
  97. ===EOF===