diff --git a/tests/unicode.phpt b/tests/unicode.phpt new file mode 100644 index 0000000..4d0908d --- /dev/null +++ b/tests/unicode.phpt @@ -0,0 +1,62 @@ +--TEST +Test V8::executeString() : Check if imported code works with some unicode symbols +--SKIPIF-- + +--FILE-- +setModuleLoader(function ($path) { + return file_get_contents($path . ".js"); +}); + +# insert unicode via php var +$jscript->unicode = $unicode; + +# insert unicode via executeString +$jscript->executeString("var execStr = {unicode: '" . $unicode . "'}"); + +# insert unicode via commonJS module +file_put_contents("./$moduleFileBase.js", "module.exports = {unicode: '$unicode'}"); +$jscript->executeString("var module = require('./$moduleFileBase')"); + +# return to php +$jscript->executeString("values = {}"); +if (V8_WITH_SNAPSHOT) { + $jscript->executeString("values['snapshot'] = snapshot.unicode"); +} else { + // if snapshots are not compiled shim this test + $jscript->executeString("values['snapshot'] = '" . $unicode . "'"); +} +$jscript->executeString("values['php'] = php.unicode"); +$jscript->executeString("values['execStr'] = execStr.unicode"); +$jscript->executeString("values['module'] = module.unicode"); +$values = $jscript->executeString("values"); + +echo "snapshot: $values->snapshot\n"; +echo "php : $values->php\n"; +echo "execStr : $values->execStr\n"; +echo "module : $values->module\n"; +?> +--EXPECT-- +snapshot: äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃ +php : äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃ +execStr : äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃ +--CLEAN-- +