Explorar o código

Add a test for issue 25 (native properties)

C. Scott Ananian %!s(int64=11) %!d(string=hai) anos
pai
achega
0adefa5048
Modificáronse 1 ficheiros con 43 adicións e 0 borrados
  1. 43 0
      tests/object_dom.phpt

+ 43 - 0
tests/object_dom.phpt

@@ -0,0 +1,43 @@
+--TEST--
+Test V8::executeString() : DOM object passed from PHP
+--SKIPIF--
+<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
+--FILE--
+<?php
+
+$JS = <<< EOT
+print('js1: ', PHP.test.length, "\\n");
+var elements = PHP.dom.getElementsByTagName('node');
+print('js2: ', elements.length, "\\n");
+var node = elements.item(0);
+print("hasChildNodes: "); var_dump(node.hasChildNodes());
+print("hasAttribute('class'): "); var_dump(node.hasAttribute('class'));
+//var_dump(node);
+EOT;
+
+$dom = new DomDocument();
+$dom->loadXML('<node class="test"/>');
+
+$elements = $dom->getElementsByTagName('node');
+echo 'php: ', $elements->length, "\n";
+$node = $elements->item(0);
+echo "hasChildNodes: "; var_dump($node->hasChildNodes());
+echo "hasAttribute('class'): "; var_dump($node->hasAttribute('class'));
+//var_dump($node);
+
+$a = new V8Js();
+$a->dom = $dom;
+$a->test = array( 'length' => 1 );
+$a->executeString($JS, "test.js");
+
+?>
+===EOF===
+--EXPECT--
+php: 1
+hasChildNodes: bool(false)
+hasAttribute('class'): bool(true)
+js1: 1
+js2: 1
+hasChildNodes: bool(false)
+hasAttribute('class'): bool(true)
+===EOF===