浏览代码

add Throwable to string conversion testcase

Stefan Siegl 2 年之前
父节点
当前提交
456814703c
共有 1 个文件被更改,包括 35 次插入0 次删除
  1. 35 0
      tests/exception_proxy_001.phpt

+ 35 - 0
tests/exception_proxy_001.phpt

@@ -0,0 +1,35 @@
+--TEST--
+Test V8::setExceptionProxyFactory() : String conversion
+--SKIPIF--
+<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
+--FILE--
+<?php
+class myv8 extends V8Js
+{
+	public function throwException(string $message) {
+		throw new Exception($message);
+	}
+}
+
+$v8 = new myv8();
+$v8->setExceptionProxyFactory(function (Throwable $ex) {
+	echo "exception proxy factory called.\n";
+	return $ex->getMessage();
+});
+
+$v8->executeString('
+	try {
+		PHP.throwException("Oops");
+	}
+	catch (e) {
+		var_dump(typeof e); // string
+		var_dump(e);
+	}
+', null, V8Js::FLAG_PROPAGATE_PHP_EXCEPTIONS);
+?>
+===EOF===
+--EXPECT--
+exception proxy factory called.
+string(6) "string"
+string(4) "Oops"
+===EOF===