Chromium Code Reviews| Index: content/browser/frame_host/render_frame_host_manager_unittest.cc |
| diff --git a/content/browser/frame_host/render_frame_host_manager_unittest.cc b/content/browser/frame_host/render_frame_host_manager_unittest.cc |
| index b23ecc97c42afdce13cb883c2ecd2120e086a4a8..b756e904d30cc5bfc80fc6ed10fa86fee3848ffb 100644 |
| --- a/content/browser/frame_host/render_frame_host_manager_unittest.cc |
| +++ b/content/browser/frame_host/render_frame_host_manager_unittest.cc |
| @@ -993,6 +993,38 @@ TEST_F(RenderFrameHostManagerTest, WebUIInNewTab) { |
| manager2->DidNavigateFrame(host2); |
| } |
| +// Test that WebUI can be navigated to in single-process mode. |
| +TEST_F(RenderFrameHostManagerTest, |
| + CanNavigateBetweenNormalPagesAndWebUIInSingleProcess) { |
| + const GURL kNormalUrl1("http://chromium.org"); |
| + const GURL kNormalUrl2("http://example.com"); |
| + const GURL kWebUIUrl("chrome://foo"); |
| + |
| + // We both set flag on RenderProcesHost and append the switch due to the fact |
| + // that some code checks the switch directly instead of relying |
| + // on RenderProcessHost |
|
nasko
2014/09/29 22:21:48
sidenote: It is best to have one source of truth i
Krzysztof Olczyk
2014/10/01 10:17:47
Done: https://code.google.com/p/chromium/issues/de
|
| + RenderProcessHost::SetRunRendererInProcess(true); |
| + CommandLine::ForCurrentProcess()->AppendSwitch(switches::kSingleProcess); |
| + set_should_create_webui(true); |
| + |
| + RenderFrameHostManager* manager = |
| + static_cast<TestWebContents*>( |
|
nasko
2014/09/29 22:21:48
nit: this line should be able to fit on the previo
Krzysztof Olczyk
2014/10/01 10:17:47
Done
|
| + web_contents())->GetRenderManagerForTesting(); |
| + |
| + NavigateAndCommit(kNormalUrl1); |
| + EXPECT_EQ(kNormalUrl1, |
| + manager->current_frame_host()->GetSiteInstance()->GetSiteURL()); |
| + EXPECT_FALSE(manager->web_ui()); |
| + NavigateAndCommit(kWebUIUrl); |
| + EXPECT_EQ(kWebUIUrl, |
| + manager->current_frame_host()->GetSiteInstance()->GetSiteURL()); |
| + EXPECT_TRUE(manager->web_ui()); |
| + NavigateAndCommit(kNormalUrl2); |
| + EXPECT_EQ(kNormalUrl2, |
| + manager->current_frame_host()->GetSiteInstance()->GetSiteURL()); |
| + EXPECT_FALSE(manager->web_ui()); |
| +} |
| + |
| // Tests that we don't end up in an inconsistent state if a page does a back and |
| // then reload. http://crbug.com/51680 |
| TEST_F(RenderFrameHostManagerTest, PageDoesBackAndReload) { |