OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/extensions/extension_browsertest.h" | 5 #include "chrome/browser/extensions/extension_browsertest.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
11 #include "base/file_util.h" | 11 #include "base/file_util.h" |
12 #include "base/path_service.h" | 12 #include "base/path_service.h" |
13 #include "base/string_number_conversions.h" | 13 #include "base/string_number_conversions.h" |
14 #include "chrome/browser/browser_window.h" | 14 #include "chrome/browser/browser_window.h" |
15 #include "chrome/browser/extensions/crx_installer.h" | 15 #include "chrome/browser/extensions/crx_installer.h" |
16 #include "chrome/browser/extensions/extension_creator.h" | 16 #include "chrome/browser/extensions/extension_creator.h" |
17 #include "chrome/browser/extensions/extension_error_reporter.h" | 17 #include "chrome/browser/extensions/extension_error_reporter.h" |
18 #include "chrome/browser/extensions/extension_host.h" | 18 #include "chrome/browser/extensions/extension_host.h" |
19 #include "chrome/browser/extensions/extension_install_ui.h" | 19 #include "chrome/browser/extensions/extension_install_ui.h" |
20 #include "chrome/browser/extensions/extension_service.h" | 20 #include "chrome/browser/extensions/extension_service.h" |
| 21 #include "chrome/browser/extensions/theme_installed_infobar_delegate.h" |
21 #include "chrome/browser/profiles/profile.h" | 22 #include "chrome/browser/profiles/profile.h" |
| 23 #include "chrome/browser/tab_contents/tab_contents.h" |
22 #include "chrome/browser/ui/browser.h" | 24 #include "chrome/browser/ui/browser.h" |
23 #include "chrome/browser/ui/omnibox/location_bar.h" | 25 #include "chrome/browser/ui/omnibox/location_bar.h" |
24 #include "chrome/common/chrome_paths.h" | 26 #include "chrome/common/chrome_paths.h" |
25 #include "chrome/common/chrome_switches.h" | 27 #include "chrome/common/chrome_switches.h" |
26 #include "chrome/common/notification_registrar.h" | 28 #include "chrome/common/notification_registrar.h" |
27 #include "chrome/common/notification_service.h" | 29 #include "chrome/common/notification_service.h" |
28 #include "chrome/common/notification_type.h" | 30 #include "chrome/common/notification_type.h" |
29 #include "chrome/test/ui_test_utils.h" | 31 #include "chrome/test/ui_test_utils.h" |
30 | 32 |
31 ExtensionBrowserTest::ExtensionBrowserTest() | 33 ExtensionBrowserTest::ExtensionBrowserTest() |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 virtual void ConfirmUninstall(Delegate* delegate, | 158 virtual void ConfirmUninstall(Delegate* delegate, |
157 const Extension* extension) {} | 159 const Extension* extension) {} |
158 | 160 |
159 virtual void OnInstallSuccess(const Extension* extension, SkBitmap* icon) {} | 161 virtual void OnInstallSuccess(const Extension* extension, SkBitmap* icon) {} |
160 | 162 |
161 virtual void OnInstallFailure(const std::string& error) {} | 163 virtual void OnInstallFailure(const std::string& error) {} |
162 }; | 164 }; |
163 | 165 |
164 class MockAutoConfirmExtensionInstallUI : public ExtensionInstallUI { | 166 class MockAutoConfirmExtensionInstallUI : public ExtensionInstallUI { |
165 public: | 167 public: |
166 MockAutoConfirmExtensionInstallUI(Profile* profile) : | 168 explicit MockAutoConfirmExtensionInstallUI(Profile* profile) : |
167 ExtensionInstallUI(profile) {} | 169 ExtensionInstallUI(profile) {} |
168 | 170 |
169 // Proceed without confirmation prompt. | 171 // Proceed without confirmation prompt. |
170 virtual void ConfirmInstall(Delegate* delegate, const Extension* extension) { | 172 virtual void ConfirmInstall(Delegate* delegate, const Extension* extension) { |
171 delegate->InstallUIProceed(); | 173 delegate->InstallUIProceed(); |
172 } | 174 } |
173 }; | 175 }; |
174 | 176 |
175 bool ExtensionBrowserTest::InstallOrUpdateExtension(const std::string& id, | 177 bool ExtensionBrowserTest::InstallOrUpdateExtension(const std::string& id, |
176 const FilePath& path, | 178 const FilePath& path, |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 if (!service->GetExtensionById(extension_id, true)) { | 351 if (!service->GetExtensionById(extension_id, true)) { |
350 // The extension is already unloaded, presumably due to a crash. | 352 // The extension is already unloaded, presumably due to a crash. |
351 return true; | 353 return true; |
352 } | 354 } |
353 ui_test_utils::RegisterAndWait(this, | 355 ui_test_utils::RegisterAndWait(this, |
354 NotificationType::EXTENSION_PROCESS_TERMINATED, | 356 NotificationType::EXTENSION_PROCESS_TERMINATED, |
355 NotificationService::AllSources()); | 357 NotificationService::AllSources()); |
356 return (service->GetExtensionById(extension_id, true) == NULL); | 358 return (service->GetExtensionById(extension_id, true) == NULL); |
357 } | 359 } |
358 | 360 |
| 361 void ExtensionBrowserTest::VerifyThemeInfoBarAndUndoInstall() { |
| 362 TabContents* tab_contents = browser()->GetSelectedTabContents(); |
| 363 ASSERT_TRUE(tab_contents); |
| 364 ASSERT_EQ(1U, tab_contents->infobar_count()); |
| 365 ConfirmInfoBarDelegate* delegate = |
| 366 tab_contents->GetInfoBarDelegateAt(0)->AsConfirmInfoBarDelegate(); |
| 367 ASSERT_TRUE(delegate); |
| 368 delegate->Cancel(); |
| 369 ASSERT_EQ(0U, tab_contents->infobar_count()); |
| 370 } |
| 371 |
359 void ExtensionBrowserTest::Observe(NotificationType type, | 372 void ExtensionBrowserTest::Observe(NotificationType type, |
360 const NotificationSource& source, | 373 const NotificationSource& source, |
361 const NotificationDetails& details) { | 374 const NotificationDetails& details) { |
362 switch (type.value) { | 375 switch (type.value) { |
363 case NotificationType::EXTENSION_LOADED: | 376 case NotificationType::EXTENSION_LOADED: |
364 last_loaded_extension_id_ = Details<const Extension>(details).ptr()->id(); | 377 last_loaded_extension_id_ = Details<const Extension>(details).ptr()->id(); |
365 VLOG(1) << "Got EXTENSION_LOADED notification."; | 378 VLOG(1) << "Got EXTENSION_LOADED notification."; |
366 MessageLoopForUI::current()->Quit(); | 379 MessageLoopForUI::current()->Quit(); |
367 break; | 380 break; |
368 | 381 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 MessageLoopForUI::current()->Quit(); | 435 MessageLoopForUI::current()->Quit(); |
423 } | 436 } |
424 break; | 437 break; |
425 } | 438 } |
426 | 439 |
427 default: | 440 default: |
428 NOTREACHED(); | 441 NOTREACHED(); |
429 break; | 442 break; |
430 } | 443 } |
431 } | 444 } |
OLD | NEW |