| // Copyright 2025 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_CLIPBOARD_CLIPBOARD_TEST_UTILS_H_ |
| #define THIRD_PARTY_BLINK_RENDERER_MODULES_CLIPBOARD_CLIPBOARD_TEST_UTILS_H_ |
| |
| #include "base/memory/scoped_refptr.h" |
| #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h" |
| #include "third_party/blink/renderer/core/clipboard/system_clipboard.h" |
| #include "third_party/blink/renderer/core/dom/events/native_event_listener.h" |
| #include "third_party/blink/renderer/core/execution_context/execution_context.h" |
| #include "third_party/blink/renderer/core/frame/local_dom_window.h" |
| #include "third_party/blink/renderer/core/frame/local_frame.h" |
| #include "third_party/blink/renderer/core/page/focus_controller.h" |
| #include "third_party/blink/renderer/core/testing/page_test_base.h" |
| |
| namespace blink { |
| |
| // This is a helper class which provides utility methods |
| // for testing the Async Clipboard API. |
| class ClipboardTestBase : public PageTestBase { |
| public: |
| void SetPageFocus(bool focused) { |
| GetPage().GetFocusController().SetActive(focused); |
| GetPage().GetFocusController().SetFocused(focused); |
| } |
| |
| void SetSecureOrigin(ExecutionContext* executionContext) { |
| KURL page_url("https://example.com"); |
| scoped_refptr<SecurityOrigin> page_origin = |
| SecurityOrigin::Create(page_url); |
| executionContext->GetSecurityContext().SetSecurityOriginForTesting(nullptr); |
| executionContext->GetSecurityContext().SetSecurityOrigin(page_origin); |
| } |
| |
| void WritePlainTextToClipboard(const String& text, V8TestingScope& scope) { |
| scope.GetFrame().GetSystemClipboard()->WritePlainText(text); |
| } |
| }; |
| |
| class EventCountingListener final : public NativeEventListener { |
| public: |
| void Invoke(ExecutionContext*, Event* event) override { count_++; } |
| |
| int Count() const { return count_; } |
| |
| private: |
| int count_ = 0; |
| }; |
| |
| } // namespace blink |
| |
| #endif // THIRD_PARTY_BLINK_RENDERER_MODULES_CLIPBOARD_CLIPBOARD_TEST_UTILS_H_ |