| Index: components/offline_pages/offline_page_model_unittest.cc
|
| diff --git a/components/offline_pages/offline_page_model_unittest.cc b/components/offline_pages/offline_page_model_unittest.cc
|
| index a2df42e4b3aaba17f956ed40d87e71ff3598d2ae..e0d824e136157748546269287cc9584d66d43984 100644
|
| --- a/components/offline_pages/offline_page_model_unittest.cc
|
| +++ b/components/offline_pages/offline_page_model_unittest.cc
|
| @@ -12,12 +12,11 @@
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/run_loop.h"
|
| #include "base/single_thread_task_runner.h"
|
| -#include "base/strings/string16.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| #include "base/time/time.h"
|
| #include "components/bookmarks/browser/bookmark_node.h"
|
| #include "components/offline_pages/offline_page_item.h"
|
| -#include "components/offline_pages/offline_page_metadata_store.h"
|
| +#include "components/offline_pages/offline_page_test_archiver.h"
|
| +#include "components/offline_pages/offline_page_test_store.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "url/gurl.h"
|
|
|
| @@ -36,158 +35,12 @@ const int64 kTestPageBookmarkId2 = 5678LL;
|
| const int64 kTestPageBookmarkId3 = 42LL;
|
| const int64 kTestFileSize = 876543LL;
|
|
|
| -class OfflinePageTestStore : public OfflinePageMetadataStore {
|
| - public:
|
| - enum class TestScenario {
|
| - SUCCESSFUL,
|
| - WRITE_FAILED,
|
| - LOAD_FAILED,
|
| - REMOVE_FAILED,
|
| - };
|
| -
|
| - explicit OfflinePageTestStore(
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& task_runner);
|
| - explicit OfflinePageTestStore(const OfflinePageTestStore& other_store);
|
| - ~OfflinePageTestStore() override;
|
| -
|
| - // OfflinePageMetadataStore overrides:
|
| - void Load(const LoadCallback& callback) override;
|
| - void AddOrUpdateOfflinePage(const OfflinePageItem& offline_page,
|
| - const UpdateCallback& callback) override;
|
| - void RemoveOfflinePages(const std::vector<int64>& bookmark_ids,
|
| - const UpdateCallback& callback) override;
|
| - void Reset(const ResetCallback& callback) override;
|
| -
|
| - void UpdateLastAccessTime(int64 bookmark_id,
|
| - const base::Time& last_access_time);
|
| -
|
| - const OfflinePageItem& last_saved_page() const { return last_saved_page_; }
|
| -
|
| - void set_test_scenario(TestScenario scenario) { scenario_ = scenario; };
|
| -
|
| - const std::vector<OfflinePageItem>& offline_pages() const {
|
| - return offline_pages_;
|
| - }
|
| -
|
| - private:
|
| - OfflinePageItem last_saved_page_;
|
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
| - TestScenario scenario_;
|
| -
|
| - std::vector<OfflinePageItem> offline_pages_;
|
| -
|
| - DISALLOW_ASSIGN(OfflinePageTestStore);
|
| -};
|
| -
|
| -OfflinePageTestStore::OfflinePageTestStore(
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& task_runner)
|
| - : task_runner_(task_runner),
|
| - scenario_(TestScenario::SUCCESSFUL) {
|
| -}
|
| -
|
| -OfflinePageTestStore::OfflinePageTestStore(
|
| - const OfflinePageTestStore& other_store)
|
| - : task_runner_(other_store.task_runner_),
|
| - scenario_(other_store.scenario_),
|
| - offline_pages_(other_store.offline_pages_) {}
|
| -
|
| -OfflinePageTestStore::~OfflinePageTestStore() {
|
| -}
|
| -
|
| -void OfflinePageTestStore::Load(const LoadCallback& callback) {
|
| - OfflinePageMetadataStore::LoadStatus load_status;
|
| - if (scenario_ != TestScenario::LOAD_FAILED) {
|
| - load_status = OfflinePageMetadataStore::LOAD_SUCCEEDED;
|
| - } else {
|
| - load_status = OfflinePageMetadataStore::STORE_LOAD_FAILED;
|
| - offline_pages_.clear();
|
| - }
|
| - task_runner_->PostTask(
|
| - FROM_HERE, base::Bind(callback, load_status, offline_pages_));
|
| -}
|
| -
|
| -void OfflinePageTestStore::AddOrUpdateOfflinePage(
|
| - const OfflinePageItem& offline_page, const UpdateCallback& callback) {
|
| - last_saved_page_ = offline_page;
|
| - bool result = scenario_ != TestScenario::WRITE_FAILED;
|
| - if (result) {
|
| - offline_pages_.push_back(offline_page);
|
| - }
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(callback, result));
|
| -}
|
| -
|
| -void OfflinePageTestStore::RemoveOfflinePages(
|
| - const std::vector<int64>& bookmark_ids,
|
| - const UpdateCallback& callback) {
|
| - ASSERT_FALSE(bookmark_ids.empty());
|
| - bool result = false;
|
| - if (scenario_ != TestScenario::REMOVE_FAILED) {
|
| - for (auto iter = offline_pages_.begin();
|
| - iter != offline_pages_.end(); ++iter) {
|
| - if (iter->bookmark_id == bookmark_ids[0]) {
|
| - offline_pages_.erase(iter);
|
| - result = true;
|
| - break;
|
| - }
|
| - }
|
| - }
|
| -
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(callback, result));
|
| -}
|
| -
|
| -void OfflinePageTestStore::Reset(const ResetCallback& callback) {
|
| - offline_pages_.clear();
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(callback, true));
|
| -}
|
| -
|
| -void OfflinePageTestStore:: UpdateLastAccessTime(
|
| - int64 bookmark_id, const base::Time& last_access_time) {
|
| - for (auto& offline_page : offline_pages_) {
|
| - if (offline_page.bookmark_id == bookmark_id) {
|
| - offline_page.last_access_time = last_access_time;
|
| - return;
|
| - }
|
| - }
|
| -}
|
| -
|
| } // namespace
|
|
|
| -class OfflinePageModelTest;
|
| -
|
| -class OfflinePageTestArchiver : public OfflinePageArchiver {
|
| - public:
|
| - OfflinePageTestArchiver(
|
| - OfflinePageModelTest* test,
|
| - const GURL& url,
|
| - ArchiverResult result,
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& task_runner);
|
| - ~OfflinePageTestArchiver() override;
|
| -
|
| - // OfflinePageArchiver implementation:
|
| - void CreateArchive(const base::FilePath& archives_dir,
|
| - const CreateArchiveCallback& callback) override;
|
| -
|
| - void CompleteCreateArchive();
|
| -
|
| - void set_delayed(bool delayed) { delayed_ = delayed; }
|
| -
|
| - bool create_archive_called() const { return create_archive_called_; }
|
| -
|
| - private:
|
| - OfflinePageModelTest* test_; // Outlive OfflinePageTestArchiver.
|
| - GURL url_;
|
| - base::FilePath archives_dir_;
|
| - ArchiverResult result_;
|
| - bool create_archive_called_;
|
| - bool delayed_;
|
| - CreateArchiveCallback callback_;
|
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
| - DISALLOW_COPY_AND_ASSIGN(OfflinePageTestArchiver);
|
| -};
|
| -
|
| class OfflinePageModelTest
|
| : public testing::Test,
|
| public OfflinePageModel::Observer,
|
| + public OfflinePageTestArchiver::Observer,
|
| public base::SupportsWeakPtr<OfflinePageModelTest> {
|
| public:
|
| OfflinePageModelTest();
|
| @@ -201,6 +54,9 @@ class OfflinePageModelTest
|
| void OfflinePageModelChanged(OfflinePageModel* model) override;
|
| void OfflinePageDeleted(int64 bookmark_id) override;
|
|
|
| + // OfflinePageTestArchiver::Observer implementation.
|
| + void SetLastPathCreatedByArchiver(const base::FilePath& file_path) override;
|
| +
|
| // OfflinePageModel callbacks.
|
| void OnSavePageDone(SavePageResult result);
|
| void OnDeletePageDone(DeletePageResult result);
|
| @@ -242,9 +98,6 @@ class OfflinePageModelTest
|
| }
|
|
|
| const base::FilePath& last_archiver_path() { return last_archiver_path_; }
|
| - void set_last_archiver_path(const base::FilePath& last_archiver_path) {
|
| - last_archiver_path_ = last_archiver_path;
|
| - }
|
|
|
| private:
|
| base::MessageLoop message_loop_;
|
| @@ -257,42 +110,6 @@ class OfflinePageModelTest
|
| int64 last_deleted_bookmark_id_;
|
| };
|
|
|
| -OfflinePageTestArchiver::OfflinePageTestArchiver(
|
| - OfflinePageModelTest* test,
|
| - const GURL& url,
|
| - ArchiverResult result,
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& task_runner)
|
| - : test_(test),
|
| - url_(url),
|
| - result_(result),
|
| - create_archive_called_(false),
|
| - delayed_(false),
|
| - task_runner_(task_runner) {
|
| -}
|
| -
|
| -OfflinePageTestArchiver::~OfflinePageTestArchiver() {
|
| - EXPECT_TRUE(create_archive_called_);
|
| -}
|
| -
|
| -void OfflinePageTestArchiver::CreateArchive(
|
| - const base::FilePath& archives_dir,
|
| - const CreateArchiveCallback& callback) {
|
| - create_archive_called_ = true;
|
| - callback_ = callback;
|
| - archives_dir_ = archives_dir;
|
| - if (!delayed_)
|
| - CompleteCreateArchive();
|
| -}
|
| -
|
| -void OfflinePageTestArchiver::CompleteCreateArchive() {
|
| - DCHECK(!callback_.is_null());
|
| - base::FilePath archive_path;
|
| - ASSERT_TRUE(base::CreateTemporaryFileInDir(archives_dir_, &archive_path));
|
| - test_->set_last_archiver_path(archive_path);
|
| - task_runner_->PostTask(FROM_HERE, base::Bind(callback_, this, result_, url_,
|
| - archive_path, kTestFileSize));
|
| -}
|
| -
|
| OfflinePageModelTest::OfflinePageModelTest()
|
| : last_save_result_(SavePageResult::CANCELLED),
|
| last_delete_result_(DeletePageResult::CANCELLED),
|
| @@ -326,6 +143,11 @@ void OfflinePageModelTest::OfflinePageDeleted(int64 bookmark_id) {
|
| last_deleted_bookmark_id_ = bookmark_id;
|
| }
|
|
|
| +void OfflinePageModelTest::SetLastPathCreatedByArchiver(
|
| + const base::FilePath& file_path) {
|
| + last_archiver_path_ = file_path;
|
| +}
|
| +
|
| void OfflinePageModelTest::OnSavePageDone(
|
| OfflinePageModel::SavePageResult result) {
|
| last_save_result_ = result;
|
| @@ -345,8 +167,8 @@ void OfflinePageModelTest::OnStoreUpdateDone(bool /* success - ignored */) {
|
| scoped_ptr<OfflinePageTestArchiver> OfflinePageModelTest::BuildArchiver(
|
| const GURL& url,
|
| OfflinePageArchiver::ArchiverResult result) {
|
| - return scoped_ptr<OfflinePageTestArchiver>(
|
| - new OfflinePageTestArchiver(this, url, result, task_runner()));
|
| + return scoped_ptr<OfflinePageTestArchiver>(new OfflinePageTestArchiver(
|
| + this, url, result, kTestFileSize, task_runner()));
|
| }
|
|
|
| scoped_ptr<OfflinePageMetadataStore> OfflinePageModelTest::BuildStore() {
|
|
|