Home | History | Annotate | Download | only in extensions
      1 // Copyright (c) 2012 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/common/extensions/extension_file_util.h"
      6 
      7 #include <set>
      8 
      9 #include "base/path_service.h"
     10 #include "chrome/common/chrome_paths.h"
     11 #include "extensions/common/extension.h"
     12 #include "extensions/common/file_util.h"
     13 #include "extensions/common/manifest.h"
     14 #include "testing/gtest/include/gtest/gtest.h"
     15 
     16 namespace extensions {
     17 
     18 typedef testing::Test ExtensionFileUtilTest;
     19 
     20 // Test that a browser action extension returns a path to an icon.
     21 TEST_F(ExtensionFileUtilTest, GetBrowserImagePaths) {
     22   base::FilePath install_dir;
     23   ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &install_dir));
     24   install_dir = install_dir.AppendASCII("extensions")
     25                     .AppendASCII("api_test")
     26                     .AppendASCII("browser_action")
     27                     .AppendASCII("basics");
     28 
     29   std::string error;
     30   scoped_refptr<Extension> extension(file_util::LoadExtension(
     31       install_dir, Manifest::UNPACKED, Extension::NO_FLAGS, &error));
     32   ASSERT_TRUE(extension.get());
     33 
     34   // The extension contains one icon.
     35   std::set<base::FilePath> paths =
     36       extension_file_util::GetBrowserImagePaths(extension.get());
     37   ASSERT_EQ(1u, paths.size());
     38   EXPECT_EQ("icon.png", paths.begin()->BaseName().AsUTF8Unsafe());
     39 }
     40 
     41 }  // namespace extensions
     42