-
Notifications
You must be signed in to change notification settings - Fork 202
/
Copy pathunicode.phpt
50 lines (39 loc) · 1.78 KB
/
unicode.phpt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
--TEST--
Test V8::executeString() : Check if imported code works with umlauts
--SKIPIF--
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
--FILE--
<?php
# maybe more characters (e.g. from http://www.ltg.ed.ac.uk/~richard/unicode-sample.html?)
$unicode = 'äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█ ㌀ ㌁ ㌂ ㌃';
# insert unicode via snapshot
$snapshot = V8Js::createSnapshot("var snapshot = {unicode: '" . $unicode . "'}");
# start V8Js
$jscript = new V8Js('php', array(), $snapshot);
# insert unicode via php var
$jscript->unicode = $unicode;
# insert unicode via executeString
$jscript->executeString("var execStr = {unicode: '" . $unicode . "'}");
# insert via module loader
$jscript->setModuleLoader(function ($path) use ($unicode) {
return "module.exports = {unicode: '" . $unicode . "'}";
});
# return to php
$jscript->executeString("values = {}");
$jscript->executeString("values['snapshot'] = snapshot.unicode");
$jscript->executeString("values['php'] = php.unicode");
$jscript->executeString("values['execStr'] = execStr.unicode");
$jscript->executeString("values['module'] = require('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";
?>
===EOF===
--EXPECT--
snapshot: äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█ ㌀ ㌁ ㌂ ㌃
php : äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█ ㌀ ㌁ ㌂ ㌃
execStr : äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█ ㌀ ㌁ ㌂ ㌃
module : äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█ ㌀ ㌁ ㌂ ㌃
===EOF===