Prechádzať zdrojové kódy

Add test on clearPendingException

Stefan Siegl 10 rokov pred
rodič
commit
3ec580aaa3
1 zmenil súbory, kde vykonal 73 pridanie a 0 odobranie
  1. 73 0
      tests/exception_clearing.phpt

+ 73 - 0
tests/exception_clearing.phpt

@@ -0,0 +1,73 @@
+--TEST--
+Test V8::executeString() : Exception clearing test
+--SKIPIF--
+<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
+--FILE--
+<?php
+
+$v8 = new V8Js(null, array(), array(), false);
+
+var_dump($v8->getPendingException());
+
+$v8->clearPendingException();
+var_dump($v8->getPendingException());
+
+$v8->executeString('fooobar', 'throw_0');
+var_dump($v8->getPendingException());
+
+$v8->clearPendingException();
+var_dump($v8->getPendingException());
+
+?>
+===EOF===
+--EXPECTF--
+NULL
+NULL
+object(V8JsScriptException)#%d (11) {
+  ["message":protected]=>
+  string(49) "throw_0:1: ReferenceError: fooobar is not defined"
+  ["string":"Exception":private]=>
+  string(0) ""
+  ["code":protected]=>
+  int(0)
+  ["file":protected]=>
+  string(%d) "%s"
+  ["line":protected]=>
+  int(10)
+  ["trace":"Exception":private]=>
+  array(1) {
+    [0]=>
+    array(6) {
+      ["file"]=>
+      string(%d) "%s"
+      ["line"]=>
+      int(10)
+      ["function"]=>
+      string(13) "executeString"
+      ["class"]=>
+      string(4) "V8Js"
+      ["type"]=>
+      string(2) "->"
+      ["args"]=>
+      array(2) {
+        [0]=>
+        string(7) "fooobar"
+        [1]=>
+        string(7) "throw_0"
+      }
+    }
+  }
+  ["previous":"Exception":private]=>
+  NULL
+  ["JsFileName":protected]=>
+  string(7) "throw_0"
+  ["JsLineNumber":protected]=>
+  int(1)
+  ["JsSourceLine":protected]=>
+  string(7) "fooobar"
+  ["JsTrace":protected]=>
+  string(57) "ReferenceError: fooobar is not defined
+    at throw_0:1:1"
+}
+NULL
+===EOF===