mirror of
https://github.com/servo/servo.git
synced 2025-08-02 20:20:14 +01:00
Implement NonElementParentNode for DocumentFragment
This commit is contained in:
parent
3f5b3053b9
commit
dc125f9eb1
3 changed files with 14 additions and 9 deletions
|
@ -17,6 +17,7 @@ use dom::eventtarget::{EventTarget, EventTargetTypeId};
|
|||
use dom::htmlcollection::HTMLCollection;
|
||||
use dom::node::{Node, NodeTypeId, window_from_node};
|
||||
use dom::nodelist::NodeList;
|
||||
use string_cache::Atom;
|
||||
use util::str::DOMString;
|
||||
|
||||
// https://dom.spec.whatwg.org/#documentfragment
|
||||
|
@ -58,6 +59,18 @@ impl DocumentFragmentMethods for DocumentFragment {
|
|||
HTMLCollection::children(window.r(), NodeCast::from_ref(self))
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-nonelementparentnode-getelementbyid
|
||||
fn GetElementById(&self, id: DOMString) -> Option<Root<Element>> {
|
||||
let node = NodeCast::from_ref(self);
|
||||
let id = Atom::from_slice(&id);
|
||||
node.traverse_preorder().filter_map(ElementCast::to_root).find(|descendant| {
|
||||
match descendant.get_attribute(&ns!(""), &atom!(id)) {
|
||||
None => false,
|
||||
Some(attr) => *attr.value().as_atom() == id,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-parentnode-firstelementchild
|
||||
fn GetFirstElementChild(&self) -> Option<Root<Element>> {
|
||||
NodeCast::from_ref(self).child_elements().next()
|
||||
|
|
|
@ -8,4 +8,5 @@
|
|||
interface DocumentFragment : Node {
|
||||
};
|
||||
|
||||
DocumentFragment implements NonElementParentNode;
|
||||
DocumentFragment implements ParentNode;
|
||||
|
|
|
@ -123,21 +123,12 @@
|
|||
[DocumentFragment interface: existence and properties of interface object]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: operation getElementById(DOMString)]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: operation query(DOMString)]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: operation queryAll(DOMString)]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: document.createDocumentFragment() must inherit property "getElementById" with the proper type (0)]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: calling getElementById(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[DocumentFragment interface: document.createDocumentFragment() must inherit property "query" with the proper type (7)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue