- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / history / history_apitest.cc
1 // Copyright (c) 2012 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 "base/base_switches.h"
6 #include "base/command_line.h"
7 #include "base/prefs/pref_service.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/extensions/extension_apitest.h"
10 #include "chrome/browser/history/history_service.h"
11 #include "chrome/browser/history/history_service_factory.h"
12 #include "chrome/browser/history/history_types.h"
13 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/ui/browser.h"
15 #include "chrome/common/pref_names.h"
16 #include "extensions/common/switches.h"
17 #include "net/dns/mock_host_resolver.h"
18 #include "url/gurl.h"
19
20 namespace extensions {
21
22 class HistoryApiTest : public ExtensionApiTest {
23  public:
24   virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
25     ExtensionApiTest::SetUpInProcessBrowserTestFixture();
26
27     host_resolver()->AddRule("www.a.com", "127.0.0.1");
28     host_resolver()->AddRule("www.b.com", "127.0.0.1");
29   }
30
31   virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
32     ExtensionApiTest::SetUpCommandLine(command_line);
33     command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis);
34   }
35 };
36
37 // Full text search indexing sometimes exceeds a timeout. (http://crbug/119505)
38 IN_PROC_BROWSER_TEST_F(HistoryApiTest, DISABLED_MiscSearch) {
39   ASSERT_TRUE(StartEmbeddedTestServer());
40   ASSERT_TRUE(RunExtensionSubtest("history", "misc_search.html")) << message_;
41 }
42
43 // Same could happen here without the FTS (http://crbug/119505)
44 IN_PROC_BROWSER_TEST_F(HistoryApiTest, DISABLED_TimedSearch) {
45   ASSERT_TRUE(StartEmbeddedTestServer());
46   ASSERT_TRUE(RunExtensionSubtest("history", "timed_search.html")) << message_;
47 }
48
49 #if defined(OS_WIN)
50 // Flaky on Windows: crbug.com/88318
51 #define MAYBE_Delete DISABLED_Delete
52 #else
53 #define MAYBE_Delete Delete
54 #endif
55 IN_PROC_BROWSER_TEST_F(HistoryApiTest, MAYBE_Delete) {
56   ASSERT_TRUE(StartEmbeddedTestServer());
57   ASSERT_TRUE(RunExtensionSubtest("history", "delete.html")) << message_;
58 }
59
60 IN_PROC_BROWSER_TEST_F(HistoryApiTest, DeleteProhibited) {
61   browser()->profile()->GetPrefs()->
62       SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
63   ASSERT_TRUE(StartEmbeddedTestServer());
64   ASSERT_TRUE(RunExtensionSubtest("history", "delete_prohibited.html")) <<
65       message_;
66 }
67
68 // See crbug.com/79074
69 IN_PROC_BROWSER_TEST_F(HistoryApiTest, DISABLED_GetVisits) {
70   ASSERT_TRUE(StartEmbeddedTestServer());
71   ASSERT_TRUE(RunExtensionSubtest("history", "get_visits.html")) << message_;
72 }
73
74 #if defined(OS_WIN)
75 // Searching for a URL right after adding it fails on win XP.
76 // Fix this as part of crbug/76170.
77 #define MAYBE_SearchAfterAdd DISABLED_SearchAfterAdd
78 #else
79 #define MAYBE_SearchAfterAdd SearchAfterAdd
80 #endif
81
82 IN_PROC_BROWSER_TEST_F(HistoryApiTest, MAYBE_SearchAfterAdd) {
83   ASSERT_TRUE(StartEmbeddedTestServer());
84   ASSERT_TRUE(RunExtensionSubtest("history", "search_after_add.html"))
85       << message_;
86 }
87
88 IN_PROC_BROWSER_TEST_F(HistoryApiTest, MostVisited) {
89   ASSERT_TRUE(StartEmbeddedTestServer());
90
91   // Add entries to the history database that we can query for (using the
92   // extension history API for this doesn't work as it only adds URLs with
93   // LINK transition type).
94   HistoryService* hs = HistoryServiceFactory::GetForProfile(
95       browser()->profile(),
96       Profile::EXPLICIT_ACCESS);
97
98   GURL google_url = GURL("http://www.google.com");
99   base::Time google_time;
100   ASSERT_TRUE(base::Time::FromString("Tue, 24 Apr 2012, 13:00:00",
101                                      &google_time));
102   hs->AddPage(google_url, google_time, NULL, 0, GURL(), history::RedirectList(),
103               content::PAGE_TRANSITION_TYPED, history::SOURCE_EXTENSION, false);
104   hs->SetPageTitle(google_url, UTF8ToUTF16("Google"));
105
106   GURL picasa_url = GURL("http://www.picasa.com");
107   base::Time picasa_time;
108   ASSERT_TRUE(base::Time::FromString("Tue, 24 Apr 2012, 14:00:00",
109                                      &picasa_time));
110   hs->AddPage(picasa_url, picasa_time, NULL, 0, GURL(), history::RedirectList(),
111               content::PAGE_TRANSITION_TYPED, history::SOURCE_EXTENSION, false);
112   hs->SetPageTitle(picasa_url, UTF8ToUTF16("Picasa"));
113
114   // Run the test.
115   ASSERT_TRUE(RunExtensionSubtest("history", "most_visited.html"))
116     << message_;
117 }
118
119 }  // namespace extensions