Files
ladybird/Tests/LibWeb/test-web/Application.h
Timothy Flynn ca082d6d73 LibWebView+UI: Move clipboard handling from the WebView to the App
Clipboard handling largely has nothing to do with the individual web
views. Rather, we interact with the system clipboard at the application
level. So let's move these implementations to the Application.
2025-09-19 06:38:52 -04:00

58 lines
1.6 KiB
C++

/*
* Copyright (c) 2024-2025, Tim Flynn <trflynn89@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/ByteString.h>
#include <AK/Error.h>
#include <AK/Vector.h>
#include <LibWebView/Application.h>
namespace TestWeb {
class Application : public WebView::Application {
WEB_VIEW_APPLICATION(Application)
public:
explicit Application(Optional<ByteString> ladybird_binary_path);
~Application();
virtual void create_platform_arguments(Core::ArgsParser&) override;
virtual void create_platform_options(WebView::BrowserOptions&, WebView::WebContentOptions&) override;
ErrorOr<void> launch_test_fixtures();
static constexpr u8 VERBOSITY_LEVEL_LOG_TEST_DURATION = 1;
static constexpr u8 VERBOSITY_LEVEL_LOG_SLOWEST_TESTS = 2;
static constexpr u8 VERBOSITY_LEVEL_LOG_SKIPPED_TESTS = 3;
ByteString test_root_path;
size_t test_concurrency { 1 };
Vector<ByteString> test_globs;
ByteString python_executable_path;
bool dump_failed_ref_tests { false };
bool dump_gc_graph { false };
bool test_dry_run { false };
bool rebaseline { false };
bool shuffle { false };
int per_test_timeout_in_seconds { 30 };
u8 verbosity { 0 };
private:
virtual Vector<Web::Clipboard::SystemClipboardRepresentation> clipboard_entries() const override;
virtual void insert_clipboard_entry(Web::Clipboard::SystemClipboardRepresentation) override;
// FIXME: We should implement UI-agnostic platform APIs to interact with the system clipboard.
Optional<Web::Clipboard::SystemClipboardRepresentation> m_clipboard;
};
}