Chromium Code Reviews| Index: chrome/browser/icon_url_data_manager_unittest.cc |
| diff --git a/chrome/browser/icon_url_data_manager_unittest.cc b/chrome/browser/icon_url_data_manager_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..01a28064fe378f15b02fd5a0eab39578cd9482ec |
| --- /dev/null |
| +++ b/chrome/browser/icon_url_data_manager_unittest.cc |
| @@ -0,0 +1,69 @@ |
| +// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/icon_url_data_manager.h" |
| + |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +class IconURITest : public testing:: Test { |
| +}; |
| + |
| +TEST(IconURITest, ParseIconURITest) { |
| + typedef struct { |
| + GURL url; |
| + const char* expected_extension; |
| + const char* expected_media_type; |
| + const char* expected_keyword; |
| + int expected_size; |
| + } TestData; |
| + |
| + TestData passingTests[] = { |
| + { GURL("icon:"), "", "", "unknown", 16 }, |
| + { GURL("ICON:;"), "", "", "unknown", 16 }, |
| + { GURL("icon:;medium"), "", "", "unknown", 64 }, |
| + { GURL("icon:.zip"), ".zip", "", "", 16 }, |
| + { GURL("icon:.MP3;32"), ".mp3", "", "", 32 }, |
| + { GURL("icon:unknown"), "", "", "unknown", 16 }, |
| + { GURL("icon:directory;64"), "", "", "directory", 64 }, |
| + { GURL("icon:image:jpeg;128"), "", "image/jpeg", "", 128 }, |
| + { GURL("icon:AUDIO:MPEG;large"), "", "audio/mpeg", "", 256 }, |
| + { GURL("icon:.doc;SMALL"), ".doc", "", "", 16 }, |
| + { GURL("icon:.pdf;medium"), ".pdf", "", "", 64 }, |
| + }; |
| + |
| + // IconURI should return a default unknown 16x16 icon for invalid URI. |
| + TestData failingTests[] = { |
| + { GURL(""), "", "", "unknown", 16 }, |
| + { GURL("http://www.google.com"), "", "", "unknown", 16 }, |
| + { GURL("ico:.mp3"), "", "", "unknown", 16 }, |
| + }; |
| + |
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(passingTests); ++i) { |
|
Paweł Hajdan Jr.
2010/09/08 17:51:44
Please use SCOPED_TRACE in the loops (here and bel
|
| + IconURI icon_uri; |
| + icon_uri.ParseIconURI(passingTests[i].url); |
| + |
| + EXPECT_TRUE(icon_uri.IsValid()); |
| + EXPECT_EQ(std::string(passingTests[i].expected_extension), |
| + icon_uri.extension()); |
| + EXPECT_EQ(std::string(passingTests[i].expected_media_type), |
| + icon_uri.media_type()); |
| + EXPECT_EQ(std::string(passingTests[i].expected_keyword), |
| + icon_uri.keyword()); |
| + EXPECT_EQ(passingTests[i].expected_size, icon_uri.size()); |
| + } |
| + |
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(failingTests); ++i) { |
| + IconURI icon_uri; |
| + icon_uri.ParseIconURI(failingTests[i].url); |
| + |
| + EXPECT_FALSE(icon_uri.IsValid()); |
| + EXPECT_EQ(std::string(failingTests[i].expected_extension), |
| + icon_uri.extension()); |
| + EXPECT_EQ(std::string(failingTests[i].expected_media_type), |
| + icon_uri.media_type()); |
| + EXPECT_EQ(std::string(failingTests[i].expected_keyword), |
| + icon_uri.keyword()); |
| + EXPECT_EQ(failingTests[i].expected_size, icon_uri.size()); |
| + } |
| +} |