From 1952c7d55e5f3cb5d7d75eeab965af32459d2b31 Mon Sep 17 00:00:00 2001
From: "aa@chromium.org" <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Date: Thu, 4 Mar 2010 23:48:34 +0000
Subject: Load the bookmark manager extension at Chrome startup.

Review URL: http://codereview.chromium.org/660232

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40683 0039d316-1c4b-4281-b951-d872f2087c98
---
 chrome/browser/extensions/extension_apitest.cc | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

(limited to 'chrome/browser/extensions/extension_apitest.cc')

diff --git a/chrome/browser/extensions/extension_apitest.cc b/chrome/browser/extensions/extension_apitest.cc
index e5a0768..a842c97 100644
--- a/chrome/browser/extensions/extension_apitest.cc
+++ b/chrome/browser/extensions/extension_apitest.cc
@@ -87,13 +87,25 @@ bool ExtensionApiTest::RunExtensionTest(const char* extension_name) {
 // Test that exactly one extension loaded.
 Extension* ExtensionApiTest::GetSingleLoadedExtension() {
   ExtensionsService* service = browser()->profile()->GetExtensionsService();
-  if (service->extensions()->size() != 1u) {
-    message_ = StringPrintf(
-        "Expected only one extension to be present.  Found %u.",
-        static_cast<unsigned>(service->extensions()->size()));
-    return NULL;
+
+  int found_extension_index = -1;
+  for (size_t i = 0; i < service->extensions()->size(); ++i) {
+    // Ignore any component extensions. They are automatically loaded into all
+    // profiles and aren't the extension we're looking for here.
+    if (service->extensions()->at(i)->location() == Extension::COMPONENT)
+      continue;
+
+    if (found_extension_index != -1) {
+      message_ = StringPrintf(
+          "Expected only one extension to be present.  Found %u.",
+          static_cast<unsigned>(service->extensions()->size()));
+      return NULL;
+    }
+
+    found_extension_index = static_cast<int>(i);
   }
-  Extension* extension = service->extensions()->at(0);
+
+  Extension* extension = service->extensions()->at(found_extension_index);
   if (!extension) {
     message_ = "extension pointer is NULL.";
     return NULL;
-- 
cgit v1.1