Chromium Code Reviews| Index: content/renderer/render_view_browsertest.cc |
| diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc |
| index cea7e5ba7d0f063a37596bffef3a4573edc2098d..938e73ee8260f8607f8a89810485fd82ca239e45 100644 |
| --- a/content/renderer/render_view_browsertest.cc |
| +++ b/content/renderer/render_view_browsertest.cc |
| @@ -2310,6 +2310,36 @@ TEST_F(RenderViewImplTest, NavigationStartOverride) { |
| EXPECT_LE(late_nav_reported_start, after_navigation); |
| } |
| +TEST_F(RenderViewImplTest, BrowserNavigationStartSuccessfullyTransmitted) { |
|
clamy
2015/11/04 13:53:40
Should you also test for a renderer initiated navi
Charlie Harrison
2015/11/04 14:24:52
Yeah probably. Would you like me to write a bunch
clamy
2015/11/04 15:59:09
I think smaller independant test cases are easier
|
| + CommonNavigationParams common_params; |
| + StartNavigationParams start_params; |
| + RequestNavigationParams request_params; |
|
clamy
2015/11/04 13:53:39
No need to declare this, just use the default cons
Charlie Harrison
2015/11/04 14:24:52
Acknowledged.
|
| + common_params.url = GURL("data:text/html,<div>Page</div>"); |
| + common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| + common_params.transition = ui::PAGE_TRANSITION_TYPED; |
| + start_params.is_post = true; |
| + |
| + // Data munching to simulate what we do in blink: convert navigation_start to |
| + // a double for DocumentLoadTiming, then back to a TimeTicks to send back to |
| + // the browser in FrameHostMsg_DidStartProvisionalLoadForFrame. |
| + double navigation_start_seconds = |
| + (common_params.navigation_start - base::TimeTicks()).InSecondsF(); |
| + base::TimeTicks adjusted_navigation_start = |
| + base::TimeTicks::FromInternalValue(navigation_start_seconds * |
| + base::Time::kMicrosecondsPerSecond); |
| + |
| + frame()->Navigate(common_params, start_params, request_params); |
| + ProcessPendingMessages(); |
| + |
| + const IPC::Message* frame_navigate_msg = |
| + render_thread_->sink().GetUniqueMessageMatching( |
| + FrameHostMsg_DidStartProvisionalLoadForFrame::ID); |
| + FrameHostMsg_DidStartProvisionalLoadForFrame::Param host_nav_params; |
| + FrameHostMsg_DidStartProvisionalLoadForFrame::Read(frame_navigate_msg, |
| + &host_nav_params); |
| + EXPECT_EQ(base::get<1>(host_nav_params), adjusted_navigation_start); |
| +} |
| + |
| TEST_F(RenderViewImplTest, PreferredSizeZoomed) { |
| LoadHTML("<body style='margin:0;'><div style='display:inline-block; " |
| "width:400px; height:400px;'/></body>"); |