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_icon_set.h" 6 7 #include "chrome/common/extensions/extension_constants.h" 8 #include "testing/gtest/include/gtest/gtest.h" 9 10 namespace { 11 12 TEST(ExtensionIconSet, Basic) { 13 ExtensionIconSet icons; 14 EXPECT_EQ("", icons.Get(extension_misc::EXTENSION_ICON_LARGE, 15 ExtensionIconSet::MATCH_EXACTLY)); 16 EXPECT_EQ("", icons.Get(extension_misc::EXTENSION_ICON_LARGE, 17 ExtensionIconSet::MATCH_BIGGER)); 18 EXPECT_EQ("", icons.Get(extension_misc::EXTENSION_ICON_LARGE, 19 ExtensionIconSet::MATCH_SMALLER)); 20 EXPECT_TRUE(icons.map().empty()); 21 22 icons.Add(extension_misc::EXTENSION_ICON_LARGE, "large.png"); 23 EXPECT_EQ("large.png", icons.Get(extension_misc::EXTENSION_ICON_LARGE, 24 ExtensionIconSet::MATCH_EXACTLY)); 25 EXPECT_EQ("large.png", icons.Get(extension_misc::EXTENSION_ICON_LARGE, 26 ExtensionIconSet::MATCH_BIGGER)); 27 EXPECT_EQ("large.png", icons.Get(extension_misc::EXTENSION_ICON_LARGE, 28 ExtensionIconSet::MATCH_SMALLER)); 29 EXPECT_EQ("large.png", icons.Get(extension_misc::EXTENSION_ICON_MEDIUM, 30 ExtensionIconSet::MATCH_BIGGER)); 31 EXPECT_EQ("large.png", icons.Get(extension_misc::EXTENSION_ICON_EXTRA_LARGE, 32 ExtensionIconSet::MATCH_SMALLER)); 33 EXPECT_EQ("large.png", icons.Get(0, ExtensionIconSet::MATCH_BIGGER)); 34 EXPECT_EQ("", icons.Get(extension_misc::EXTENSION_ICON_MEDIUM, 35 ExtensionIconSet::MATCH_SMALLER)); 36 EXPECT_EQ("", icons.Get(extension_misc::EXTENSION_ICON_EXTRA_LARGE, 37 ExtensionIconSet::MATCH_BIGGER)); 38 39 icons.Add(extension_misc::EXTENSION_ICON_SMALLISH, "smallish.png"); 40 icons.Add(extension_misc::EXTENSION_ICON_SMALL, "small.png"); 41 icons.Add(extension_misc::EXTENSION_ICON_EXTRA_LARGE, "extra_large.png"); 42 43 EXPECT_EQ("", icons.Get(extension_misc::EXTENSION_ICON_MEDIUM, 44 ExtensionIconSet::MATCH_EXACTLY)); 45 EXPECT_EQ("small.png", icons.Get(extension_misc::EXTENSION_ICON_MEDIUM, 46 ExtensionIconSet::MATCH_SMALLER)); 47 EXPECT_EQ("large.png", icons.Get(extension_misc::EXTENSION_ICON_MEDIUM, 48 ExtensionIconSet::MATCH_BIGGER)); 49 EXPECT_EQ("", icons.Get(extension_misc::EXTENSION_ICON_BITTY, 50 ExtensionIconSet::MATCH_SMALLER)); 51 EXPECT_EQ("", icons.Get(extension_misc::EXTENSION_ICON_GIGANTOR, 52 ExtensionIconSet::MATCH_BIGGER)); 53 } 54 55 TEST(ExtensionIconSet, Values) { 56 ExtensionIconSet icons; 57 EXPECT_FALSE(icons.ContainsPath("foo")); 58 59 icons.Add(extension_misc::EXTENSION_ICON_BITTY, "foo"); 60 icons.Add(extension_misc::EXTENSION_ICON_GIGANTOR, "bar"); 61 62 EXPECT_TRUE(icons.ContainsPath("foo")); 63 EXPECT_TRUE(icons.ContainsPath("bar")); 64 EXPECT_FALSE(icons.ContainsPath("baz")); 65 EXPECT_FALSE(icons.ContainsPath(std::string())); 66 67 icons.Clear(); 68 EXPECT_FALSE(icons.ContainsPath("foo")); 69 } 70 71 TEST(ExtensionIconSet, FindSize) { 72 ExtensionIconSet icons; 73 EXPECT_EQ(extension_misc::EXTENSION_ICON_INVALID, 74 icons.GetIconSizeFromPath("foo")); 75 76 icons.Add(extension_misc::EXTENSION_ICON_BITTY, "foo"); 77 icons.Add(extension_misc::EXTENSION_ICON_GIGANTOR, "bar"); 78 79 EXPECT_EQ(extension_misc::EXTENSION_ICON_BITTY, 80 icons.GetIconSizeFromPath("foo")); 81 EXPECT_EQ(extension_misc::EXTENSION_ICON_GIGANTOR, 82 icons.GetIconSizeFromPath("bar")); 83 EXPECT_EQ(extension_misc::EXTENSION_ICON_INVALID, 84 icons.GetIconSizeFromPath("baz")); 85 EXPECT_EQ(extension_misc::EXTENSION_ICON_INVALID, 86 icons.GetIconSizeFromPath(std::string())); 87 88 icons.Clear(); 89 EXPECT_EQ(extension_misc::EXTENSION_ICON_INVALID, 90 icons.GetIconSizeFromPath("foo")); 91 } 92 93 } // namespace 94