Index: chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc |
diff --git a/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc b/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..066d1d11d10ae8a32b78887e2c52d64fa1c6fa5f |
--- /dev/null |
+++ b/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc |
@@ -0,0 +1,94 @@ |
+// 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 "chrome/browser/android/offline_pages/background_loader_offliner.h" |
+ |
+#include "components/offline_pages/content/background_loader/background_loader_contents_stub.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace offline_pages { |
+ |
+namespace { |
+ |
+const int64_t kRequestId = 7; |
+const GURL kHttpUrl("http://tunafish.com"); |
+const GURL kFileUrl("file://salmon.png"); |
+const ClientId kClientId("AsyncLoading", "88"); |
+const bool kUserRequested = true; |
+ |
+// A BackgroundLoader that we can run tests on. |
+// Overrides the ResetState so we don't actually try to create any web contents. |
+// This is a temporary solution to test core BackgroundLoaderOffliner |
+// functionality until we straighten out assumptions made by RequestCoordinator |
+// so that the ResetState method is no longer needed. |
+class TestBackgroundLoaderOffliner |
+ : public BackgroundLoaderOffliner { |
+ public: |
+ explicit TestBackgroundLoaderOffliner( |
+ content::BrowserContext* browser_context, |
+ const OfflinerPolicy* policy, |
+ OfflinePageModel* offline_page_model); |
+ ~TestBackgroundLoaderOffliner() override; |
+ content::WebContents* web_contents() { |
+ return BackgroundLoaderOffliner::loader_.get()->web_contents(); |
+ } |
+ |
+ private: |
+ void ResetState() override; |
+}; |
+ |
+TestBackgroundLoaderOffliner::TestBackgroundLoaderOffliner( |
+ content::BrowserContext* browser_context, |
+ const OfflinerPolicy* policy, |
+ OfflinePageModel* offline_page_model) |
+ : BackgroundLoaderOffliner(browser_context, |
+ policy, |
+ offline_page_model) {} |
+ |
+TestBackgroundLoaderOffliner::~TestBackgroundLoaderOffliner() { |
+ BackgroundLoaderOffliner::~BackgroundLoaderOffliner(); |
+} |
+ |
+void TestBackgroundLoaderOffliner::ResetState() { |
+ BackgroundLoaderOffliner::loader_.reset( |
+ new BackgroundLoaderContentsStub()); |
+} |
+} // namespace |
+ |
+class BackgroundLoaderOfflinerTest : public testing::Test { |
+ public: |
+ BackgroundLoaderOfflinerTest(); |
+ ~BackgroundLoaderOfflinerTest() override; |
+ |
+ void SetUp() override; |
+ |
+ BackgroundLoaderOffliner* offliner() const { return offliner_.get(); } |
+ Profile* profile() { return &profile_; } |
+ |
+ private: |
+ TestingProfile profile_; |
+ std::unique_ptr<TestBackgroundLoaderOffliner> offliner_; |
+ MockOfflinePageModel* model_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(BackgroundLoaderOfflinerTest); |
+}; |
+ |
+BackgroundLoaderOfflinerTest::BackgroundLoaderOfflinerTest() {} |
+ |
+BackgroundLoaderOfflinerTest::~BackgroundLoaderOfflinerTest() {} |
+ |
+void BackgroundLoaderOfflinerTest::SetUp() { |
+ model_ = new MockOfflinePageModel(); |
+ offliner_.reset(new TestBackgroundLoaderOffliner(profile(), nullptr, model_)); |
+} |
+ |
+TEST_F(BackgroundLoaderOfflinerTest, LoadAndSaveUrl) { |
+ base::Time creation_time = base::Time::Now(); |
+ SavePageRequest request( |
+ kRequestId, kFileUrl, kClientId, creation_time, kUserRequested); |
+ |
+} |
+ |
+ |
+} // namespace offline_pages |