| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/reading_list/ios/reading_list_entry.h" | 5 #include "components/reading_list/ios/reading_list_entry.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "base/test/simple_test_tick_clock.h" | 8 #include "base/test/simple_test_tick_clock.h" |
| 9 #include "components/reading_list/ios/proto/reading_list.pb.h" | 9 #include "components/reading_list/ios/proto/reading_list.pb.h" |
| 10 #include "components/sync/protocol/reading_list_specifics.pb.h" | 10 #include "components/sync/protocol/reading_list_specifics.pb.h" |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 EXPECT_EQ(2, e.FailedDownloadCounter()); | 185 EXPECT_EQ(2, e.FailedDownloadCounter()); |
| 186 } | 186 } |
| 187 | 187 |
| 188 // Tests that the reading list entry is correctly encoded to | 188 // Tests that the reading list entry is correctly encoded to |
| 189 // sync_pb::ReadingListSpecifics. | 189 // sync_pb::ReadingListSpecifics. |
| 190 TEST(ReadingListEntry, AsReadingListSpecifics) { | 190 TEST(ReadingListEntry, AsReadingListSpecifics) { |
| 191 ReadingListEntry entry(GURL("http://example.com/"), "bar"); | 191 ReadingListEntry entry(GURL("http://example.com/"), "bar"); |
| 192 int64_t creation_time_us = entry.UpdateTime(); | 192 int64_t creation_time_us = entry.UpdateTime(); |
| 193 | 193 |
| 194 std::unique_ptr<sync_pb::ReadingListSpecifics> pb_entry( | 194 std::unique_ptr<sync_pb::ReadingListSpecifics> pb_entry( |
| 195 entry.AsReadingListSpecifics(false)); | 195 entry.AsReadingListSpecifics()); |
| 196 EXPECT_EQ(pb_entry->entry_id(), "http://example.com/"); | 196 EXPECT_EQ(pb_entry->entry_id(), "http://example.com/"); |
| 197 EXPECT_EQ(pb_entry->url(), "http://example.com/"); | 197 EXPECT_EQ(pb_entry->url(), "http://example.com/"); |
| 198 EXPECT_EQ(pb_entry->title(), "bar"); | 198 EXPECT_EQ(pb_entry->title(), "bar"); |
| 199 EXPECT_EQ(pb_entry->creation_time_us(), creation_time_us); | 199 EXPECT_EQ(pb_entry->creation_time_us(), creation_time_us); |
| 200 EXPECT_EQ(pb_entry->update_time_us(), entry.UpdateTime()); | 200 EXPECT_EQ(pb_entry->update_time_us(), entry.UpdateTime()); |
| 201 EXPECT_EQ(pb_entry->status(), sync_pb::ReadingListSpecifics::UNREAD); | 201 EXPECT_EQ(pb_entry->status(), sync_pb::ReadingListSpecifics::UNREAD); |
| 202 | 202 |
| 203 entry.MarkEntryUpdated(); | 203 entry.SetRead(true); |
| 204 EXPECT_NE(entry.UpdateTime(), creation_time_us); | 204 EXPECT_NE(entry.UpdateTime(), creation_time_us); |
| 205 std::unique_ptr<sync_pb::ReadingListSpecifics> updated_pb_entry( | 205 std::unique_ptr<sync_pb::ReadingListSpecifics> updated_pb_entry( |
| 206 entry.AsReadingListSpecifics(true)); | 206 entry.AsReadingListSpecifics()); |
| 207 EXPECT_EQ(updated_pb_entry->creation_time_us(), creation_time_us); | 207 EXPECT_EQ(updated_pb_entry->creation_time_us(), creation_time_us); |
| 208 EXPECT_EQ(updated_pb_entry->update_time_us(), entry.UpdateTime()); | 208 EXPECT_EQ(updated_pb_entry->update_time_us(), entry.UpdateTime()); |
| 209 EXPECT_EQ(updated_pb_entry->status(), sync_pb::ReadingListSpecifics::READ); | 209 EXPECT_EQ(updated_pb_entry->status(), sync_pb::ReadingListSpecifics::READ); |
| 210 } | 210 } |
| 211 | 211 |
| 212 // Tests that the reading list entry is correctly parsed from | 212 // Tests that the reading list entry is correctly parsed from |
| 213 // sync_pb::ReadingListSpecifics. | 213 // sync_pb::ReadingListSpecifics. |
| 214 TEST(ReadingListEntry, FromReadingListSpecifics) { | 214 TEST(ReadingListEntry, FromReadingListSpecifics) { |
| 215 std::unique_ptr<sync_pb::ReadingListSpecifics> pb_entry = | 215 std::unique_ptr<sync_pb::ReadingListSpecifics> pb_entry = |
| 216 base::MakeUnique<sync_pb::ReadingListSpecifics>(); | 216 base::MakeUnique<sync_pb::ReadingListSpecifics>(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 229 EXPECT_EQ(entry->FailedDownloadCounter(), 0); | 229 EXPECT_EQ(entry->FailedDownloadCounter(), 0); |
| 230 } | 230 } |
| 231 | 231 |
| 232 // Tests that the reading list entry is correctly encoded to | 232 // Tests that the reading list entry is correctly encoded to |
| 233 // reading_list::ReadingListLocal. | 233 // reading_list::ReadingListLocal. |
| 234 TEST(ReadingListEntry, AsReadingListLocal) { | 234 TEST(ReadingListEntry, AsReadingListLocal) { |
| 235 ReadingListEntry entry(GURL("http://example.com/"), "bar"); | 235 ReadingListEntry entry(GURL("http://example.com/"), "bar"); |
| 236 int64_t creation_time_us = entry.UpdateTime(); | 236 int64_t creation_time_us = entry.UpdateTime(); |
| 237 | 237 |
| 238 std::unique_ptr<reading_list::ReadingListLocal> pb_entry( | 238 std::unique_ptr<reading_list::ReadingListLocal> pb_entry( |
| 239 entry.AsReadingListLocal(false)); | 239 entry.AsReadingListLocal()); |
| 240 EXPECT_EQ(pb_entry->entry_id(), "http://example.com/"); | 240 EXPECT_EQ(pb_entry->entry_id(), "http://example.com/"); |
| 241 EXPECT_EQ(pb_entry->url(), "http://example.com/"); | 241 EXPECT_EQ(pb_entry->url(), "http://example.com/"); |
| 242 EXPECT_EQ(pb_entry->title(), "bar"); | 242 EXPECT_EQ(pb_entry->title(), "bar"); |
| 243 EXPECT_EQ(pb_entry->creation_time_us(), creation_time_us); | 243 EXPECT_EQ(pb_entry->creation_time_us(), creation_time_us); |
| 244 EXPECT_EQ(pb_entry->update_time_us(), entry.UpdateTime()); | 244 EXPECT_EQ(pb_entry->update_time_us(), entry.UpdateTime()); |
| 245 EXPECT_EQ(pb_entry->status(), reading_list::ReadingListLocal::UNREAD); | 245 EXPECT_EQ(pb_entry->status(), reading_list::ReadingListLocal::UNREAD); |
| 246 EXPECT_EQ(pb_entry->distillation_state(), | 246 EXPECT_EQ(pb_entry->distillation_state(), |
| 247 reading_list::ReadingListLocal::WAITING); | 247 reading_list::ReadingListLocal::WAITING); |
| 248 EXPECT_EQ(pb_entry->distilled_path(), ""); | 248 EXPECT_EQ(pb_entry->distilled_path(), ""); |
| 249 EXPECT_EQ(pb_entry->failed_download_counter(), 0); | 249 EXPECT_EQ(pb_entry->failed_download_counter(), 0); |
| 250 EXPECT_NE(pb_entry->backoff(), ""); | 250 EXPECT_NE(pb_entry->backoff(), ""); |
| 251 | 251 |
| 252 entry.SetDistilledState(ReadingListEntry::WILL_RETRY); | 252 entry.SetDistilledState(ReadingListEntry::WILL_RETRY); |
| 253 std::unique_ptr<reading_list::ReadingListLocal> will_retry_pb_entry( | 253 std::unique_ptr<reading_list::ReadingListLocal> will_retry_pb_entry( |
| 254 entry.AsReadingListLocal(true)); | 254 entry.AsReadingListLocal()); |
| 255 EXPECT_EQ(will_retry_pb_entry->distillation_state(), | 255 EXPECT_EQ(will_retry_pb_entry->distillation_state(), |
| 256 reading_list::ReadingListLocal::WILL_RETRY); | 256 reading_list::ReadingListLocal::WILL_RETRY); |
| 257 EXPECT_EQ(will_retry_pb_entry->failed_download_counter(), 1); | 257 EXPECT_EQ(will_retry_pb_entry->failed_download_counter(), 1); |
| 258 | 258 |
| 259 entry.SetDistilledPath(base::FilePath("distilled/page.html")); | 259 entry.SetDistilledPath(base::FilePath("distilled/page.html")); |
| 260 entry.SetRead(true); |
| 260 entry.MarkEntryUpdated(); | 261 entry.MarkEntryUpdated(); |
| 261 EXPECT_NE(entry.UpdateTime(), creation_time_us); | 262 EXPECT_NE(entry.UpdateTime(), creation_time_us); |
| 262 std::unique_ptr<reading_list::ReadingListLocal> distilled_pb_entry( | 263 std::unique_ptr<reading_list::ReadingListLocal> distilled_pb_entry( |
| 263 entry.AsReadingListLocal(true)); | 264 entry.AsReadingListLocal()); |
| 264 EXPECT_EQ(distilled_pb_entry->creation_time_us(), creation_time_us); | 265 EXPECT_EQ(distilled_pb_entry->creation_time_us(), creation_time_us); |
| 265 EXPECT_EQ(distilled_pb_entry->update_time_us(), entry.UpdateTime()); | 266 EXPECT_EQ(distilled_pb_entry->update_time_us(), entry.UpdateTime()); |
| 266 EXPECT_NE(distilled_pb_entry->backoff(), ""); | 267 EXPECT_NE(distilled_pb_entry->backoff(), ""); |
| 267 EXPECT_EQ(distilled_pb_entry->status(), reading_list::ReadingListLocal::READ); | 268 EXPECT_EQ(distilled_pb_entry->status(), reading_list::ReadingListLocal::READ); |
| 268 EXPECT_EQ(distilled_pb_entry->distillation_state(), | 269 EXPECT_EQ(distilled_pb_entry->distillation_state(), |
| 269 reading_list::ReadingListLocal::PROCESSED); | 270 reading_list::ReadingListLocal::PROCESSED); |
| 270 EXPECT_EQ(distilled_pb_entry->distilled_path(), "distilled/page.html"); | 271 EXPECT_EQ(distilled_pb_entry->distilled_path(), "distilled/page.html"); |
| 271 EXPECT_EQ(distilled_pb_entry->failed_download_counter(), 0); | 272 EXPECT_EQ(distilled_pb_entry->failed_download_counter(), 0); |
| 272 } | 273 } |
| 273 | 274 |
| 274 // Tests that the reading list entry is correctly parsed from | 275 // Tests that the reading list entry is correctly parsed from |
| 275 // sync_pb::ReadingListLocal. | 276 // sync_pb::ReadingListLocal. |
| 276 TEST(ReadingListEntry, FromReadingListLocal) { | 277 TEST(ReadingListEntry, FromReadingListLocal) { |
| 277 ReadingListEntry entry(GURL("http://example.com/"), "title"); | 278 ReadingListEntry entry(GURL("http://example.com/"), "title"); |
| 278 base::Time next_call = base::Time::Now() + entry.TimeUntilNextTry(); | 279 base::Time next_call = base::Time::Now() + entry.TimeUntilNextTry(); |
| 279 | 280 |
| 280 std::unique_ptr<reading_list::ReadingListLocal> pb_entry( | 281 std::unique_ptr<reading_list::ReadingListLocal> pb_entry( |
| 281 entry.AsReadingListLocal(false)); | 282 entry.AsReadingListLocal()); |
| 282 | 283 |
| 283 pb_entry->set_entry_id("http://example.com/"); | 284 pb_entry->set_entry_id("http://example.com/"); |
| 284 pb_entry->set_url("http://example.com/"); | 285 pb_entry->set_url("http://example.com/"); |
| 285 pb_entry->set_title("title"); | 286 pb_entry->set_title("title"); |
| 286 pb_entry->set_creation_time_us(1); | 287 pb_entry->set_creation_time_us(1); |
| 287 pb_entry->set_update_time_us(2); | 288 pb_entry->set_update_time_us(2); |
| 288 pb_entry->set_status(reading_list::ReadingListLocal::UNREAD); | 289 pb_entry->set_status(reading_list::ReadingListLocal::UNREAD); |
| 289 pb_entry->set_distillation_state(reading_list::ReadingListLocal::WAITING); | 290 pb_entry->set_distillation_state(reading_list::ReadingListLocal::WAITING); |
| 290 pb_entry->set_failed_download_counter(2); | 291 pb_entry->set_failed_download_counter(2); |
| 291 | 292 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 318 EXPECT_EQ(sync_entry.URL().spec(), "http://example2.com/"); | 319 EXPECT_EQ(sync_entry.URL().spec(), "http://example2.com/"); |
| 319 EXPECT_EQ(sync_entry.Title(), "title2"); | 320 EXPECT_EQ(sync_entry.Title(), "title2"); |
| 320 EXPECT_EQ(sync_entry.UpdateTime(), sync_update_time_us); | 321 EXPECT_EQ(sync_entry.UpdateTime(), sync_update_time_us); |
| 321 EXPECT_EQ(sync_entry.FailedDownloadCounter(), 0); | 322 EXPECT_EQ(sync_entry.FailedDownloadCounter(), 0); |
| 322 EXPECT_EQ(sync_entry.DistilledState(), ReadingListEntry::PROCESSED); | 323 EXPECT_EQ(sync_entry.DistilledState(), ReadingListEntry::PROCESSED); |
| 323 EXPECT_EQ(sync_entry.DistilledPath().value(), "distilled/page.html"); | 324 EXPECT_EQ(sync_entry.DistilledPath().value(), "distilled/page.html"); |
| 324 base::Time sync_next_call = base::Time::Now() + sync_entry.TimeUntilNextTry(); | 325 base::Time sync_next_call = base::Time::Now() + sync_entry.TimeUntilNextTry(); |
| 325 base::TimeDelta delta = next_call - sync_next_call; | 326 base::TimeDelta delta = next_call - sync_next_call; |
| 326 EXPECT_NEAR(delta.InMillisecondsRoundedUp(), 0, 10); | 327 EXPECT_NEAR(delta.InMillisecondsRoundedUp(), 0, 10); |
| 327 } | 328 } |
| OLD | NEW |