blob: 52ae2f2c9b4ec6dad1f199ed18ea9eca2acc7650 [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_PUBLIC_TEST_MOCK_WEB_CONTENTS_OBSERVER_H_
#define CONTENT_PUBLIC_TEST_MOCK_WEB_CONTENTS_OBSERVER_H_
#include "content/public/browser/ax_event_notification_details.h"
#include "content/public/browser/web_contents_observer.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace content {
// A mock WebContentsObserver with which tests can set expectations for how
// observer methods are called in response to actions taken in the test.
//
// For example:
// GURL url = ...
// testing::NiceMock<MockWebContentsObserver> observer(web_contents());
// EXPECT_CALL(observer,
// DidStartNavigation(
// testing::Truly([&](NavigationHandle* navigation_handle) {
// return navigation_handle->GetURL() == url;
// })));
// EXPECT_TRUE(NavigateToURL(shell(), url));
//
class MockWebContentsObserver : public WebContentsObserver {
public:
explicit MockWebContentsObserver(WebContents* web_contents);
~MockWebContentsObserver() override;
MOCK_METHOD(void,
RenderFrameCreated,
(RenderFrameHost* render_frame_host),
(override));
MOCK_METHOD(void,
RenderFrameDeleted,
(RenderFrameHost* render_frame_host),
(override));
MOCK_METHOD(void, PrimaryPageChanged, (Page & page), (override));
MOCK_METHOD(void,
RenderFrameHostChanged,
(RenderFrameHost* old_host, RenderFrameHost* new_host),
(override));
MOCK_METHOD(void, FrameDeleted, (int frame_tree_node_id), (override));
MOCK_METHOD(void,
RenderFrameHostStateChanged,
(RenderFrameHost* render_frame_host,
RenderFrameHost::LifecycleState old_state,
RenderFrameHost::LifecycleState new_state),
(override));
MOCK_METHOD(void, CaptureTargetChanged, (), (override));
MOCK_METHOD(void, RenderViewReady, (), (override));
MOCK_METHOD(void,
RenderViewDeleted,
(RenderViewHost* render_view_host),
(override));
MOCK_METHOD(void,
PrimaryMainFrameRenderProcessGone,
(base::TerminationStatus status),
(override));
MOCK_METHOD(void,
RenderViewHostChanged,
(RenderViewHost* old_host, RenderViewHost* new_host),
(override));
MOCK_METHOD(void,
OnRendererUnresponsive,
(RenderProcessHost* render_process_host),
(override));
MOCK_METHOD(void,
OnRendererResponsive,
(RenderProcessHost* render_process_host),
(override));
MOCK_METHOD(void,
DidStartNavigation,
(NavigationHandle* navigation_handle),
(override));
MOCK_METHOD(void,
DidRedirectNavigation,
(NavigationHandle* navigation_handle),
(override));
MOCK_METHOD(void,
ReadyToCommitNavigation,
(NavigationHandle* navigation_handle),
(override));
MOCK_METHOD(void,
DidFinishNavigation,
(NavigationHandle* navigation_handle),
(override));
MOCK_METHOD(void,
DidActivatePortal,
(WebContents* predecessor_web_contents,
base::TimeTicks activation_time),
(override));
MOCK_METHOD(void, DidStartLoading, (), (override));
MOCK_METHOD(void, DidStopLoading, (), (override));
MOCK_METHOD(void, LoadProgressChanged, (double progress), (override));
MOCK_METHOD(void, PrimaryMainDocumentElementAvailable, (), (override));
MOCK_METHOD(void, DocumentOnLoadCompletedInPrimaryMainFrame, (), (override));
MOCK_METHOD(void,
DOMContentLoaded,
(RenderFrameHost* render_frame_host),
(override));
MOCK_METHOD(void,
DidFinishLoad,
(RenderFrameHost* render_frame_host, const GURL& validated_url),
(override));
MOCK_METHOD(void,
DidFailLoad,
(RenderFrameHost* render_frame_host,
const GURL& validated_url,
int error_code),
(override));
MOCK_METHOD(void, DidChangeVisibleSecurityState, (), (override));
MOCK_METHOD(void,
DidLoadResourceFromMemoryCache,
(RenderFrameHost* render_frame_host,
const GURL& url,
const std::string& mime_type,
network::mojom::RequestDestination request_destination),
(override));
MOCK_METHOD(void,
ResourceLoadComplete,
(RenderFrameHost* render_frame_host,
const GlobalRequestID& request_id,
const blink::mojom::ResourceLoadInfo& resource_load_info),
(override));
MOCK_METHOD(void,
OnCookiesAccessed,
(RenderFrameHost* render_frame_host,
const CookieAccessDetails& details),
(override));
MOCK_METHOD(void,
OnCookiesAccessed,
(NavigationHandle* navigation_handle,
const CookieAccessDetails& details),
(override));
MOCK_METHOD(void,
NavigationEntryCommitted,
(const LoadCommittedDetails& load_details),
(override));
MOCK_METHOD(void,
NavigationListPruned,
(const PrunedDetails& pruned_details),
(override));
MOCK_METHOD(void, NavigationEntriesDeleted, (), (override));
MOCK_METHOD(void,
NavigationEntryChanged,
(const EntryChangedDetails& change_details),
(override));
MOCK_METHOD(void,
DidOpenRequestedURL,
(WebContents* new_contents,
RenderFrameHost* source_render_frame_host,
const GURL& url,
const Referrer& referrer,
WindowOpenDisposition disposition,
ui::PageTransition transition,
bool started_from_context_menu,
bool renderer_initiated),
(override));
MOCK_METHOD(void, DidFirstVisuallyNonEmptyPaint, (), (override));
MOCK_METHOD(void, NavigationStopped, (), (override));
MOCK_METHOD(void,
DidGetUserInteraction,
(const blink::WebInputEvent& event),
(override));
MOCK_METHOD(void, DidGetIgnoredUIEvent, (), (override));
MOCK_METHOD(void, OnVisibilityChanged, (Visibility visibility), (override));
MOCK_METHOD(void,
PrimaryMainFrameWasResized,
(bool width_changed),
(override));
MOCK_METHOD(void,
FrameNameChanged,
(RenderFrameHost* render_frame_host, const std::string& name),
(override));
MOCK_METHOD(void,
FrameReceivedUserActivation,
(RenderFrameHost* render_frame_host),
(override));
MOCK_METHOD(void,
FrameDisplayStateChanged,
(RenderFrameHost* render_frame_host, bool is_display_none),
(override));
MOCK_METHOD(void,
FrameSizeChanged,
(RenderFrameHost* render_frame_host,
const gfx::Size& frame_size),
(override));
MOCK_METHOD(void, TitleWasSet, (NavigationEntry * entry), (override));
MOCK_METHOD(void, PepperInstanceCreated, (), (override));
MOCK_METHOD(void, PepperInstanceDeleted, (), (override));
MOCK_METHOD(void,
ViewportFitChanged,
(blink::mojom::ViewportFit value),
(override));
MOCK_METHOD(void,
PluginCrashed,
(const base::FilePath& plugin_path, base::ProcessId plugin_pid),
(override));
MOCK_METHOD(void,
PluginHungStatusChanged,
(int plugin_child_id,
const base::FilePath& plugin_path,
bool is_hung),
(override));
MOCK_METHOD(void,
InnerWebContentsCreated,
(WebContents* inner_web_contents),
(override));
MOCK_METHOD(void,
InnerWebContentsAttached,
(WebContents* inner_web_contents,
RenderFrameHost* render_frame_host,
bool is_full_page),
(override));
MOCK_METHOD(void,
InnerWebContentsDetached,
(WebContents* inner_web_contents),
(override));
MOCK_METHOD(void,
DidCloneToNewWebContents,
(WebContents* old_web_contents, WebContents* new_web_contents),
(override));
MOCK_METHOD(void, WebContentsDestroyed, (), (override));
MOCK_METHOD(void,
UserAgentOverrideSet,
(const blink::UserAgentOverride& ua_override),
(override));
MOCK_METHOD(void,
DidUpdateFaviconURL,
(RenderFrameHost* render_frame_host,
const std::vector<blink::mojom::FaviconURLPtr>& candidates),
(override));
MOCK_METHOD(void, OnAudioStateChanged, (bool audible), (override));
MOCK_METHOD(void,
OnFrameAudioStateChanged,
(RenderFrameHost* rfh, bool audible),
(override));
MOCK_METHOD(void,
OnIsConnectedToBluetoothDeviceChanged,
(bool is_connected_to_bluetooth_device),
(override));
MOCK_METHOD(void, DidUpdateAudioMutingState, (bool muted), (override));
MOCK_METHOD(void,
DidToggleFullscreenModeForTab,
(bool entered_fullscreen, bool will_cause_resize),
(override));
MOCK_METHOD(void, DidAcquireFullscreen, (RenderFrameHost* rfh), (override));
MOCK_METHOD(void,
DidChangeVerticalScrollDirection,
(viz::VerticalScrollDirection scroll_direction),
(override));
MOCK_METHOD(void, BeforeFormRepostWarningShow, (), (override));
MOCK_METHOD(void,
BeforeUnloadFired,
(bool proceed, const base::TimeTicks& proceed_time),
(override));
MOCK_METHOD(void, BeforeUnloadDialogCancelled, (), (override));
MOCK_METHOD(void, AXTreeIDForMainFrameHasChanged, (), (override));
MOCK_METHOD(void,
AccessibilityEventReceived,
(const AXEventNotificationDetails& details),
(override));
MOCK_METHOD(void,
AccessibilityLocationChangesReceived,
(const std::vector<AXLocationChangeNotificationDetails>& details),
(override));
MOCK_METHOD(void, DidChangeThemeColor, (), (override));
MOCK_METHOD(void, OnBackgroundColorChanged, (), (override));
MOCK_METHOD(void,
OnDidAddMessageToConsole,
(RenderFrameHost * source_frame,
blink::mojom::ConsoleMessageLevel log_level,
const std::u16string& message,
int32_t line_no,
const std::u16string& source_id,
const absl::optional<std::u16string>& untrusted_stack_trace),
(override));
MOCK_METHOD(void,
MediaStartedPlaying,
(const MediaPlayerInfo& video_type, const MediaPlayerId& id),
(override));
MOCK_METHOD(void,
MediaStoppedPlaying,
(const MediaPlayerInfo& video_type,
const MediaPlayerId& id,
WebContentsObserver::MediaStoppedReason reason),
(override));
MOCK_METHOD(void,
MediaResized,
(const gfx::Size& size, const MediaPlayerId& id),
(override));
MOCK_METHOD(void,
MediaEffectivelyFullscreenChanged,
(bool is_fullscreen),
(override));
MOCK_METHOD(void,
MediaPictureInPictureChanged,
(bool is_picture_in_picture),
(override));
MOCK_METHOD(void,
MediaMutedStatusChanged,
(const MediaPlayerId& id, bool muted),
(override));
MOCK_METHOD(void, MediaDestroyed, (const MediaPlayerId& id), (override));
MOCK_METHOD(void,
OnPageScaleFactorChanged,
(float page_scale_factor),
(override));
MOCK_METHOD(void, OnPaste, (), (override));
MOCK_METHOD(void,
OnWebContentsFocused,
(RenderWidgetHost* render_widget_host),
(override));
MOCK_METHOD(void,
OnWebContentsLostFocus,
(RenderWidgetHost* render_widget_host),
(override));
MOCK_METHOD(void,
OnFocusChangedInPage,
(FocusedNodeDetails* details),
(override));
MOCK_METHOD(void,
DidUpdateWebManifestURL,
(RenderFrameHost * target_frame, const GURL& manifest_url),
(override));
MOCK_METHOD(void,
AudioContextPlaybackStarted,
(const AudioContextId& audio_context_id),
(override));
MOCK_METHOD(void,
AudioContextPlaybackStopped,
(const AudioContextId& audio_context_id),
(override));
MOCK_METHOD(void,
OnServiceWorkerAccessed,
(RenderFrameHost* render_frame_host,
const GURL& scope,
AllowServiceWorkerResult allowed),
(override));
MOCK_METHOD(void,
OnServiceWorkerAccessed,
(NavigationHandle* navigation_handle,
const GURL& scope,
AllowServiceWorkerResult allowed),
(override));
};
} // namespace content
#endif // CONTENT_PUBLIC_TEST_MOCK_WEB_CONTENTS_OBSERVER_H_