| //, 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_ |