blob: 38a71d7a2a90e1ffff84b7fd9e9ad7be37baa289 [file] [log] [blame]
[email protected]2309e912013-10-01 01:33:301// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/renderer/chrome_content_renderer_client.h"
6
7#include <vector>
8
9#include "base/command_line.h"
10#include "chrome/common/chrome_switches.h"
11#include "chrome/common/render_messages.h"
12#include "chrome/test/base/chrome_render_view_test.h"
13#include "url/gurl.h"
14
[email protected]2309e912013-10-01 01:33:3015typedef ChromeRenderViewTest InstantProcessNavigationTest;
16
17// Tests that renderer-initiated navigations from an Instant render process get
18// bounced back to the browser to be rebucketed into a non-Instant renderer if
19// necessary.
20TEST_F(InstantProcessNavigationTest, ForkForNavigationsFromInstantProcess) {
21 CommandLine::ForCurrentProcess()->AppendSwitch(switches::kInstantProcess);
22 bool unused;
23 EXPECT_TRUE(chrome_content_renderer_client_.ShouldFork(
24 GetMainFrame(), GURL("http://foo"), "GET", false, false, &unused));
25}
26
27// Tests that renderer-initiated navigations from a non-Instant render process
28// to potentially Instant URLs get bounced back to the browser to be rebucketed
29// into an Instant renderer if necessary.
30TEST_F(InstantProcessNavigationTest, ForkForNavigationsToSearchURLs) {
31 chrome_content_renderer_client_.RenderThreadStarted();
32 std::vector<GURL> search_urls;
33 search_urls.push_back(GURL("http://example.com/search"));
34 chrome_render_thread_->Send(new ChromeViewMsg_SetSearchURLs(
35 search_urls, GURL("http://example.com/newtab")));
36 bool unused;
37 EXPECT_TRUE(chrome_content_renderer_client_.ShouldFork(
38 GetMainFrame(), GURL("http://example.com/newtab"), "GET", false, false,
39 &unused));
40 EXPECT_TRUE(chrome_content_renderer_client_.ShouldFork(
41 GetMainFrame(), GURL("http://example.com/search?q=foo"), "GET", false,
42 false, &unused));
43 EXPECT_FALSE(chrome_content_renderer_client_.ShouldFork(
44 GetMainFrame(), GURL("http://example.com/"), "GET", false, false,
45 &unused));
46}