| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/browser.h" | 5 #include "chrome/browser/browser.h" |
| 6 #include "chrome/browser/browser_list.h" |
| 6 #include "chrome/browser/extensions/extension_apitest.h" | 7 #include "chrome/browser/extensions/extension_apitest.h" |
| 7 #include "chrome/browser/extensions/extension_dom_ui.h" | 8 #include "chrome/browser/extensions/extension_dom_ui.h" |
| 9 #include "chrome/browser/tab_contents/tab_contents.h" |
| 10 #include "chrome/common/url_constants.h" |
| 8 #include "chrome/test/ui_test_utils.h" | 11 #include "chrome/test/ui_test_utils.h" |
| 9 | 12 |
| 10 class ExtensionOverrideTest : public ExtensionApiTest { | 13 class ExtensionOverrideTest : public ExtensionApiTest { |
| 11 protected: | 14 protected: |
| 12 bool CheckHistoryOverridesContainsNoDupes() { | 15 bool CheckHistoryOverridesContainsNoDupes() { |
| 13 // There should be no duplicate entries in the preferences. | 16 // There should be no duplicate entries in the preferences. |
| 14 const DictionaryValue* overrides = | 17 const DictionaryValue* overrides = |
| 15 browser()->profile()->GetPrefs()->GetDictionary( | 18 browser()->profile()->GetPrefs()->GetDictionary( |
| 16 ExtensionDOMUI::kExtensionURLOverrides); | 19 ExtensionDOMUI::kExtensionURLOverrides); |
| 17 | 20 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 35 } | 38 } |
| 36 }; | 39 }; |
| 37 | 40 |
| 38 IN_PROC_BROWSER_TEST_F(ExtensionOverrideTest, OverrideNewtab) { | 41 IN_PROC_BROWSER_TEST_F(ExtensionOverrideTest, OverrideNewtab) { |
| 39 ASSERT_TRUE(RunExtensionTest("override/newtab")) << message_; | 42 ASSERT_TRUE(RunExtensionTest("override/newtab")) << message_; |
| 40 { | 43 { |
| 41 ResultCatcher catcher; | 44 ResultCatcher catcher; |
| 42 // Navigate to the new tab page. The overridden new tab page | 45 // Navigate to the new tab page. The overridden new tab page |
| 43 // will call chrome.test.notifyPass() . | 46 // will call chrome.test.notifyPass() . |
| 44 ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab/")); | 47 ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab/")); |
| 48 TabContents* tab = browser()->GetSelectedTabContents(); |
| 49 ASSERT_TRUE(tab->controller().GetActiveEntry()); |
| 50 EXPECT_TRUE(tab->controller().GetActiveEntry()->url(). |
| 51 SchemeIs(chrome::kExtensionScheme)); |
| 52 |
| 45 ASSERT_TRUE(catcher.GetNextResult()); | 53 ASSERT_TRUE(catcher.GetNextResult()); |
| 46 } | 54 } |
| 47 | 55 |
| 48 // TODO(erikkay) Load a second extension with the same override. | 56 // TODO(erikkay) Load a second extension with the same override. |
| 49 // Verify behavior, then unload the first and verify behavior, etc. | 57 // Verify behavior, then unload the first and verify behavior, etc. |
| 50 } | 58 } |
| 51 | 59 |
| 60 IN_PROC_BROWSER_TEST_F(ExtensionOverrideTest, OverrideNewtabIncognito) { |
| 61 ASSERT_TRUE(RunExtensionTest("override/newtab")) << message_; |
| 62 |
| 63 // Navigate an incognito tab to the new tab page. We should get the actual |
| 64 // new tab page because we can't load chrome-extension URLs in incognito. |
| 65 ui_test_utils::OpenURLOffTheRecord(browser()->profile(), |
| 66 GURL("chrome://newtab/")); |
| 67 Browser* otr_browser = BrowserList::FindBrowserWithType( |
| 68 browser()->profile()->GetOffTheRecordProfile(), Browser::TYPE_NORMAL, |
| 69 false); |
| 70 TabContents* tab = otr_browser->GetSelectedTabContents(); |
| 71 ASSERT_TRUE(tab->controller().GetActiveEntry()); |
| 72 EXPECT_FALSE(tab->controller().GetActiveEntry()->url(). |
| 73 SchemeIs(chrome::kExtensionScheme)); |
| 74 } |
| 75 |
| 52 IN_PROC_BROWSER_TEST_F(ExtensionOverrideTest, OverrideHistory) { | 76 IN_PROC_BROWSER_TEST_F(ExtensionOverrideTest, OverrideHistory) { |
| 53 ASSERT_TRUE(RunExtensionTest("override/history")) << message_; | 77 ASSERT_TRUE(RunExtensionTest("override/history")) << message_; |
| 54 { | 78 { |
| 55 ResultCatcher catcher; | 79 ResultCatcher catcher; |
| 56 // Navigate to the history page. The overridden history page | 80 // Navigate to the history page. The overridden history page |
| 57 // will call chrome.test.notifyPass() . | 81 // will call chrome.test.notifyPass() . |
| 58 ui_test_utils::NavigateToURL(browser(), GURL("chrome://history/")); | 82 ui_test_utils::NavigateToURL(browser(), GURL("chrome://history/")); |
| 59 ASSERT_TRUE(catcher.GetNextResult()); | 83 ASSERT_TRUE(catcher.GetNextResult()); |
| 60 } | 84 } |
| 61 } | 85 } |
| (...skipping 25 matching lines...) Expand all Loading... |
| 87 | 111 |
| 88 browser()->profile()->GetPrefs()->GetMutableDictionary( | 112 browser()->profile()->GetPrefs()->GetMutableDictionary( |
| 89 ExtensionDOMUI::kExtensionURLOverrides)->Set(L"history", list); | 113 ExtensionDOMUI::kExtensionURLOverrides)->Set(L"history", list); |
| 90 | 114 |
| 91 ASSERT_FALSE(CheckHistoryOverridesContainsNoDupes()); | 115 ASSERT_FALSE(CheckHistoryOverridesContainsNoDupes()); |
| 92 | 116 |
| 93 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("override/history"))); | 117 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("override/history"))); |
| 94 | 118 |
| 95 ASSERT_TRUE(CheckHistoryOverridesContainsNoDupes()); | 119 ASSERT_TRUE(CheckHistoryOverridesContainsNoDupes()); |
| 96 } | 120 } |
| OLD | NEW |