18ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen// Copyright (c) 2010 The Chromium Authors. All rights reserved.
28ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen// Use of this source code is governed by a BSD-style license that can be
38ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen// found in the LICENSE file.
48ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen
58ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen#include "chrome/common/extensions/extension_icon_set.h"
68ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen
78ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen#include "testing/gtest/include/gtest/gtest.h"
88ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen
98ae428e0fb7feea16d79853f29447469a93bedffKristian MonsenTEST(ExtensionIconSet, Basic) {
108ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  ExtensionIconSet icons;
118ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("", icons.Get(42, ExtensionIconSet::MATCH_EXACTLY));
128ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("", icons.Get(42, ExtensionIconSet::MATCH_BIGGER));
138ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("", icons.Get(42, ExtensionIconSet::MATCH_SMALLER));
148ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_TRUE(icons.map().empty());
158ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen
168ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  icons.Add(42, "42.png");
178ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("42.png", icons.Get(42, ExtensionIconSet::MATCH_EXACTLY));
188ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("42.png", icons.Get(42, ExtensionIconSet::MATCH_BIGGER));
198ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("42.png", icons.Get(42, ExtensionIconSet::MATCH_SMALLER));
208ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("42.png", icons.Get(41, ExtensionIconSet::MATCH_BIGGER));
218ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("42.png", icons.Get(43, ExtensionIconSet::MATCH_SMALLER));
228ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("", icons.Get(41, ExtensionIconSet::MATCH_SMALLER));
238ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("", icons.Get(43, ExtensionIconSet::MATCH_BIGGER));
248ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen
258ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  icons.Add(38, "38.png");
268ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  icons.Add(40, "40.png");
278ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  icons.Add(44, "44.png");
288ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  icons.Add(46, "46.png");
298ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen
308ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("", icons.Get(41, ExtensionIconSet::MATCH_EXACTLY));
318ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("40.png", icons.Get(41, ExtensionIconSet::MATCH_SMALLER));
328ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("42.png", icons.Get(41, ExtensionIconSet::MATCH_BIGGER));
338ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("", icons.Get(37, ExtensionIconSet::MATCH_SMALLER));
348ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_EQ("", icons.Get(47, ExtensionIconSet::MATCH_BIGGER));
358ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen}
368ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen
378ae428e0fb7feea16d79853f29447469a93bedffKristian MonsenTEST(ExtensionIconSet, Values) {
388ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  ExtensionIconSet icons;
398ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_FALSE(icons.ContainsPath("foo"));
408ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen
418ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  icons.Add(1, "foo");
428ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  icons.Add(2, "bar");
438ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen
448ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_TRUE(icons.ContainsPath("foo"));
458ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_TRUE(icons.ContainsPath("bar"));
468ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_FALSE(icons.ContainsPath("baz"));
4772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  EXPECT_FALSE(icons.ContainsPath(""));
488ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen
498ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  icons.Clear();
508ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen  EXPECT_FALSE(icons.ContainsPath("foo"));
518ae428e0fb7feea16d79853f29447469a93bedffKristian Monsen}
52