PageRenderTime 47ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 1ms

/tests/tests.php

http://github.com/andrejpavlovic/xpathjs
PHP | 307 lines | 274 code | 33 blank | 0 comment | 1 complexity | ee44632f529e48f52ec62d3bd1f401e1 MD5 | raw file
Possible License(s): MIT
  1. <?php
  2. $serve_xml = !empty($_GET['xml']);
  3. if ($serve_xml)
  4. header('Content-Type: application/xhtml+xml');
  5. ?>
  6. <!DOCTYPE html>
  7. <!-- some comment -->
  8. <html xml:lang="en-us" xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://some-namespace.com/nss">
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  11. <title>xpath-test</title>
  12. </head>
  13. <body class="yui3-skin-sam">
  14. <div id="testXPathNSResolver">
  15. <div id="testXPathNSResolverNode" xmlns:xforms="http://www.w3.org/2002/xforms">
  16. <div xmlns="http://www.w3.org/TR/REC-html40">
  17. <div></div>
  18. </div>
  19. <xforms:model>
  20. <xforms:instance>
  21. <ecommerce xmlns="">
  22. <method></method>
  23. <number></number>
  24. <expiry></expiry>
  25. </ecommerce>
  26. </xforms:instance>
  27. <xforms:submission action="http://example.com/submit" method="post" id="submit" includenamespaceprefixes=""/>
  28. </xforms:model>
  29. </div>
  30. </div>
  31. <div id="testXPathEvaluate">
  32. <div>some text</div>
  33. </div>
  34. <div id="testLang" xml:lang="sr-Cyrl-bg">
  35. <div lang="fr">
  36. <div id="testLang2"></div>
  37. </div>
  38. <div id="testLang3" xml:lang="sl"></div>
  39. <div id="testLang4"></div>
  40. </div>
  41. <div id="testFunctionNodeset">
  42. <div id="testFunctionNodeset2">
  43. <p>1</p>
  44. <p>2</p>
  45. <p>3</p>
  46. <p>4</p>
  47. </div>
  48. <div id="testFunctionNodesetElement">aaa</div>
  49. <div id="testFunctionNodesetElementPrefix"><ev:div2></ev:div2></div>
  50. <div id="testFunctionNodesetElementNested"><span>bbb</span>sss<span></span><div>ccc<span>ddd</span></div></div>
  51. <div id="testFunctionNodesetComment"><!-- hello world --></div>
  52. <div id="testFunctionNodesetText">here is some text</div>
  53. <div id="testFunctionNodesetProcessingInstruction"><?php echo '<?xml-stylesheet type="text/xml" href="test.xsl"?>' ?></div>
  54. <div id="testFunctionNodesetCData"><![CDATA[some cdata]]></div>
  55. <div id="testFunctionNodesetAttribute" ev:class="123" width=" 1 00% "></div>
  56. <div id="testFunctionNodesetNamespace" xmlns:asdf="http://www.123.com/"></div>
  57. </div>
  58. <div id="FunctionStringCase">
  59. <div id="FunctionStringCaseStringNodesetElement">aaa</div>
  60. <div id="FunctionStringCaseStringNodesetElementNested"><span>bbb</span>sss<span></span><div>ccc<span>ddd</span></div></div>
  61. <div id="FunctionStringCaseStringNodesetComment"><!-- hello world --></div>
  62. <div id="FunctionStringCaseStringNodesetText">here is some text</div>
  63. <div id="FunctionStringCaseStringNodesetProcessingInstruction"><?php echo '<?xml-stylesheet type="text/xml" href="test.xsl"?>' ?></div>
  64. <div id="FunctionStringCaseStringNodesetCData"><![CDATA[some cdata]]></div>
  65. <div id="FunctionStringCaseStringNodesetAttribute" class="123" width=" 1 00% "></div>
  66. <div id="FunctionStringCaseStringNodesetNamespace" xmlns:asdf="http://www.123.com/"></div>
  67. <div id="FunctionStringCaseStringLength1"></div>
  68. <div id="FunctionStringCaseStringLength2">asdf</div>
  69. <div id="FunctionStringCaseStringNormalizeSpace1"></div>
  70. <div id="FunctionStringCaseStringNormalizeSpace2"> </div>
  71. <div id="FunctionStringCaseStringNormalizeSpace3"> a b </div>
  72. <div id="FunctionStringCaseStringNormalizeSpace4"> a
  73. bc c
  74. </div>
  75. </div>
  76. <div id="FunctionNumberCase">
  77. <div id="FunctionNumberCaseNumber">123</div>
  78. <div id="FunctionNumberCaseNotNumber"> a a </div>
  79. <div id="FunctionNumberCaseNumberMultiple">
  80. <div>-10</div>
  81. <div>11</div>
  82. <div>99</div>
  83. </div>
  84. <div id="FunctionNumberCaseNotNumberMultiple">
  85. <div>-10</div>
  86. <div>11</div>
  87. <div>a</div>
  88. </div>
  89. </div>
  90. <div id="XPathExpressionEvaluateCase">
  91. <div id="testContextNodeParameter" style="display:block;">
  92. <div id="testContextNodeParameterText">some text</div>
  93. <div id="testContextNodeParameterCData"><![CDATA[aa<strong>some text</strong>]]></div>
  94. <div id="testContextNodeParameterComment"><!-- here is comment --></div>
  95. <div id="testContextNodeParameterProcessingInstruction"><?php echo '<?xml-stylesheet type="text/xml" href="test.xsl"?>' ?></div>
  96. <div id="testContextNodeParameterNamespace" xmlns:asdf="http://some-namespace/"></div>
  97. </div>
  98. </div>
  99. <div id="StepAxisCase">
  100. <div id="testStepAxisNodeElement"></div>
  101. <div id="testStepAxisNodeAttribute" style="sss:asdf;" width="100%"></div>
  102. <div id="testStepAxisNodeCData"><![CDATA[aa<strong>some text</strong>]]><div></div>asdf</div>
  103. <div id="testStepAxisNodeComment"><!-- here is comment --><div></div>asdf</div>
  104. <div id="testStepAxisNodeProcessingInstruction"><?php echo '<?xml-stylesheet type="text/xml" href="test.xsl"?>' ?><div></div>asdf</div>
  105. <div id="testStepAxisNodeNamespace" xmlns:asdf="http://some-namespace/" width="100%"></div>
  106. <div id="testStepAxisChild">
  107. some text
  108. <![CDATA[aa<strong>some text</strong>]]>
  109. <div></div>
  110. <div></div>
  111. <div></div>
  112. <div></div>
  113. <div></div>
  114. </div>
  115. <div id="testStepAxisDescendant">
  116. <div>
  117. <div></div>
  118. <div></div>
  119. <div></div>
  120. <div>
  121. <div></div>
  122. <div></div>
  123. <!-- here is comment -->
  124. </div>
  125. </div>
  126. <div></div>
  127. </div>
  128. <div id="testStepAxisAttribute">
  129. <div id="testStepAxisNodeAttribute0"></div>
  130. <div id="testStepAxisNodeAttribute1" class="test 123"></div>
  131. <div id="testStepAxisNodeAttribute3" style="aaa" class="test 123" width="100%"></div>
  132. <div id="testStepAxisNodeAttributeStartXml" xmlnswidth="100%" xml="sss"></div>
  133. <div id="testStepAxisNodeNamespace0"></div>
  134. <div id="testStepAxisNodeNamespace1" xmlns:a="asdf"></div>
  135. <div id="testStepAxisNodeNamespace1b" xmlns:a="asdf"></div>
  136. <div id="testStepAxisNodeNamespace1defaultContainer"><div xmlns="asdf"></div></div>
  137. <div id="testStepAxisNodeNamespace1defaultContainer2"><div xmlns=""></div></div>
  138. <div id="testStepAxisNodeNamespace3" xmlns:a="asdf" xmlns:b="asdf2" xmlns:c="asdf3"></div>
  139. <div id="testStepAxisNodeNamespace3defaultContainer"><div xmlns:a="asdf" xmlns="asdf2" xmlns:c="asdf3"></div></div>
  140. <div id="testStepAxisNodeNamespaceXmlOverride" xmlns:ev="http://some-other-namespace/"></div>
  141. <div id="testStepAxisNodeAttrib1Ns1" class="test 123" xmlns:a="asdf"></div>
  142. <div id="testStepAxisNodeAttrib1Ns1reversed" xmlns:a="asdf" class="test 123"></div>
  143. <div id="testStepAxisNodeAttrib2Ns1" style="aaa" class="test 123" xmlns:c="asdf3"></div>
  144. <div id="testStepAxisNodeAttrib2Ns1reversedContainer"><div style="aaa" xmlns="asdf" class="test 123"></div></div>
  145. <div id="testStepAxisNodeAttrib2Ns2Container"><div xmlns:a="asdf" xmlns="asdf2" style="aaa" class="test 123"></div></div>
  146. </div>
  147. </div>
  148. <div id="FunctionNodesetIdCase">
  149. <div id="FunctionNodesetIdCaseSimple"></div>
  150. <div id="FunctionNodesetIdCaseNoDefaultNamespaceContainer"><div id="FunctionNodesetIdCaseNoDefaultNamespace" xmlns=""></div></div>
  151. <div id="FunctionNodesetIdCaseXhtmlDefaultNamespaceContainer"><div id="FunctionNodesetIdCaseXhtmlDefaultNamespace" xmlns="http://www.w3.org/1999/xhtml"></div></div>
  152. <div id="FunctionNodesetIdCaseXhtmlNamespaceContainer"><div xhtml:id="FunctionNodesetIdCaseXhtmlNamespace" xmlns:xhtml="http://www.w3.org/1999/xhtml"></div></div>
  153. <div id="FunctionNodesetIdCaseXhtmlNamespaceParentContainer" xmlns:xhtml="http://www.w3.org/1999/xhtml"><div xhtml:id="FunctionNodesetIdCaseXhtmlNamespaceParent"></div></div>
  154. <div id="FunctionNodesetIdXmlNamespaceContainer"><div xml:id="FunctionNodesetIdXmlNamespace" xmlns=""></div></div>
  155. <div>
  156. <div id="FunctionNodesetIdCaseMultiple1"></div>
  157. <div id="FunctionNodesetIdCaseMultiple2"></div>
  158. <div id="FunctionNodesetIdCaseMultiple3"></div>
  159. <div id="FunctionNodesetIdCaseMultiple4"></div>
  160. </div>
  161. <div id="FunctionNodesetIdCaseNodeset"><p>FunctionNodesetIdCaseMultiple2</p><p>FunctionNodesetIdCaseMultiple1</p><p>FunctionNodesetIdCaseMultiple2 FunctionNodesetIdCaseMultiple4</p><p>FunctionNodesetIdCaseMultiple3</p></div>
  162. </div>
  163. <div id="StepNodeTestNodeTypeCase">
  164. some text
  165. <div></div>
  166. <div>
  167. <div></div>
  168. </div>
  169. <!-- comment --><!-- comment -->
  170. asdf
  171. asdfsdf sdf
  172. <div></div>
  173. <?php echo '<?xml-stylesheet type="text/xml" href="test.xsl"?>' ?>
  174. <div></div>
  175. sdfsdf
  176. <![CDATA[aa<strong>some text</strong>]]>
  177. <!-- comment -->
  178. <div></div>
  179. <?php echo '<?custom-process-instruct type="text/xml" href="test.xsl"?>' ?>
  180. <div></div>
  181. </div>
  182. <div id="StepNodeTestCaseNameTest">
  183. <div id="StepNodeTestCaseNameTestAttribute" ev:attrib1="value" ev:attrib2="value2" xml:attrib2="something" xml:sss="something2" attrib3="asdf" xmlns:ns2="http://asdf/" ns2:attrib4="Hello world"></div>
  184. <div id="StepNodeTestCaseNameTestNamespace" xmlns:ns1="test-123" xmlns:ns2="http://asdf/" ev:attrib1="value" xml:attrib2="something" attrib3="asdf"></div>
  185. <div id="StepNodeTestCaseNameTestChild"><div xmlns="http://asdf/"></div><ev:div xmlns:ev="http://asdf/"></ev:div><ev:span xmlns:ev="http://asdf/"></ev:span>
  186. <div></div>
  187. asdf
  188. <!-- asdf -->
  189. asdf
  190. <div></div>
  191. <div></div>
  192. asas
  193. <div></div>
  194. </div>
  195. <div id="StepNodeTestCaseNameTest1">
  196. <div id="StepNodeTestCaseNameTest2">
  197. <div id="StepNodeTestCaseNameTest3"></div>
  198. </div>
  199. </div>
  200. <div id="StepNodeTestCaseNameTestNoNamespace"><div xmlns=""><div><div></div></div></div></div>
  201. </div>
  202. <div id="LocationPathCase">
  203. <div id="LocationPathCaseText">some text</div>
  204. <div id="LocationPathCaseComment"><!-- some comment --></div>
  205. <div id="LocationPathCaseCData"><![CDATA[some cdata]]></div>
  206. <div id="LocationPathCaseProcessingInstruction"><?php echo '<?xml-stylesheet type="text/xml" href="test.xsl"?>' ?></div>
  207. <div id="LocationPathCaseAttribute" class="123" width="100%"></div>
  208. <div id="LocationPathCaseNamespace" xmlns:asdf="http://www.123.com/"></div>
  209. <div id="LocationPathCaseDuplicates"></div>
  210. <div id="LocationPathCaseAttributeParent"><div attr="aa"></div><div attr="aa3a" attr2="sss"></div><div attr2="adda"></div><div attr4="aa"></div></div>
  211. <div id="LocationPathCaseNamespaceParent"><div xmlns="http://asdss/"></div><div xmlns:aa="http://saa/" xmlns:a2="hello/world" xmlns:ab="hello/world2"></div><div></div><div xmlns:aa="http://saa/"></div></div>
  212. </div>
  213. <div id="ComparisonOperatorCase">
  214. <div id="ComparisonOperatorCaseNodesetNegative5to5">
  215. <div>-5</div>
  216. <div>-4</div>
  217. <div>-3</div>
  218. <div>-2</div>
  219. <div>-1</div>
  220. <div>0</div>
  221. <div>1</div>
  222. <div>2</div>
  223. <div>3</div>
  224. <div>4</div>
  225. <div>5</div>
  226. </div>
  227. <div id="ComparisonOperatorCaseNodeset6to10">
  228. <div>6</div>
  229. <div>7</div>
  230. <div>8</div>
  231. <div>9</div>
  232. <div>10</div>
  233. </div>
  234. <div id="ComparisonOperatorCaseNodeset4to8">
  235. <div>4</div>
  236. <div>5</div>
  237. <div>6</div>
  238. <div>7</div>
  239. <div>8</div>
  240. </div>
  241. <div id="ComparisonOperatorCaseNodesetEmpty">
  242. </div>
  243. <div id="ComparisonOperatorCaseNodesetStrings">
  244. <div>aaa</div>
  245. <div>bbb</div>
  246. <div>cccccc</div>
  247. <div>ddd</div>
  248. <div>eee</div>
  249. </div>
  250. </div>
  251. <div id="UnionOperatorTestCase">
  252. <div id="eee10">
  253. <div id="eee20">
  254. <div>
  255. <div id="eee25"></div>
  256. </div>
  257. </div>
  258. <div id="eee30">
  259. <div id="eee35"></div>
  260. <div id="eee40" class="sss"></div>
  261. </div>
  262. </div>
  263. <div id="eee50"></div>
  264. <div id="nss10">
  265. <div id="nss20">
  266. <div id="nss25" xmlns:asdf="http://asdf.com/" align="right"></div>
  267. <div xmlns:asdf="http://asdf.com/" id="nss30"></div>
  268. </div>
  269. <div id="nss40" xmlns:asdf="sss" xmlns:asdf2="sdfsdf"></div>
  270. </div>
  271. </div>
  272. </body>
  273. </html>
  274. <!-- some comment -->