Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1136)

Unified Diff: components/offline_pages/offline_page_test_archiver.h

Issue 1504243002: [Offline pages] Refactoring helper classes out from offline_page_model_unittest.cc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing gn build and addressing comments Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/offline_pages/offline_page_test_archiver.h
diff --git a/components/offline_pages/offline_page_test_archiver.h b/components/offline_pages/offline_page_test_archiver.h
new file mode 100644
index 0000000000000000000000000000000000000000..7375c1868d23cf497f1984eab9eae73946fb6a0a
--- /dev/null
+++ b/components/offline_pages/offline_page_test_archiver.h
@@ -0,0 +1,71 @@
+// Copyright 2015 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.
+
+#ifndef COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_TEST_ARCHIVER_H_
+#define COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_TEST_ARCHIVER_H_
+
+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "base/single_thread_task_runner.h"
+#include "components/offline_pages/offline_page_archiver.h"
+
+class GURL;
+
+namespace base {
+class FilePath;
+} // namespace
+
+namespace offline_pages {
+
+// A test archiver class, which allows for testing offline pages without a need
+// for an actual web contents.
+class OfflinePageTestArchiver : public OfflinePageArchiver {
+ public:
+ class Observer {
+ public:
+ virtual ~Observer() {}
+ virtual void SetLastPathCreatedByArchiver(
+ const base::FilePath& file_path) = 0;
+ };
+
+ OfflinePageTestArchiver(
+ Observer* observer,
+ const GURL& url,
+ ArchiverResult result,
+ int64 size_to_report,
+ const scoped_refptr<base::SingleThreadTaskRunner>& task_runner);
+ ~OfflinePageTestArchiver() override;
+
+ // OfflinePageArchiver implementation:
+ void CreateArchive(const base::FilePath& archives_dir,
+ const CreateArchiveCallback& callback) override;
+
+ // Completes the creation of archive. Should be used with |set_delayed| set to
+ // ture.
+ void CompleteCreateArchive();
+
+ // When set to true, |CompleteCreateArchive| should be called explicitly for
+ // the process to finish.
+ void set_delayed(bool delayed) { delayed_ = delayed; }
+
+ bool create_archive_called() const { return create_archive_called_; }
+
+ private:
+ // Not owned. Outlives OfflinePageTestArchiver.
+ Observer* observer_;
+ GURL url_;
+ base::FilePath archives_dir_;
+ ArchiverResult result_;
+ int64 size_to_report_;
+ bool create_archive_called_;
+ bool delayed_;
+ CreateArchiveCallback callback_;
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+
+ DISALLOW_COPY_AND_ASSIGN(OfflinePageTestArchiver);
+};
+
+} // namespace offline_pages
+
+#endif // COMPONENTS_OFFLINE_PAGES_OFFLINE_PAGE_TEST_ARCHIVER_H_
« no previous file with comments | « components/offline_pages/offline_page_model_unittest.cc ('k') | components/offline_pages/offline_page_test_archiver.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698