unicode.phpt 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. --TEST--
  2. Test V8::executeString() : Check if imported code works with umlauts
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. # maybe more characters (e.g. from http://www.ltg.ed.ac.uk/~richard/unicode-sample.html?)
  8. $unicode = 'äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃';
  9. # insert unicode via snapshot
  10. $snapshot = V8Js::createSnapshot("var snapshot = {unicode: '" . $unicode . "'}");
  11. # start V8Js
  12. $jscript = new V8Js('php', array(), array(), true, $snapshot);
  13. # insert unicode via php var
  14. $jscript->unicode = $unicode;
  15. # insert unicode via executeString
  16. $jscript->executeString("var execStr = {unicode: '" . $unicode . "'}");
  17. # insert via module loader
  18. $jscript->setModuleLoader(function ($path) use ($unicode) {
  19. return "module.exports = {unicode: '" . $unicode . "'}";
  20. });
  21. # return to php
  22. $jscript->executeString("values = {}");
  23. $jscript->executeString("values['snapshot'] = snapshot.unicode");
  24. $jscript->executeString("values['php'] = php.unicode");
  25. $jscript->executeString("values['execStr'] = execStr.unicode");
  26. $jscript->executeString("values['module'] = require('module').unicode");
  27. $values = $jscript->executeString("values");
  28. echo "snapshot: $values->snapshot\n";
  29. echo "php : $values->php\n";
  30. echo "execStr : $values->execStr\n";
  31. echo "module : $values->module\n";
  32. ?>
  33. ===EOF===
  34. --EXPECT--
  35. snapshot: äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃
  36. php : äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃
  37. execStr : äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃
  38. module : äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃
  39. ===EOF===