Index: content/renderer/render_view_browsertest.cc |
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc |
index 6f003099c57b5bf0105492bbb82b08a84428bf63..8d1e706f6205c6f1868679ae91a842f866b2f4b1 100644 |
--- a/content/renderer/render_view_browsertest.cc |
+++ b/content/renderer/render_view_browsertest.cc |
@@ -1859,4 +1859,30 @@ TEST_F(RenderViewImplTest, OnExtendSelectionAndDelete) { |
EXPECT_EQ(2, info.selectionEnd); |
} |
+// Test that the navigating specific frames works correctly. |
+TEST_F(RenderViewImplTest, NavigateFrame) { |
+ // Load page A. |
+ LoadHTML("hello <iframe srcdoc='fail' name='frame'></iframe>"); |
+ |
+ // Navigate the frame only. |
+ ViewMsg_Navigate_Params nav_params; |
+ nav_params.url = GURL("data:text/html,world"); |
+ nav_params.navigation_type = ViewMsg_Navigate_Type::NORMAL; |
+ nav_params.transition = PAGE_TRANSITION_TYPED; |
+ nav_params.current_history_list_length = 1; |
+ nav_params.current_history_list_offset = 0; |
+ nav_params.pending_history_list_offset = 1; |
+ nav_params.page_id = -1; |
+ nav_params.frame_to_navigate = "frame"; |
+ view()->OnNavigate(nav_params); |
+ ProcessPendingMessages(); |
+ |
+ // Copy the document content to std::wstring and compare with the |
+ // expected result. |
+ const int kMaxOutputCharacters = 256; |
+ std::wstring output = UTF16ToWideHack( |
+ GetMainFrame()->contentAsText(kMaxOutputCharacters)); |
+ EXPECT_EQ(output, L"hello \n\nworld"); |
+} |
+ |
} // namespace content |