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

Unified Diff: components/offline_pages/core/prefetch/prefetch_dispatcher_impl_unittest.cc

Issue 2879013002: Create skeleton for the Prefetching store and initial pipeline step. (Closed)
Patch Set: Dispatcher instance is now injected into Service. Minor changes. Created 3 years, 7 months 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/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

Powered by Google App Engine
This is Rietveld 408576698