Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Unified Diff: components/dom_distiller/content/browser/web_contents_main_frame_observer_unittest.cc

Issue 2663333004: Convert dom_distiller::WebContentsMainFrameObserver to use the new navigation callbacks. (Closed)
Patch Set: undo testing change Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/dom_distiller/content/browser/web_contents_main_frame_observer_unittest.cc
diff --git a/components/dom_distiller/content/browser/web_contents_main_frame_observer_unittest.cc b/components/dom_distiller/content/browser/web_contents_main_frame_observer_unittest.cc
index 3c118dac4e8924b59d3ab3bd7d30fbaab994edac..9b4c8d639dd289ee6f41140897fb72cf1b2dc025 100644
--- a/components/dom_distiller/content/browser/web_contents_main_frame_observer_unittest.cc
+++ b/components/dom_distiller/content/browser/web_contents_main_frame_observer_unittest.cc
@@ -4,7 +4,7 @@
#include "components/dom_distiller/content/browser/web_contents_main_frame_observer.h"
-#include "content/public/browser/navigation_details.h"
+#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_observer.h"
@@ -15,8 +15,12 @@ namespace dom_distiller {
class WebContentsMainFrameObserverTest
: public content::RenderViewHostTestHarness {
+ public:
void SetUp() override {
content::RenderViewHostTestHarness::SetUp();
+ // This needed to keep the WebContentsObserverSanityChecker checks happy for
+ // when AppendChild is called.
+ NavigateAndCommit(GURL("about:blank"));
dom_distiller::WebContentsMainFrameObserver::CreateForWebContents(
web_contents());
main_frame_observer_ =
@@ -24,16 +28,24 @@ class WebContentsMainFrameObserverTest
ASSERT_FALSE(main_frame_observer_->is_document_loaded_in_main_frame());
}
+ void Navigate(bool main_frame, bool in_page) {
+ content::RenderFrameHost* rfh = main_rfh();
+ content::RenderFrameHostTester* rfh_tester =
+ content::RenderFrameHostTester::For(rfh);
+ if (!main_frame)
+ rfh = rfh_tester->AppendChild("subframe");
+ std::unique_ptr<content::NavigationHandle> navigation_handle =
+ content::NavigationHandle::CreateNavigationHandleForTesting(
+ GURL(), rfh, true, net::OK, in_page);
+ // Destructor calls DidFinishNavigation.
+ }
+
protected:
WebContentsMainFrameObserver* main_frame_observer_; // weak
};
TEST_F(WebContentsMainFrameObserverTest, ListensForMainFrameNavigation) {
- content::LoadCommittedDetails details = content::LoadCommittedDetails();
- details.is_main_frame = true;
- details.is_in_page = false;
- content::FrameNavigateParams params = content::FrameNavigateParams();
- main_frame_observer_->DidNavigateMainFrame(details, params);
+ Navigate(true, false);
ASSERT_TRUE(main_frame_observer_->is_initialized());
ASSERT_FALSE(main_frame_observer_->is_document_loaded_in_main_frame());
@@ -42,32 +54,20 @@ TEST_F(WebContentsMainFrameObserverTest, ListensForMainFrameNavigation) {
}
TEST_F(WebContentsMainFrameObserverTest, IgnoresChildFrameNavigation) {
- content::LoadCommittedDetails details = content::LoadCommittedDetails();
- details.is_main_frame = false;
- details.is_in_page = false;
- content::FrameNavigateParams params = content::FrameNavigateParams();
- main_frame_observer_->DidNavigateMainFrame(details, params);
+ Navigate(false, false);
ASSERT_FALSE(main_frame_observer_->is_initialized());
ASSERT_FALSE(main_frame_observer_->is_document_loaded_in_main_frame());
}
TEST_F(WebContentsMainFrameObserverTest, IgnoresInPageNavigation) {
- content::LoadCommittedDetails details = content::LoadCommittedDetails();
- details.is_main_frame = true;
- details.is_in_page = true;
- content::FrameNavigateParams params = content::FrameNavigateParams();
- main_frame_observer_->DidNavigateMainFrame(details, params);
+ Navigate(true, true);
ASSERT_FALSE(main_frame_observer_->is_initialized());
ASSERT_FALSE(main_frame_observer_->is_document_loaded_in_main_frame());
}
TEST_F(WebContentsMainFrameObserverTest,
IgnoresInPageNavigationUnlessMainFrameLoads) {
- content::LoadCommittedDetails details = content::LoadCommittedDetails();
- details.is_main_frame = true;
- details.is_in_page = true;
- content::FrameNavigateParams params = content::FrameNavigateParams();
- main_frame_observer_->DidNavigateMainFrame(details, params);
+ Navigate(true, true);
ASSERT_FALSE(main_frame_observer_->is_initialized());
ASSERT_FALSE(main_frame_observer_->is_document_loaded_in_main_frame());
@@ -78,32 +78,23 @@ TEST_F(WebContentsMainFrameObserverTest,
}
TEST_F(WebContentsMainFrameObserverTest, ResetOnPageNavigation) {
- content::LoadCommittedDetails details = content::LoadCommittedDetails();
- details.is_main_frame = true;
- details.is_in_page = false;
- content::FrameNavigateParams params = content::FrameNavigateParams();
- main_frame_observer_->DidNavigateMainFrame(details, params);
+ Navigate(true, false);
main_frame_observer_->DocumentLoadedInFrame(main_rfh());
ASSERT_TRUE(main_frame_observer_->is_document_loaded_in_main_frame());
// Another navigation should result in waiting for a page load.
- main_frame_observer_->DidNavigateMainFrame(details, params);
+ Navigate(true, false);
ASSERT_TRUE(main_frame_observer_->is_initialized());
ASSERT_FALSE(main_frame_observer_->is_document_loaded_in_main_frame());
}
TEST_F(WebContentsMainFrameObserverTest, DoesNotResetOnInPageNavigation) {
- content::LoadCommittedDetails details = content::LoadCommittedDetails();
- details.is_main_frame = true;
- details.is_in_page = false;
- content::FrameNavigateParams params = content::FrameNavigateParams();
- main_frame_observer_->DidNavigateMainFrame(details, params);
+ Navigate(true, false);
main_frame_observer_->DocumentLoadedInFrame(main_rfh());
ASSERT_TRUE(main_frame_observer_->is_document_loaded_in_main_frame());
// Navigating withing the page should not result in waiting for a page load.
- details.is_in_page = true;
- main_frame_observer_->DidNavigateMainFrame(details, params);
+ Navigate(true, true);
ASSERT_TRUE(main_frame_observer_->is_initialized());
ASSERT_TRUE(main_frame_observer_->is_document_loaded_in_main_frame());
}

Powered by Google App Engine
This is Rietveld 408576698