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

Unified Diff: components/previews/previews_ui_service_unittest.cc

Issue 2300213002: Adding an IO Data and keyed service to previews/ (Closed)
Patch Set: thestig comments Created 4 years, 3 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/previews/previews_ui_service_unittest.cc
diff --git a/components/previews/previews_ui_service_unittest.cc b/components/previews/previews_ui_service_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..6080ce27c1fef9da5ba1032a641f02730484b03c
--- /dev/null
+++ b/components/previews/previews_ui_service_unittest.cc
@@ -0,0 +1,83 @@
+// Copyright 2016 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.
+
+#include "components/previews/previews_ui_service.h"
+
+#include <memory>
+
+#include "base/memory/ptr_util.h"
+#include "base/memory/ref_counted.h"
+#include "base/message_loop/message_loop.h"
+#include "base/single_thread_task_runner.h"
+#include "components/previews/previews_io_data.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace previews {
+
+namespace {
+
+class TestPreviewsUIService : public PreviewsUIService {
+ public:
+ TestPreviewsUIService(
+ PreviewsIOData* previews_io_data,
+ const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner)
+ : PreviewsUIService(previews_io_data, io_task_runner),
+ io_data_set_(false) {}
+ ~TestPreviewsUIService() override {}
+
+ // Set |io_data_set_| to true and use base class functionality.
+ void SetIOData(base::WeakPtr<PreviewsIOData> previews_io_data) override {
+ io_data_set_ = true;
+ PreviewsUIService::SetIOData(previews_io_data);
+ }
+
+ // Whether SetIOData was called.
+ bool io_data_set() { return io_data_set_; }
+
+ private:
+ // Whether SetIOData was called.
+ bool io_data_set_;
+};
+
+class PreviewsUIServiceTest : public testing::Test {
+ public:
+ PreviewsUIServiceTest() {}
+
+ ~PreviewsUIServiceTest() override {}
+
+ void set_io_data(std::unique_ptr<PreviewsIOData> io_data) {
+ io_data_ = std::move(io_data);
+ }
+
+ PreviewsIOData* io_data() { return io_data_.get(); }
+
+ void set_ui_service(std::unique_ptr<TestPreviewsUIService> ui_service) {
+ ui_service_ = std::move(ui_service);
+ }
+
+ TestPreviewsUIService* ui_service() { return ui_service_.get(); }
+
+ protected:
+ // Run this test on a single thread.
+ base::MessageLoopForIO loop_;
+
+ private:
+ std::unique_ptr<PreviewsIOData> io_data_;
+ std::unique_ptr<TestPreviewsUIService> ui_service_;
+};
+
+} // namespace
+
+TEST_F(PreviewsUIServiceTest, TestInitialization) {
+ set_io_data(base::WrapUnique(
+ new PreviewsIOData(loop_.task_runner(), loop_.task_runner())));
+ set_ui_service(base::WrapUnique(
+ new TestPreviewsUIService(io_data(), loop_.task_runner())));
+ loop_.RunUntilIdle();
+ // After the outstanding posted tasks have run, SetIOData should have been
+ // called for |ui_service_|.
+ EXPECT_TRUE(ui_service()->io_data_set());
+}
+
+} // namespace previews
« chrome/browser/profiles/profile_impl_io_data.cc ('K') | « components/previews/previews_ui_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698