xmlns-issue-41.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. var t = require(__dirname)
  2. , xmls = // should be the same both ways.
  3. [ "<parent xmlns:a='http://ATTRIBUTE' a:attr='value' />"
  4. , "<parent a:attr='value' xmlns:a='http://ATTRIBUTE' />" ]
  5. , ex1 =
  6. [ [ "opennamespace"
  7. , { prefix: "a"
  8. , uri: "http://ATTRIBUTE"
  9. }
  10. ]
  11. , [ "attribute"
  12. , { name: "xmlns:a"
  13. , value: "http://ATTRIBUTE"
  14. , prefix: "xmlns"
  15. , local: "a"
  16. , uri: "http://www.w3.org/2000/xmlns/"
  17. }
  18. ]
  19. , [ "attribute"
  20. , { name: "a:attr"
  21. , local: "attr"
  22. , prefix: "a"
  23. , uri: "http://ATTRIBUTE"
  24. , value: "value"
  25. }
  26. ]
  27. , [ "opentag"
  28. , { name: "parent"
  29. , uri: ""
  30. , prefix: ""
  31. , local: "parent"
  32. , attributes:
  33. { "a:attr":
  34. { name: "a:attr"
  35. , local: "attr"
  36. , prefix: "a"
  37. , uri: "http://ATTRIBUTE"
  38. , value: "value"
  39. }
  40. , "xmlns:a":
  41. { name: "xmlns:a"
  42. , local: "a"
  43. , prefix: "xmlns"
  44. , uri: "http://www.w3.org/2000/xmlns/"
  45. , value: "http://ATTRIBUTE"
  46. }
  47. }
  48. , ns: {"a": "http://ATTRIBUTE"}
  49. , isSelfClosing: true
  50. }
  51. ]
  52. , ["closetag", "parent"]
  53. , ["closenamespace", { prefix: "a", uri: "http://ATTRIBUTE" }]
  54. ]
  55. // swap the order of elements 2 and 1
  56. , ex2 = [ex1[0], ex1[2], ex1[1]].concat(ex1.slice(3))
  57. , expected = [ex1, ex2]
  58. xmls.forEach(function (x, i) {
  59. t.test({ xml: x
  60. , expect: expected[i]
  61. , strict: true
  62. , opt: { xmlns: true }
  63. })
  64. })