• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/browser/ui/webui/options/options_browsertest.h"
6 
7 #include "base/bind.h"
8 #include "base/prefs/pref_service.h"
9 #include "base/values.h"
10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/ui/browser.h"
12 #include "chrome/browser/ui/tabs/tab_strip_model.h"
13 #include "content/public/browser/navigation_controller.h"
14 #include "content/public/browser/navigation_entry.h"
15 #include "content/public/browser/web_contents.h"
16 #include "content/public/browser/web_ui.h"
17 #include "url/gurl.h"
18 
19 using content::NavigationController;
20 using content::NavigationEntry;
21 using content::WebUIMessageHandler;
22 
OptionsBrowserTest()23 OptionsBrowserTest::OptionsBrowserTest() {
24 }
25 
~OptionsBrowserTest()26 OptionsBrowserTest::~OptionsBrowserTest() {
27 }
28 
RegisterMessages()29 void OptionsBrowserTest::RegisterMessages() {
30   web_ui()->RegisterMessageCallback(
31       "optionsTestReportHistory", base::Bind(&OptionsBrowserTest::ReportHistory,
32                                              base::Unretained(this)));
33 
34   web_ui()->RegisterMessageCallback(
35       "optionsTestSetPref", base::Bind(&OptionsBrowserTest::HandleSetPref,
36                                        base::Unretained(this)));
37 }
38 
39 // Includes the current entry.
ReportHistory(const base::ListValue * list_value)40 void OptionsBrowserTest::ReportHistory(const base::ListValue* list_value) {
41   const NavigationController& controller =
42       browser()->tab_strip_model()->GetActiveWebContents()->GetController();
43   base::ListValue history;
44   const int current = controller.GetCurrentEntryIndex();
45   for (int i = 0; i <= current; ++i) {
46     GURL url = controller.GetEntryAtIndex(i)->GetVirtualURL();
47     history.Append(new base::StringValue(url.spec()));
48   }
49   web_ui()->CallJavascriptFunction(
50       "OptionsWebUIExtendedTest.verifyHistoryCallback", history);
51 }
52 
ClearPref(const char * path)53 void OptionsBrowserTest::ClearPref(const char* path) {
54   browser()->profile()->GetPrefs()->ClearPref(path);
55 }
56 
HandleSetPref(const base::ListValue * args)57 void OptionsBrowserTest::HandleSetPref(const base::ListValue* args) {
58   ASSERT_EQ(2u, args->GetSize());
59 
60   std::string pref_name;
61   ASSERT_TRUE(args->GetString(0, &pref_name));
62   const base::Value* pref_value;
63   ASSERT_TRUE(args->Get(1, &pref_value));
64 
65   browser()->profile()->GetPrefs()->Set(pref_name.c_str(), *pref_value);
66 }
67 
GetMockMessageHandler()68 content::WebUIMessageHandler* OptionsBrowserTest::GetMockMessageHandler() {
69   return this;
70 }
71