mirror of
https://github.com/servo/servo.git
synced 2025-08-01 19:50:30 +01:00
Implement Element.getAttributeNames
This commit is contained in:
parent
329a5b0c95
commit
b8ae5897f1
7 changed files with 15 additions and 9 deletions
|
@ -1228,6 +1228,11 @@ impl ElementMethods for Element {
|
||||||
self.attr_list.or_init(|| NamedNodeMap::new(&window_from_node(self), self))
|
self.attr_list.or_init(|| NamedNodeMap::new(&window_from_node(self), self))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://dom.spec.whatwg.org/#dom-element-getattributenames
|
||||||
|
fn GetAttributeNames(&self) -> Vec<DOMString> {
|
||||||
|
self.attrs.borrow().iter().map(|attr| attr.Name()).collect()
|
||||||
|
}
|
||||||
|
|
||||||
// https://dom.spec.whatwg.org/#dom-element-getattribute
|
// https://dom.spec.whatwg.org/#dom-element-getattribute
|
||||||
fn GetAttribute(&self, name: DOMString) -> Option<DOMString> {
|
fn GetAttribute(&self, name: DOMString) -> Option<DOMString> {
|
||||||
self.GetAttributeNode(name)
|
self.GetAttributeNode(name)
|
||||||
|
|
|
@ -34,6 +34,8 @@ interface Element : Node {
|
||||||
[SameObject]
|
[SameObject]
|
||||||
readonly attribute NamedNodeMap attributes;
|
readonly attribute NamedNodeMap attributes;
|
||||||
[Pure]
|
[Pure]
|
||||||
|
sequence<DOMString> getAttributeNames();
|
||||||
|
[Pure]
|
||||||
DOMString? getAttribute(DOMString name);
|
DOMString? getAttribute(DOMString name);
|
||||||
[Pure]
|
[Pure]
|
||||||
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
|
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
|
||||||
|
|
|
@ -120,19 +120,19 @@
|
||||||
[Element interface: element must inherit property "hasAttributes" with the proper type (7)]
|
[Element interface: element must inherit property "hasAttributes" with the proper type (7)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: element must inherit property "removeAttributeNode" with the proper type (21)]
|
[Element interface: element must inherit property "removeAttributeNode" with the proper type (22)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: calling removeAttributeNode(Attr) on element with too few arguments must throw TypeError]
|
[Element interface: calling removeAttributeNode(Attr) on element with too few arguments must throw TypeError]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: element must inherit property "query" with the proper type (33)]
|
[Element interface: element must inherit property "query" with the proper type (34)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: calling query(DOMString) on element with too few arguments must throw TypeError]
|
[Element interface: calling query(DOMString) on element with too few arguments must throw TypeError]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: element must inherit property "queryAll" with the proper type (34)]
|
[Element interface: element must inherit property "queryAll" with the proper type (35)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: calling queryAll(DOMString) on element with too few arguments must throw TypeError]
|
[Element interface: calling queryAll(DOMString) on element with too few arguments must throw TypeError]
|
||||||
|
|
|
@ -3,9 +3,6 @@
|
||||||
[Basic functionality of removeAttributeNode]
|
[Basic functionality of removeAttributeNode]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[getAttributeNames tests]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[Own property names should only include all-lowercase qualified names for an HTML element in an HTML document]
|
[Own property names should only include all-lowercase qualified names for an HTML element in an HTML document]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1986,19 +1986,19 @@
|
||||||
[Element interface: document.createElement("noscript") must inherit property "hasAttributes" with the proper type (7)]
|
[Element interface: document.createElement("noscript") must inherit property "hasAttributes" with the proper type (7)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: document.createElement("noscript") must inherit property "removeAttributeNode" with the proper type (21)]
|
[Element interface: document.createElement("noscript") must inherit property "removeAttributeNode" with the proper type (22)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: calling removeAttributeNode(Attr) on document.createElement("noscript") with too few arguments must throw TypeError]
|
[Element interface: calling removeAttributeNode(Attr) on document.createElement("noscript") with too few arguments must throw TypeError]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: document.createElement("noscript") must inherit property "query" with the proper type (33)]
|
[Element interface: document.createElement("noscript") must inherit property "query" with the proper type (34)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: calling query(DOMString) on document.createElement("noscript") with too few arguments must throw TypeError]
|
[Element interface: calling query(DOMString) on document.createElement("noscript") with too few arguments must throw TypeError]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: document.createElement("noscript") must inherit property "queryAll" with the proper type (34)]
|
[Element interface: document.createElement("noscript") must inherit property "queryAll" with the proper type (35)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element interface: calling queryAll(DOMString) on document.createElement("noscript") with too few arguments must throw TypeError]
|
[Element interface: calling queryAll(DOMString) on document.createElement("noscript") with too few arguments must throw TypeError]
|
||||||
|
|
|
@ -287,6 +287,7 @@ interface Element : Node {
|
||||||
|
|
||||||
boolean hasAttributes();
|
boolean hasAttributes();
|
||||||
[SameObject] readonly attribute NamedNodeMap attributes;
|
[SameObject] readonly attribute NamedNodeMap attributes;
|
||||||
|
sequence<DOMString> getAttributeNames();
|
||||||
DOMString? getAttribute(DOMString name);
|
DOMString? getAttribute(DOMString name);
|
||||||
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
|
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
|
||||||
void setAttribute(DOMString name, DOMString value);
|
void setAttribute(DOMString name, DOMString value);
|
||||||
|
|
|
@ -289,6 +289,7 @@ interface Element : Node {
|
||||||
|
|
||||||
boolean hasAttributes();
|
boolean hasAttributes();
|
||||||
[SameObject] readonly attribute NamedNodeMap attributes;
|
[SameObject] readonly attribute NamedNodeMap attributes;
|
||||||
|
sequence<DOMString> getAttributeNames();
|
||||||
DOMString? getAttribute(DOMString name);
|
DOMString? getAttribute(DOMString name);
|
||||||
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
|
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
|
||||||
void setAttribute(DOMString name, DOMString value);
|
void setAttribute(DOMString name, DOMString value);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue