<script src="../../../resources/js-test-pre.js"></script>
<script src="../../../../Source/WebCore/Modules/modern-media-controls/controls/scheduler.js" type="text/javascript"></script>
<script src="../../../../Source/WebCore/Modules/modern-media-controls/controls/layout-node.js" type="text/javascript"></script>
<script type="text/javascript">

description("Testing the <code>LayoutNode.parentOfType</code> method.");

class CustomNode extends LayoutNode {}
class OtherCustomNode extends LayoutNode {}

const rootNode = new CustomNode;
const childNode = rootNode.addChild(new LayoutNode).addChild(new LayoutNode);

shouldBe("childNode.parentOfType(CustomNode)", "rootNode");
shouldBeNull("childNode.parentOfType(OtherCustomNode)");
debug("");

</script>
<script src="../../../resources/js-test-post.js"></script>
