Index: third_party/WebKit/Source/core/dom/custom/CustomElementTestHelpers.h |
diff --git a/third_party/WebKit/Source/core/dom/custom/CustomElementTestHelpers.h b/third_party/WebKit/Source/core/dom/custom/CustomElementTestHelpers.h |
index da78263a801fad5e631409d55a1922574f4366bb..813413d6f3c6eaec2c84ba4e1bafba013d3e57a1 100644 |
--- a/third_party/WebKit/Source/core/dom/custom/CustomElementTestHelpers.h |
+++ b/third_party/WebKit/Source/core/dom/custom/CustomElementTestHelpers.h |
@@ -8,7 +8,11 @@ |
#include "bindings/core/v8/ExceptionState.h" |
#include "core/dom/Document.h" |
#include "core/dom/Element.h" |
+#include "core/dom/ElementDefinitionOptions.h" |
#include "core/dom/QualifiedName.h" |
+#include "core/dom/custom/CEReactionsScope.h" |
+#include "core/dom/custom/CustomElementDefinition.h" |
+#include "core/dom/custom/CustomElementDefinitionBuilder.h" |
#include "core/html/HTMLDocument.h" |
#include "platform/heap/Handle.h" |
#include "wtf/text/AtomicString.h" |
@@ -18,6 +22,81 @@ |
namespace blink { |
+class CustomElementDescriptor; |
+ |
+class TestCustomElementDefinitionBuilder |
+ : public CustomElementDefinitionBuilder { |
+ STACK_ALLOCATED(); |
+ WTF_MAKE_NONCOPYABLE(TestCustomElementDefinitionBuilder); |
+ |
+ public: |
+ TestCustomElementDefinitionBuilder() {} |
+ bool checkConstructorIntrinsics() override { return true; } |
+ bool checkConstructorNotRegistered() override { return true; } |
+ bool checkPrototype() override { return true; } |
+ bool rememberOriginalProperties() override { return true; } |
+ CustomElementDefinition* build(const CustomElementDescriptor&) override; |
+}; |
+ |
+class TestCustomElementDefinition : public CustomElementDefinition { |
+ WTF_MAKE_NONCOPYABLE(TestCustomElementDefinition); |
+ |
+ public: |
+ TestCustomElementDefinition(const CustomElementDescriptor& descriptor) |
+ : CustomElementDefinition(descriptor) {} |
+ |
+ TestCustomElementDefinition(const CustomElementDescriptor& descriptor, |
+ const HashSet<AtomicString>& observedAttributes) |
+ : CustomElementDefinition(descriptor, observedAttributes) {} |
+ |
+ ~TestCustomElementDefinition() override = default; |
+ |
+ ScriptValue getConstructorForScript() override { return ScriptValue(); } |
+ |
+ bool runConstructor(Element* element) override { |
+ if (constructionStack().isEmpty() || constructionStack().last() != element) |
+ return false; |
+ constructionStack().last().clear(); |
+ return true; |
+ } |
+ |
+ HTMLElement* createElementSync(Document& document, |
+ const QualifiedName&) override { |
+ return createElementForConstructor(document); |
+ } |
+ |
+ HTMLElement* createElementSync(Document& document, |
+ const QualifiedName&, |
+ ExceptionState&) override { |
+ return createElementForConstructor(document); |
+ } |
+ |
+ bool hasConnectedCallback() const override { return false; } |
+ bool hasDisconnectedCallback() const override { return false; } |
+ bool hasAdoptedCallback() const override { return false; } |
+ |
+ void runConnectedCallback(Element*) override { |
+ NOTREACHED() << "definition does not have connected callback"; |
+ } |
+ |
+ void runDisconnectedCallback(Element*) override { |
+ NOTREACHED() << "definition does not have disconnected callback"; |
+ } |
+ |
+ void runAdoptedCallback(Element*, |
+ Document* oldOwner, |
+ Document* newOwner) override { |
+ NOTREACHED() << "definition does not have adopted callback"; |
+ } |
+ |
+ void runAttributeChangedCallback(Element*, |
+ const QualifiedName&, |
+ const AtomicString& oldValue, |
+ const AtomicString& newValue) override { |
+ NOTREACHED() << "definition does not have attribute changed callback"; |
+ } |
+}; |
+ |
class CreateElement { |
STACK_ALLOCATED() |
public: |