object_dom.phpt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --TEST--
  2. Test V8::executeString() : DOM object passed from PHP
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $JS = <<< EOT
  8. print('js1: ', PHP.test.length, "\\n");
  9. var elements = PHP.dom.getElementsByTagName('node');
  10. print('js2: ', elements.length, "\\n");
  11. var node = elements.item(0);
  12. print("hasChildNodes: "); var_dump(node.hasChildNodes());
  13. print("hasAttribute('class'): "); var_dump(node.hasAttribute('class'));
  14. //var_dump(node);
  15. EOT;
  16. $dom = new DomDocument();
  17. $dom->loadXML('<node class="test"/>');
  18. $elements = $dom->getElementsByTagName('node');
  19. echo 'php: ', $elements->length, "\n";
  20. $node = $elements->item(0);
  21. echo "hasChildNodes: "; var_dump($node->hasChildNodes());
  22. echo "hasAttribute('class'): "; var_dump($node->hasAttribute('class'));
  23. //var_dump($node);
  24. $a = new V8Js();
  25. $a->dom = $dom;
  26. $a->test = array( 'length' => 1 );
  27. $a->executeString($JS, "test.js");
  28. ?>
  29. ===EOF===
  30. --EXPECT--
  31. php: 1
  32. hasChildNodes: bool(false)
  33. hasAttribute('class'): bool(true)
  34. js1: 1
  35. js2: 1
  36. hasChildNodes: bool(false)
  37. hasAttribute('class'): bool(true)
  38. ===EOF===