blob: 2088fe4a8708fb174999fc104d8c9bf196d8eb2c [file]
//, Copyright 2023 The Chromium Authors
//, Use of this source code is governed by a BSD-style license that can be
//, found in the LICENSE file.
#ifndef UI_VIEWS_TEST_MOCK_NATIVE_WIDGET_H_
#define UI_VIEWS_TEST_MOCK_NATIVE_WIDGET_H_
#include <memory>
#include <string>
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "build/build_config.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "ui/base/dragdrop/os_exchange_data.h"
#include "ui/base/mojom/ui_base_types.mojom-shared.h"
#include "ui/base/mojom/window_show_state.mojom-forward.h"
#include "ui/color/color_provider_key.h"
#include "ui/views/widget/native_widget_private.h"
namespace views {
class MockNativeWidget : public internal::NativeWidgetPrivate {
public:
explicit MockNativeWidget(Widget*);
~MockNativeWidget() override;
MOCK_METHOD(void, InitNativeWidget, (Widget::InitParams), (override));
MOCK_METHOD(void, OnWidgetInitDone, (), (override));
MOCK_METHOD(void, ReparentNativeViewImpl, (gfx::NativeView), (override));
MOCK_METHOD(std::unique_ptr<FrameView>, CreateFrameView, (), (override));
MOCK_METHOD(bool, ShouldUseNativeFrame, (), (const override));
MOCK_METHOD(bool, ShouldWindowContentsBeTransparent, (), (const override));
MOCK_METHOD(void, FrameTypeChanged, (), (override));
MOCK_METHOD(Widget*, GetWidget, (), (override));
MOCK_METHOD(const Widget*, GetWidget, (), (const override));
MOCK_METHOD(gfx::NativeView, GetNativeView, (), (const override));
MOCK_METHOD(gfx::NativeWindow, GetNativeWindow, (), (const override));
MOCK_METHOD(Widget*, GetTopLevelWidget, (), (override));
MOCK_METHOD(const ui::Compositor*, GetCompositor, (), (const override));
MOCK_METHOD(const ui::Layer*, GetLayer, (), (const override));
MOCK_METHOD(void, ReorderNativeViews, (), (override));
MOCK_METHOD(void, ViewRemoved, (View * view), (override));
MOCK_METHOD(void, ClientDestroyedWidget, (), (override));
MOCK_METHOD(void,
SetNativeWindowProperty,
(const char* name, void* value),
(override));
MOCK_METHOD(void*,
GetNativeWindowProperty,
(const char* name),
(const override));
MOCK_METHOD(TooltipManager*, GetTooltipManager, (), (const override));
MOCK_METHOD(void, SetCapture, (), (override));
MOCK_METHOD(void, ReleaseCapture, (), (override));
MOCK_METHOD(bool, HasCapture, (), (const override));
MOCK_METHOD(ui::InputMethod*, GetInputMethod, (), (override));
MOCK_METHOD(void, CenterWindow, (const gfx::Size& size), (override));
MOCK_METHOD(void,
GetWindowPlacement,
(gfx::Rect * bounds, ui::mojom::WindowShowState* show_state),
(const override));
MOCK_METHOD(bool, SetWindowTitle, (const std::u16string& title), (override));
MOCK_METHOD(void,
SetWindowIcons,
(const gfx::ImageSkia& window_icon,
const gfx::ImageSkia& app_icon),
(override));
MOCK_METHOD(void,
InitModalType,
(ui::mojom::ModalType modal_type),
(override));
MOCK_METHOD(void, SetBackgroundColor, (SkColor background_color), (override));
MOCK_METHOD(gfx::Rect, GetWindowBoundsInScreen, (), (const override));
MOCK_METHOD(gfx::Rect, GetClientAreaBoundsInScreen, (), (const override));
MOCK_METHOD(gfx::Rect, GetRestoredBounds, (), (const override));
MOCK_METHOD(std::string, GetWorkspace, (), (const override));
MOCK_METHOD(void, SetBounds, (const gfx::Rect& bounds), (override));
MOCK_METHOD(void,
SetBoundsConstrained,
(const gfx::Rect& bounds),
(override));
MOCK_METHOD(void, SetSize, (const gfx::Size& size), (override));
MOCK_METHOD(void, StackAbove, (gfx::NativeView native_view), (override));
MOCK_METHOD(void, StackAtTop, (), (override));
MOCK_METHOD(bool, IsStackedAbove, (gfx::NativeView native_view), (override));
MOCK_METHOD(void,
SetShape,
(std::unique_ptr<Widget::ShapeRects> shape),
(override));
MOCK_METHOD(void, Close, (), (override));
MOCK_METHOD(void, CloseNow, (), (override));
MOCK_METHOD(void,
Show,
(ui::mojom::WindowShowState show_state,
const gfx::Rect& restore_bounds),
(override));
MOCK_METHOD(void, Hide, (), (override));
MOCK_METHOD(bool, IsVisible, (), (const override));
MOCK_METHOD(bool, IsVisibleOnScreen, (), (const override));
MOCK_METHOD(void, Activate, (), (override));
MOCK_METHOD(void, Deactivate, (), (override));
MOCK_METHOD(bool, IsActive, (), (const override));
MOCK_METHOD(void, SetZOrderLevel, (ui::ZOrderLevel order), (override));
MOCK_METHOD(ui::ZOrderLevel, GetZOrderLevel, (), (const override));
#if BUILDFLAG(IS_MAC)
MOCK_METHOD(void, SetActivationIndependence, (bool independence), (override));
#endif
MOCK_METHOD(void,
SetVisibleOnAllWorkspaces,
(bool always_visible),
(override));
MOCK_METHOD(bool, IsVisibleOnAllWorkspaces, (), (const override));
#if BUILDFLAG(IS_MAC)
MOCK_METHOD(void, MoveToActiveFullscreenSpace, (), (override));
#endif // BUILDFLAG(IS_MAC)
MOCK_METHOD(void, Maximize, (), (override));
MOCK_METHOD(void, Minimize, (), (override));
MOCK_METHOD(bool, IsMaximized, (), (const override));
MOCK_METHOD(bool, IsMinimized, (), (const override));
MOCK_METHOD(void, Restore, (), (override));
MOCK_METHOD(void,
SetFullscreen,
(bool fullscreen, int64_t target_display_id),
(override));
MOCK_METHOD(bool, IsFullscreen, (), (const override));
MOCK_METHOD(void,
SetCanAppearInExistingFullscreenSpaces,
(bool can_appear_in_existing_fullscreen_spaces),
(override));
MOCK_METHOD(void, SetOpacity, (float opacity), (override));
MOCK_METHOD(void,
SetAspectRatio,
(const gfx::SizeF& aspect_ratio,
const gfx::Size& excluded_margin),
(override));
MOCK_METHOD(void, FlashFrame, (bool flash), (override));
MOCK_METHOD(void,
RunDragDropLoop,
(std::unique_ptr<ui::OSExchangeData> data,
const gfx::Point& location,
int operation,
ui::mojom::DragEventSource source),
(override));
MOCK_METHOD(void, CancelDragDropLoop, (View * view), (override));
MOCK_METHOD(void, SchedulePaintInRect, (const gfx::Rect& rect), (override));
MOCK_METHOD(void, ScheduleLayout, (), (override));
MOCK_METHOD(void, SetCursor, (const ui::Cursor& cursor), (override));
MOCK_METHOD(void, ShowEmojiPanel, (), (override));
MOCK_METHOD(bool, IsMouseEventsEnabled, (), (const override));
MOCK_METHOD(bool, IsMouseButtonDown, (), (const override));
MOCK_METHOD(void, ClearNativeFocus, (), (override));
MOCK_METHOD(gfx::Rect, GetWorkAreaBoundsInScreen, (), (const override));
MOCK_METHOD(bool, IsMoveLoopSupported, (), (const override));
MOCK_METHOD(Widget::MoveLoopResult,
RunMoveLoop,
(const gfx::Vector2d& drag_offset,
Widget::MoveLoopSource source,
Widget::MoveLoopEscapeBehavior escape_behavior),
(override));
MOCK_METHOD(void, EndMoveLoop, (), (override));
MOCK_METHOD(void,
SetVisibilityChangedAnimationsEnabled,
(bool value),
(override));
MOCK_METHOD(void,
SetVisibilityAnimationDuration,
(const base::TimeDelta& duration),
(override));
MOCK_METHOD(void,
SetVisibilityAnimationTransition,
(Widget::VisibilityTransition transition),
(override));
MOCK_METHOD(ui::GestureRecognizer*, GetGestureRecognizer, (), (override));
MOCK_METHOD(ui::GestureConsumer*, GetGestureConsumer, (), (override));
MOCK_METHOD(void, OnSizeConstraintsChanged, (), (override));
MOCK_METHOD(void, OnNativeViewHierarchyWillChange, (), (override));
MOCK_METHOD(void, OnNativeViewHierarchyChanged, (), (override));
MOCK_METHOD(bool, SetAllowScreenshots, (bool allow), (override));
MOCK_METHOD(bool, AreScreenshotsAllowed, (), (override));
MOCK_METHOD(std::string, GetName, (), (const override));
MOCK_METHOD(bool, IsDesktopNativeWidget, (), (const override));
base::WeakPtr<NativeWidgetPrivate> GetWeakPtr() override;
private:
base::WeakPtr<Widget> widget_;
base::WeakPtrFactory<MockNativeWidget> weak_factory_{this};
};
} // namespace views
#endif // UI_VIEWS_TEST_MOCK_NATIVE_WIDGET_H_