| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/sync_sessions/favicon_cache.h" | 5 #include "components/sync_sessions/favicon_cache.h" |
| 6 | 6 |
| 7 #include <stddef.h> |
| 8 #include <stdint.h> |
| 9 |
| 10 #include "base/macros.h" |
| 7 #include "base/message_loop/message_loop.h" | 11 #include "base/message_loop/message_loop.h" |
| 8 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
| 9 #include "base/strings/stringprintf.h" | 13 #include "base/strings/stringprintf.h" |
| 10 #include "base/time/time.h" | 14 #include "base/time/time.h" |
| 11 #include "sync/api/attachments/attachment_id.h" | 15 #include "sync/api/attachments/attachment_id.h" |
| 12 #include "sync/api/sync_change_processor_wrapper_for_test.h" | 16 #include "sync/api/sync_change_processor_wrapper_for_test.h" |
| 13 #include "sync/api/sync_error_factory_mock.h" | 17 #include "sync/api/sync_error_factory_mock.h" |
| 14 #include "sync/api/time.h" | 18 #include "sync/api/time.h" |
| 15 #include "sync/internal_api/public/attachments/attachment_service_proxy_for_test
.h" | 19 #include "sync/internal_api/public/attachments/attachment_service_proxy_for_test
.h" |
| 16 #include "sync/protocol/favicon_image_specifics.pb.h" | 20 #include "sync/protocol/favicon_image_specifics.pb.h" |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 } | 106 } |
| 103 | 107 |
| 104 // TestFaviconData ------------------------------------------------------------ | 108 // TestFaviconData ------------------------------------------------------------ |
| 105 struct TestFaviconData { | 109 struct TestFaviconData { |
| 106 TestFaviconData() : last_visit_time(0), is_bookmarked(false) {} | 110 TestFaviconData() : last_visit_time(0), is_bookmarked(false) {} |
| 107 GURL page_url; | 111 GURL page_url; |
| 108 GURL icon_url; | 112 GURL icon_url; |
| 109 std::string image_16; | 113 std::string image_16; |
| 110 std::string image_32; | 114 std::string image_32; |
| 111 std::string image_64; | 115 std::string image_64; |
| 112 int64 last_visit_time; | 116 int64_t last_visit_time; |
| 113 bool is_bookmarked; | 117 bool is_bookmarked; |
| 114 }; | 118 }; |
| 115 | 119 |
| 116 TestFaviconData BuildFaviconData(int index) { | 120 TestFaviconData BuildFaviconData(int index) { |
| 117 TestFaviconData data; | 121 TestFaviconData data; |
| 118 data.page_url = GURL(base::StringPrintf("http://bla.com/%.2i.html", index)); | 122 data.page_url = GURL(base::StringPrintf("http://bla.com/%.2i.html", index)); |
| 119 data.icon_url = GURL(base::StringPrintf("http://bla.com/%.2i.ico", index)); | 123 data.icon_url = GURL(base::StringPrintf("http://bla.com/%.2i.ico", index)); |
| 120 data.image_16 = base::StringPrintf("16 %i", index); | 124 data.image_16 = base::StringPrintf("16 %i", index); |
| 121 // TODO(zea): enable this once the cache supports writing them. | 125 // TODO(zea): enable this once the cache supports writing them. |
| 122 // data.image_32 = base::StringPrintf("32 %i", index); | 126 // data.image_32 = base::StringPrintf("32 %i", index); |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 TestChangeProcessor* processor() { return sync_processor_.get(); } | 283 TestChangeProcessor* processor() { return sync_processor_.get(); } |
| 280 | 284 |
| 281 // Finish an outstanding favicon load for the icon described in |test_data|. | 285 // Finish an outstanding favicon load for the icon described in |test_data|. |
| 282 void OnCustomFaviconDataAvailable(const TestFaviconData& test_data); | 286 void OnCustomFaviconDataAvailable(const TestFaviconData& test_data); |
| 283 | 287 |
| 284 // Helper method to run the message loop after invoking | 288 // Helper method to run the message loop after invoking |
| 285 // OnReceivedSyncFavicon, which posts an internal task. | 289 // OnReceivedSyncFavicon, which posts an internal task. |
| 286 void TriggerSyncFaviconReceived(const GURL& page_url, | 290 void TriggerSyncFaviconReceived(const GURL& page_url, |
| 287 const GURL& icon_url, | 291 const GURL& icon_url, |
| 288 const std::string& icon_bytes, | 292 const std::string& icon_bytes, |
| 289 int64 last_visit_time_ms); | 293 int64_t last_visit_time_ms); |
| 290 | 294 |
| 291 private: | 295 private: |
| 292 base::MessageLoopForUI message_loop_; | 296 base::MessageLoopForUI message_loop_; |
| 293 FaviconCache cache_; | 297 FaviconCache cache_; |
| 294 | 298 |
| 295 // Our dummy ChangeProcessor used to inspect changes pushed to Sync. | 299 // Our dummy ChangeProcessor used to inspect changes pushed to Sync. |
| 296 scoped_ptr<TestChangeProcessor> sync_processor_; | 300 scoped_ptr<TestChangeProcessor> sync_processor_; |
| 297 scoped_ptr<syncer::SyncChangeProcessorWrapperForTest> sync_processor_wrapper_; | 301 scoped_ptr<syncer::SyncChangeProcessorWrapperForTest> sync_processor_wrapper_; |
| 298 }; | 302 }; |
| 299 | 303 |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 bitmap_result.bitmap_data = temp_string; | 442 bitmap_result.bitmap_data = temp_string; |
| 439 bitmap_results.push_back(bitmap_result); | 443 bitmap_results.push_back(bitmap_result); |
| 440 } | 444 } |
| 441 cache()->OnFaviconDataAvailable(test_data.page_url, bitmap_results); | 445 cache()->OnFaviconDataAvailable(test_data.page_url, bitmap_results); |
| 442 } | 446 } |
| 443 | 447 |
| 444 void SyncFaviconCacheTest::TriggerSyncFaviconReceived( | 448 void SyncFaviconCacheTest::TriggerSyncFaviconReceived( |
| 445 const GURL& page_url, | 449 const GURL& page_url, |
| 446 const GURL& icon_url, | 450 const GURL& icon_url, |
| 447 const std::string& icon_bytes, | 451 const std::string& icon_bytes, |
| 448 int64 last_visit_time_ms) { | 452 int64_t last_visit_time_ms) { |
| 449 cache()->OnReceivedSyncFavicon(page_url, | 453 cache()->OnReceivedSyncFavicon(page_url, |
| 450 icon_url, | 454 icon_url, |
| 451 icon_bytes, | 455 icon_bytes, |
| 452 last_visit_time_ms); | 456 last_visit_time_ms); |
| 453 message_loop_.RunUntilIdle(); | 457 message_loop_.RunUntilIdle(); |
| 454 } | 458 } |
| 455 | 459 |
| 456 // A freshly constructed cache should be empty. | 460 // A freshly constructed cache should be empty. |
| 457 TEST_F(SyncFaviconCacheTest, Empty) { | 461 TEST_F(SyncFaviconCacheTest, Empty) { |
| 458 EXPECT_EQ(0U, GetFaviconCount()); | 462 EXPECT_EQ(0U, GetFaviconCount()); |
| (...skipping 1463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1922 EXPECT_EQ(changes[4].change_type(), syncer::SyncChange::ACTION_ADD); | 1926 EXPECT_EQ(changes[4].change_type(), syncer::SyncChange::ACTION_ADD); |
| 1923 EXPECT_EQ(changes[4].sync_data().GetDataType(), syncer::FAVICON_TRACKING); | 1927 EXPECT_EQ(changes[4].sync_data().GetDataType(), syncer::FAVICON_TRACKING); |
| 1924 EXPECT_EQ(kMaxSyncFavicons, GetFaviconId(changes[4])); | 1928 EXPECT_EQ(kMaxSyncFavicons, GetFaviconId(changes[4])); |
| 1925 // Expire tracking for favicon[0]. | 1929 // Expire tracking for favicon[0]. |
| 1926 EXPECT_EQ(changes[5].change_type(), syncer::SyncChange::ACTION_DELETE); | 1930 EXPECT_EQ(changes[5].change_type(), syncer::SyncChange::ACTION_DELETE); |
| 1927 EXPECT_EQ(changes[5].sync_data().GetDataType(), syncer::FAVICON_TRACKING); | 1931 EXPECT_EQ(changes[5].sync_data().GetDataType(), syncer::FAVICON_TRACKING); |
| 1928 EXPECT_EQ(0, GetFaviconId(changes[5])); | 1932 EXPECT_EQ(0, GetFaviconId(changes[5])); |
| 1929 } | 1933 } |
| 1930 | 1934 |
| 1931 } // namespace browser_sync | 1935 } // namespace browser_sync |
| OLD | NEW |