diff options
-rw-r--r-- | components/script/dom/node.rs | 2 | ||||
-rw-r--r-- | tests/wpt/metadata/dom/nodes/Node-isEqualNode.xhtml.ini | 5 | ||||
-rw-r--r-- | tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml | 24 |
3 files changed, 29 insertions, 2 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 21c427d07b1..3fc51c10fff 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -2368,8 +2368,8 @@ impl<'a> NodeMethods for &'a Node { fn is_equal_element(node: &Node, other: &Node) -> bool { let element: &Element = ElementCast::to_ref(node).unwrap(); let other_element: &Element = ElementCast::to_ref(other).unwrap(); - // FIXME: namespace prefix (*element.namespace() == *other_element.namespace()) && + (*element.prefix() == *other_element.prefix()) && (*element.local_name() == *other_element.local_name()) && (element.attrs().len() == other_element.attrs().len()) } diff --git a/tests/wpt/metadata/dom/nodes/Node-isEqualNode.xhtml.ini b/tests/wpt/metadata/dom/nodes/Node-isEqualNode.xhtml.ini index 7109edb353f..9e796d48fd6 100644 --- a/tests/wpt/metadata/dom/nodes/Node-isEqualNode.xhtml.ini +++ b/tests/wpt/metadata/dom/nodes/Node-isEqualNode.xhtml.ini @@ -1,3 +1,6 @@ [Node-isEqualNode.xhtml] type: testharness - disabled: xml + expected: TIMEOUT + [isEqualNode should return true when only the internal subsets of DocumentTypes differ.] + expected: NOTRUN + diff --git a/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml b/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml index d33406a74cf..47423473b69 100644 --- a/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml +++ b/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml @@ -34,6 +34,30 @@ test(function() { }, "isEqualNode should return true when the attributes are in a different order") test(function() { + var a = document.createElementNS("ns", "prefix:foo") + var b = document.createElementNS("ns", "prefix:foo") + assert_true(a.isEqualNode(b)) +}, "isEqualNode should return true if elements have same namespace, prefix, and local name") + +test(function() { + var a = document.createElementNS("ns1", "prefix:foo") + var b = document.createElementNS("ns2", "prefix:foo") + assert_false(a.isEqualNode(b)) +}, "isEqualNode should return false if elements have different namespace") + +test(function() { + var a = document.createElementNS("ns", "prefix1:foo") + var b = document.createElementNS("ns", "prefix2:foo") + assert_false(a.isEqualNode(b)) +}, "isEqualNode should return false if elements have different prefix") + +test(function() { + var a = document.createElementNS("ns", "prefix:foo1") + var b = document.createElementNS("ns", "prefix:foo2") + assert_false(a.isEqualNode(b)) +}, "isEqualNode should return false if elements have different local name") + +test(function() { var a = document.createElement("foo") a.setAttributeNS("ns", "x:a", "bar") var b = document.createElement("foo") |