0
0
mirror of https://github.com/phpv8/v8js.git synced 2024-11-08 18:58:41 +00:00
phpv8/tests/extensions_error.phpt
2017-01-22 14:18:26 +01:00

49 lines
1.4 KiB
PHP

--TEST--
Test V8::registerExtension() : Register extension with errors
--SKIPIF--
<?php
require_once(dirname(__FILE__) . '/skipif.inc');
ob_start(NULL, 0, PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_REMOVABLE);
phpinfo(INFO_MODULES);
$minfo = ob_get_contents();
ob_end_clean();
if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
// On Windows the "Fatal error" happens to appear before the error
// message output by V8 itself.
echo "skip Windows";
}
if(preg_match("/V8 Engine Linked Version => (.*)/", $minfo, $matches)) {
$version = explode('.', $matches[1]);
if($version[0] < 5 || ($version[0] == 5 && $version[1] < 7)) {
// old v8 version, has shorter error message and hence doesn't
// fit our EXCEPTF below
echo "SKIP too old V8 version";
}
}
?>
--FILE--
<?php
$handlebarsJs = "var root = typeof global !== 'undefined' ? global : window, \$Handlebars = 'test';";
echo "-- registerExtension --\n";
V8Js::registerExtension('handlebars', $handlebarsJs, [], true);
echo "-- creating V8Js object --\n";
$v8 = new V8Js();
var_dump($v8);
?>
===EOF===
--EXPECTF--
-- registerExtension --
-- creating V8Js object --
Error installing extension 'handlebars'.
Fatal error: Uncaught V8JsException: Failed to create V8 context. Check that registered extensions do not have errors. in %s%eextensions_error.php:7
Stack trace:
#0 %s%eextensions_error.php(7): V8Js->__construct()
#1 {main}
thrown in %s%eextensions_error.php on line 7