| Index: components/offline_pages/core/prefetch/prefetch_dispatcher_impl_unittest.cc
|
| diff --git a/components/offline_pages/core/prefetch/prefetch_dispatcher_impl_unittest.cc b/components/offline_pages/core/prefetch/prefetch_dispatcher_impl_unittest.cc
|
| index 0a0bd961d48bad5e40043b5722d0a71b2c1c900c..c2c815daea9e37859a5557ee90137e0ee1e65375 100644
|
| --- a/components/offline_pages/core/prefetch/prefetch_dispatcher_impl_unittest.cc
|
| +++ b/components/offline_pages/core/prefetch/prefetch_dispatcher_impl_unittest.cc
|
| @@ -5,20 +5,81 @@
|
| #include "components/offline_pages/core/prefetch/prefetch_dispatcher_impl.h"
|
|
|
| #include "base/memory/ptr_util.h"
|
| +#include "base/test/test_simple_task_runner.h"
|
| +#include "base/threading/thread_task_runner_handle.h"
|
| #include "components/offline_pages/core/client_namespace_constants.h"
|
| -#include "components/offline_pages/core/prefetch/prefetch_dispatcher.h"
|
| +#include "components/offline_pages/core/prefetch/prefetch_service.h"
|
| +#include "components/offline_pages/core/prefetch/prefetch_test_store.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| -#include "url/gurl.h"
|
|
|
| namespace offline_pages {
|
|
|
| -TEST(PrefetchDispatcherTest, DispatcherDoesNotCrash) {
|
| - PrefetchDispatcherImpl dispatcher;
|
| +class PrefetchDispatcherTest : public testing::Test, public PrefetchService {
|
| + public:
|
| + PrefetchDispatcherTest();
|
|
|
| - dispatcher.AddCandidatePrefetchURLs(
|
| - std::vector<PrefetchDispatcher::PrefetchURL>());
|
| - dispatcher.RemoveAllUnprocessedPrefetchURLs(kSuggestedArticlesNamespace);
|
| - dispatcher.RemovePrefetchURLsByClientId({kSuggestedArticlesNamespace, "123"});
|
| + // Test implementation.
|
| + void SetUp() override;
|
| + void TearDown() override;
|
| +
|
| + // PrefetchService implementation.
|
| + PrefetchDispatcher* GetDispatcher() override {
|
| + return dispatcher_impl_.get();
|
| + }
|
| + PrefetchStore* GetStore() override { return test_store_.get(); }
|
| +
|
| + // KeyedService implementation.
|
| + void Shutdown() override {}
|
| +
|
| + void PumpLoop();
|
| +
|
| + TaskQueue* dispatcher_task_queue() { return &dispatcher_impl_->task_queue_; }
|
| +
|
| + private:
|
| + std::unique_ptr<PrefetchTestStore> test_store_;
|
| + std::unique_ptr<PrefetchDispatcherImpl> dispatcher_impl_;
|
| +
|
| + scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
|
| + base::ThreadTaskRunnerHandle task_runner_handle_;
|
| +};
|
| +
|
| +PrefetchDispatcherTest::PrefetchDispatcherTest()
|
| + : task_runner_(new base::TestSimpleTaskRunner),
|
| + task_runner_handle_(task_runner_) {}
|
| +
|
| +void PrefetchDispatcherTest::SetUp() {
|
| + ASSERT_EQ(base::ThreadTaskRunnerHandle::Get(), task_runner_);
|
| + ASSERT_FALSE(task_runner_->HasPendingTask());
|
| + test_store_ = base::MakeUnique<PrefetchTestStore>();
|
| + dispatcher_impl_ = base::MakeUnique<PrefetchDispatcherImpl>();
|
| + dispatcher_impl_->SetService(this);
|
| +}
|
| +
|
| +void PrefetchDispatcherTest::TearDown() {
|
| + task_runner_->ClearPendingTasks();
|
| +}
|
| +
|
| +void PrefetchDispatcherTest::PumpLoop() {
|
| + task_runner_->RunUntilIdle();
|
| +}
|
| +
|
| +TEST_F(PrefetchDispatcherTest, DispatcherDoesNotCrash) {
|
| + GetDispatcher()->AddCandidatePrefetchURLs(kSuggestedArticlesNamespace,
|
| + std::vector<PrefetchURL>());
|
| + GetDispatcher()->RemoveAllUnprocessedPrefetchURLs(
|
| + kSuggestedArticlesNamespace);
|
| + GetDispatcher()->RemovePrefetchURLsByClientId(kSuggestedArticlesNamespace,
|
| + "123");
|
| +}
|
| +
|
| +TEST_F(PrefetchDispatcherTest, AddCandidatePrefetchURLsTask) {
|
| + GetDispatcher()->AddCandidatePrefetchURLs(kSuggestedArticlesNamespace,
|
| + std::vector<PrefetchURL>());
|
| + EXPECT_TRUE(dispatcher_task_queue()->HasPendingTasks());
|
| + EXPECT_TRUE(dispatcher_task_queue()->HasRunningTask());
|
| + PumpLoop();
|
| + EXPECT_FALSE(dispatcher_task_queue()->HasPendingTasks());
|
| + EXPECT_FALSE(dispatcher_task_queue()->HasRunningTask());
|
| }
|
|
|
| } // namespace offline_pages
|
|
|