| Index: components/offline_pages/background/save_page_request_unittest.cc
|
| diff --git a/components/offline_pages/background/save_page_request_unittest.cc b/components/offline_pages/background/save_page_request_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..579b8bca03dfd19c63e84b4b3f997d2294b444cd
|
| --- /dev/null
|
| +++ b/components/offline_pages/background/save_page_request_unittest.cc
|
| @@ -0,0 +1,100 @@
|
| +// Copyright 2016 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/offline_pages/background/save_page_request.h"
|
| +
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace offline_pages {
|
| +
|
| +namespace {
|
| +const int64_t kRequestId = 42;
|
| +const GURL kUrl("http://example.com");
|
| +const ClientId kClientId("bookmark", "1234");
|
| +} // namespace
|
| +
|
| +class SavePageRequestTest : public testing::Test {
|
| + public:
|
| + ~SavePageRequestTest() override;
|
| +};
|
| +
|
| +SavePageRequestTest::~SavePageRequestTest() {}
|
| +
|
| +TEST_F(SavePageRequestTest, CreatePendingReqeust) {
|
| + base::Time creation_time = base::Time::Now();
|
| + SavePageRequest request(kRequestId, kUrl, kClientId, creation_time);
|
| + ASSERT_EQ(kRequestId, request.request_id());
|
| + ASSERT_EQ(kUrl, request.url());
|
| + ASSERT_EQ(kClientId, request.client_id());
|
| + ASSERT_EQ(creation_time, request.creation_time());
|
| + ASSERT_EQ(creation_time, request.activation_time());
|
| + ASSERT_EQ(base::Time(), request.last_attempt_time());
|
| + ASSERT_EQ(0, request.attempt_count());
|
| +
|
| + base::Time after_creation = creation_time + base::TimeDelta::FromHours(6);
|
| + ASSERT_EQ(SavePageRequest::Status::kPending,
|
| + request.GetStatus(after_creation));
|
| +}
|
| +
|
| +TEST_F(SavePageRequestTest, CreateNotReadyRequest) {
|
| + base::Time creation_time = base::Time::Now();
|
| + base::Time activation_time = creation_time + base::TimeDelta::FromHours(6);
|
| + SavePageRequest request(kRequestId, kUrl, kClientId, creation_time,
|
| + activation_time);
|
| +
|
| + ASSERT_EQ(kRequestId, request.request_id());
|
| + ASSERT_EQ(kUrl, request.url());
|
| + ASSERT_EQ(kClientId, request.client_id());
|
| + ASSERT_EQ(creation_time, request.creation_time());
|
| + ASSERT_EQ(activation_time, request.activation_time());
|
| + ASSERT_EQ(base::Time(), request.last_attempt_time());
|
| + ASSERT_EQ(0, request.attempt_count());
|
| +
|
| + base::Time not_ready_time = activation_time - base::TimeDelta::FromHours(3);
|
| + ASSERT_EQ(SavePageRequest::Status::kNotReady,
|
| + request.GetStatus(not_ready_time));
|
| +
|
| + base::Time ready_time = activation_time + base::TimeDelta::FromHours(3);
|
| + ASSERT_EQ(SavePageRequest::Status::kPending, request.GetStatus(ready_time));
|
| +}
|
| +
|
| +TEST_F(SavePageRequestTest, StartAndCompleteRequest) {
|
| + base::Time creation_time = base::Time::Now();
|
| + base::Time activation_time = creation_time + base::TimeDelta::FromHours(6);
|
| + SavePageRequest request(kRequestId, kUrl, kClientId, creation_time,
|
| + activation_time);
|
| +
|
| + base::Time start_time = activation_time + base::TimeDelta::FromHours(3);
|
| + request.MarkAttemptStarted(start_time);
|
| +
|
| + // Most things don't change about the request.
|
| + ASSERT_EQ(kRequestId, request.request_id());
|
| + ASSERT_EQ(kUrl, request.url());
|
| + ASSERT_EQ(kClientId, request.client_id());
|
| + ASSERT_EQ(creation_time, request.creation_time());
|
| + ASSERT_EQ(activation_time, request.activation_time());
|
| +
|
| + // Attempt time, attempt count and status will though.
|
| + ASSERT_EQ(start_time, request.last_attempt_time());
|
| + ASSERT_EQ(1, request.attempt_count());
|
| +
|
| + ASSERT_EQ(SavePageRequest::Status::kStarted, request.GetStatus(start_time));
|
| +
|
| + request.MarkAttemptCompleted();
|
| +
|
| + // Again, most things don't change about the request.
|
| + ASSERT_EQ(kRequestId, request.request_id());
|
| + ASSERT_EQ(kUrl, request.url());
|
| + ASSERT_EQ(kClientId, request.client_id());
|
| + ASSERT_EQ(creation_time, request.creation_time());
|
| + ASSERT_EQ(activation_time, request.activation_time());
|
| +
|
| + // Last attempt time and status will. Attempt count also unchanged.
|
| + ASSERT_EQ(base::Time(), request.last_attempt_time());
|
| + ASSERT_EQ(1, request.attempt_count());
|
| +
|
| + ASSERT_EQ(SavePageRequest::Status::kPending, request.GetStatus(start_time));
|
| +}
|
| +
|
| +} // offline_pages
|
|
|