Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / renderer / searchbox / search_bouncer_unittest.cc
1 // 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/searchbox/search_bouncer.h"
6
7 #include <vector>
8
9 #include "base/memory/scoped_ptr.h"
10 #include "chrome/common/render_messages.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "url/gurl.h"
13
14 class SearchBouncerTest : public testing::Test {
15  public:
16   void SetUp() override {
17     bouncer_.reset(new SearchBouncer);
18     std::vector<GURL> search_urls;
19     search_urls.push_back(GURL("http://example.com/search"));
20     search_urls.push_back(GURL("http://example.com/search2"));
21     bouncer_->OnSetSearchURLs(search_urls, GURL("http://example.com/newtab"));
22   }
23
24   scoped_ptr<SearchBouncer> bouncer_;
25 };
26
27 TEST_F(SearchBouncerTest, ShouldFork) {
28   EXPECT_FALSE(bouncer_->ShouldFork(GURL()));
29   EXPECT_FALSE(bouncer_->ShouldFork(GURL("http://notsearch.example.com")));
30   EXPECT_TRUE(bouncer_->ShouldFork(GURL("http://example.com/search?q=foo")));
31   EXPECT_TRUE(bouncer_->ShouldFork(GURL("http://example.com/search2#q=foo")));
32   EXPECT_TRUE(bouncer_->ShouldFork(GURL("http://example.com/newtab")));
33 }
34
35 TEST_F(SearchBouncerTest, IsNewTabPage) {
36   EXPECT_FALSE(bouncer_->IsNewTabPage(GURL("http://example.com/foo")));
37   EXPECT_TRUE(bouncer_->IsNewTabPage(GURL("http://example.com/newtab")));
38 }
39
40 TEST_F(SearchBouncerTest, SetSearchURLs) {
41   std::vector<GURL> search_urls;
42   search_urls.push_back(GURL("http://other.example.com/search"));
43   const GURL new_tab_page_url(GURL("http://other.example.com/newtab"));
44   EXPECT_TRUE(bouncer_->OnControlMessageReceived(
45       ChromeViewMsg_SetSearchURLs(search_urls, new_tab_page_url)));
46   EXPECT_EQ(search_urls, bouncer_->search_urls_);
47   EXPECT_EQ(new_tab_page_url, bouncer_->new_tab_page_url_);
48 }