summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/dom/nodes/Node-isSameNode.html
blob: b37442ac80ea8130ac1053af5ef0fc5d0c55e6e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<!DOCTYPE html>
<meta charset="utf-8">
<title>Node.prototype.isSameNode</title>
<link rel=help href="https://dom.spec.whatwg.org/#dom-node-issamenode">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
"use strict";

test(function() {

  var doctype1 = document.implementation.createDocumentType("qualifiedName", "publicId", "systemId");
  var doctype2 = document.implementation.createDocumentType("qualifiedName", "publicId", "systemId");

  assert_true(doctype1.isSameNode(doctype1), "self-comparison");
  assert_false(doctype1.isSameNode(doctype2), "same properties");
  assert_false(doctype1.isSameNode(null), "with null other node");
}, "doctypes should be compared on reference");

test(function() {

  var element1 = document.createElementNS("namespace", "prefix:localName");
  var element2 = document.createElementNS("namespace", "prefix:localName");

  assert_true(element1.isSameNode(element1), "self-comparison");
  assert_false(element1.isSameNode(element2), "same properties");
  assert_false(element1.isSameNode(null), "with null other node");

}, "elements should be compared on reference (namespaced element)");

test(function() {

  var element1 = document.createElement("element");
  element1.setAttributeNS("namespace", "prefix:localName", "value");

  var element2 = document.createElement("element");
  element2.setAttributeNS("namespace", "prefix:localName", "value");

  assert_true(element1.isSameNode(element1), "self-comparison");
  assert_false(element1.isSameNode(element2), "same properties");
  assert_false(element1.isSameNode(null), "with null other node");

}, "elements should be compared on reference (namespaced attribute)");

test(function() {

  var pi1 = document.createProcessingInstruction("target", "data");
  var pi2 = document.createProcessingInstruction("target", "data");

  assert_true(pi1.isSameNode(pi1), "self-comparison");
  assert_false(pi1.isSameNode(pi2), "different target");
  assert_false(pi1.isSameNode(null), "with null other node");

}, "processing instructions should be compared on reference");

test(function() {

  var text1 = document.createTextNode("data");
  var text2 = document.createTextNode("data");

  assert_true(text1.isSameNode(text1), "self-comparison");
  assert_false(text1.isSameNode(text2), "same properties");
  assert_false(text1.isSameNode(null), "with null other node");

}, "text nodes should be compared on reference");

test(function() {

  var comment1 = document.createComment("data");
  var comment2 = document.createComment("data");

  assert_true(comment1.isSameNode(comment1), "self-comparison");
  assert_false(comment1.isSameNode(comment2), "same properties");
  assert_false(comment1.isSameNode(null), "with null other node");

}, "comments should be compared on reference");

test(function() {

  var documentFragment1 = document.createDocumentFragment();
  var documentFragment2 = document.createDocumentFragment();

  assert_true(documentFragment1.isSameNode(documentFragment1), "self-comparison");
  assert_false(documentFragment1.isSameNode(documentFragment2), "same properties");
  assert_false(documentFragment1.isSameNode(null), "with null other node");

}, "document fragments should be compared on reference");

test(function() {

  var document1 = document.implementation.createDocument("", "");
  var document2 = document.implementation.createDocument("", "");

  assert_true(document1.isSameNode(document1), "self-comparison");
  assert_false(document1.isSameNode(document2), "another empty XML document");
  assert_false(document1.isSameNode(null), "with null other node");

}, "documents should be compared on reference");

test(function() {

  var attr1 = document.createAttribute('href');
  var attr2 = document.createAttribute('href');

  assert_true(attr1.isSameNode(attr1), "self-comparison");
  assert_false(attr1.isSameNode(attr2), "same name");
  assert_false(attr1.isSameNode(null), "with null other node");

}, "attributes should be compared on reference");

</script>