| // Copyright 2017 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 "components/favicon/core/favicon_service_impl.h" |
| |
| #include <memory> |
| |
| #include "base/files/scoped_temp_dir.h" |
| #include "base/test/scoped_task_environment.h" |
| #include "components/favicon/core/favicon_client.h" |
| #include "components/history/core/browser/history_service.h" |
| #include "components/history/core/test/history_service_test_util.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace favicon { |
| namespace { |
| |
| TEST(FaviconServiceImplTest, ShouldCacheUnableToDownloadFavicons) { |
| base::test::ScopedTaskEnvironment task_environment; |
| base::ScopedTempDir history_dir; |
| CHECK(history_dir.CreateUniqueTempDir()); |
| std::unique_ptr<history::HistoryService> history_service = |
| history::CreateHistoryService(history_dir.GetPath(), /*create_db=*/false); |
| FaviconServiceImpl favicon_service( |
| /*favicon_client=*/nullptr, history_service.get()); |
| |
| const GURL icon1("http://www.google.com/favicon.ico"); |
| const GURL icon2("http://www.youtube.com/favicon.ico"); |
| EXPECT_FALSE(favicon_service.WasUnableToDownloadFavicon(icon1)); |
| EXPECT_FALSE(favicon_service.WasUnableToDownloadFavicon(icon2)); |
| |
| favicon_service.UnableToDownloadFavicon(icon1); |
| EXPECT_TRUE(favicon_service.WasUnableToDownloadFavicon(icon1)); |
| EXPECT_FALSE(favicon_service.WasUnableToDownloadFavicon(icon2)); |
| |
| favicon_service.UnableToDownloadFavicon(icon2); |
| EXPECT_TRUE(favicon_service.WasUnableToDownloadFavicon(icon2)); |
| |
| favicon_service.ClearUnableToDownloadFavicons(); |
| EXPECT_FALSE(favicon_service.WasUnableToDownloadFavicon(icon1)); |
| EXPECT_FALSE(favicon_service.WasUnableToDownloadFavicon(icon2)); |
| } |
| |
| } // namespace |
| } // namespace favicon |