From 492f87cd5bc34b50837294aa3663c6b72b48ce65 Mon Sep 17 00:00:00 2001 From: Stefan Siegl <stesie@brokenpipe.de> Date: Sun, 19 Oct 2014 14:48:11 +0000 Subject: [PATCH] Test exception branch of php_v8js_v8_has_property. --- tests/has_property_after_dispose.phpt | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tests/has_property_after_dispose.phpt diff --git a/tests/has_property_after_dispose.phpt b/tests/has_property_after_dispose.phpt new file mode 100644 index 0000000..7c0ea3c --- /dev/null +++ b/tests/has_property_after_dispose.phpt @@ -0,0 +1,38 @@ +--TEST-- +Test V8::executeString() : has_property after dispose +--SKIPIF-- +<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?> +--FILE-- +<?php + +class Foo { + function callMe($x) { + var_dump(property_exists($x, 'bla')); + $this->x = $x; + } +} + +$v8 = new V8Js(); +$v8->foo = $foo = new Foo(); + +$JS = <<< EOT +PHP.foo.callMe({ bla: 23 }); + +EOT; + +$v8->executeString($JS, 'basic.js'); +unset($v8); + +try { + var_dump(property_exists($foo->x, 'bla')); +} +catch(V8JsScriptException $e) { + var_dump($e->getMessage()); +} +?> +===EOF=== +--EXPECTF-- +bool(true) +string(55) "Can't access V8Object after V8Js instance is destroyed!" +===EOF=== +