| OLD | NEW |
| (Empty) |
| 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/values.h" | |
| 9 #include "chrome/browser/profiles/profile.h" | |
| 10 #include "chrome/browser/ui/browser.h" | |
| 11 #include "chrome/browser/ui/tabs/tab_strip_model.h" | |
| 12 #include "components/prefs/pref_service.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 | |
| 23 OptionsBrowserTest::OptionsBrowserTest() { | |
| 24 } | |
| 25 | |
| 26 OptionsBrowserTest::~OptionsBrowserTest() { | |
| 27 } | |
| 28 | |
| 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. | |
| 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.AppendString(url.spec()); | |
| 48 } | |
| 49 web_ui()->CallJavascriptFunctionUnsafe( | |
| 50 "OptionsWebUIExtendedTest.verifyHistoryCallback", history); | |
| 51 } | |
| 52 | |
| 53 void OptionsBrowserTest::ClearPref(const char* path) { | |
| 54 browser()->profile()->GetPrefs()->ClearPref(path); | |
| 55 } | |
| 56 | |
| 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 | |
| 68 content::WebUIMessageHandler* OptionsBrowserTest::GetMockMessageHandler() { | |
| 69 return this; | |
| 70 } | |
| OLD | NEW |