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

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: Made construction params a cost&. 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..6f105937dddf4db589c36ceb1e5550c67603a64f 100644
--- a/components/offline_pages/core/prefetch/prefetch_dispatcher_impl_unittest.cc
+++ b/components/offline_pages/core/prefetch/prefetch_dispatcher_impl_unittest.cc
@@ -4,21 +4,106 @@
#include "components/offline_pages/core/prefetch/prefetch_dispatcher_impl.h"
+#include "base/logging.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_in_memory_store.h"
+#include "components/offline_pages/core/prefetch/prefetch_service.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:
+ OfflineMetricsCollector* GetOfflineMetricsCollector() override;
+ PrefetchDispatcher* GetPrefetchDispatcher() override;
+ PrefetchGCMHandler* GetPrefetchGCMHandler() override;
+ PrefetchStore* GetPrefetchStore() override;
+ void ObserveContentSuggestionsService(
+ ntp_snippets::ContentSuggestionsService* service) override;
+
+ // KeyedService implementation.
+ void Shutdown() override {}
+
+ void PumpLoop();
+
+ TaskQueue* dispatcher_task_queue() { return &dispatcher_impl_->task_queue_; }
+
+ private:
+ std::unique_ptr<PrefetchInMemoryStore> in_memory_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());
+ in_memory_store_ = base::MakeUnique<PrefetchInMemoryStore>();
+ dispatcher_impl_ = base::MakeUnique<PrefetchDispatcherImpl>();
+ dispatcher_impl_->SetService(this);
+}
+
+void PrefetchDispatcherTest::TearDown() {
+ task_runner_->ClearPendingTasks();
+}
+
+OfflineMetricsCollector* PrefetchDispatcherTest::GetOfflineMetricsCollector() {
+ NOTREACHED();
+ return nullptr;
+}
+
+PrefetchDispatcher* PrefetchDispatcherTest::GetPrefetchDispatcher() {
+ return dispatcher_impl_.get();
+}
+
+PrefetchGCMHandler* PrefetchDispatcherTest::GetPrefetchGCMHandler() {
+ NOTREACHED();
+ return nullptr;
+}
+
+PrefetchStore* PrefetchDispatcherTest::GetPrefetchStore() {
+ return in_memory_store_.get();
+}
+
+void PrefetchDispatcherTest::ObserveContentSuggestionsService(
+ ntp_snippets::ContentSuggestionsService* service) {
+ NOTREACHED();
+}
+
+void PrefetchDispatcherTest::PumpLoop() {
+ task_runner_->RunUntilIdle();
+}
+
+TEST_F(PrefetchDispatcherTest, DispatcherDoesNotCrash) {
+ GetPrefetchDispatcher()->AddCandidatePrefetchURLs(std::vector<PrefetchURL>());
+ GetPrefetchDispatcher()->RemoveAllUnprocessedPrefetchURLs(
+ kSuggestedArticlesNamespace);
+ GetPrefetchDispatcher()->RemovePrefetchURLsByClientId(
+ {kSuggestedArticlesNamespace, "123"});
+}
+
+TEST_F(PrefetchDispatcherTest, AddCandidatePrefetchURLsTask) {
+ GetPrefetchDispatcher()->AddCandidatePrefetchURLs(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