소스 검색

Renamed to unicode.phpt

added test for commonJS modules
Peter Hoffmann 8 년 전
부모
커밋
202f0beefa
1개의 변경된 파일18개의 추가작업 그리고 5개의 파일을 삭제
  1. 18 5
      tests/unicode.phpt

+ 18 - 5
tests/unicode.php → tests/unicode.phpt

@@ -1,23 +1,28 @@
 --TEST
 Test V8::executeString() : Check if imported code works with some unicode symbols
 --SKIPIF--
+<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
+--FILE--
 <?php
-# check if v8js was compiled with snapshot support
+# check if snapshots are supported
 define('V8_WITH_SNAPSHOT', method_exists("V8Js", "createSnapshot"));
 
 # maybe more characters (e.g. from http://www.ltg.ed.ac.uk/~richard/unicode-sample.html?)
 $unicode = 'äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃';
+$moduleFileBase = 'test';
 
 # insert unicode via snapshot
 if (V8_WITH_SNAPSHOT) {
     $snapshot = V8Js::createSnapshot("var snapshot = {unicode: '" . $unicode . "'}");
 } else {
-    # argument is only checked for type and further ignored
     $snapshot = '';
 }
 
 # start V8Js
 $jscript = new V8Js('php', array(), array(), true, $snapshot);
+$jscript->setModuleLoader(function ($path) {
+    return file_get_contents($path . ".js");
+});
 
 # insert unicode via php var
 $jscript->unicode = $unicode;
@@ -25,25 +30,33 @@ $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 {
-  # shim this test
+  // 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";
 ?>
-===EOF===
 --EXPECT--
 snapshot: äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃
 php     : äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃
 execStr : äöüßÜÄÖÜ߀áàâÁÀµ²³▁▂▃▄▅▆▇█    ㌀ ㌁ ㌂ ㌃
-===EOF===
+--CLEAN--
+<?php
+unlink("./$moduleFileBase.js");
+?>