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

Side by Side Diff: content/child/shared_memory_data_consumer_handle_unittest.cc

Issue 2177243002: Use per-frame TaskRunner instead of thread's default in DataConsumerHandle (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@data_consumer_handle_unique_ptr
Patch Set: update Created 4 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/child/shared_memory_data_consumer_handle.h" 5 #include "content/child/shared_memory_data_consumer_handle.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <string> 10 #include <string>
11 #include <utility> 11 #include <utility>
12 #include <vector> 12 #include <vector>
13 13
14 #include "base/bind.h" 14 #include "base/bind.h"
15 #include "base/callback.h" 15 #include "base/callback.h"
16 #include "base/location.h" 16 #include "base/location.h"
17 #include "base/macros.h" 17 #include "base/macros.h"
18 #include "base/memory/ptr_util.h" 18 #include "base/memory/ptr_util.h"
19 #include "base/message_loop/message_loop.h" 19 #include "base/message_loop/message_loop.h"
20 #include "base/run_loop.h" 20 #include "base/run_loop.h"
21 #include "base/single_thread_task_runner.h" 21 #include "base/single_thread_task_runner.h"
22 #include "base/task_runner.h" 22 #include "base/task_runner.h"
23 #include "base/threading/thread.h" 23 #include "base/threading/thread.h"
24 #include "base/threading/thread_task_runner_handle.h" 24 #include "base/threading/thread_task_runner_handle.h"
25 #include "content/public/child/fixed_received_data.h" 25 #include "content/public/child/fixed_received_data.h"
26 #include "testing/gmock/include/gmock/gmock.h" 26 #include "testing/gmock/include/gmock/gmock.h"
27 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
28 #include "third_party/WebKit/public/platform/WebTaskRunner.h"
28 29
29 namespace content { 30 namespace content {
30 31
31 namespace { 32 namespace {
32 using blink::WebDataConsumerHandle; 33 using blink::WebDataConsumerHandle;
33 using Result = WebDataConsumerHandle::Result; 34 using Result = WebDataConsumerHandle::Result;
34 using Writer = SharedMemoryDataConsumerHandle::Writer; 35 using Writer = SharedMemoryDataConsumerHandle::Writer;
35 using BackpressureMode = SharedMemoryDataConsumerHandle::BackpressureMode; 36 using BackpressureMode = SharedMemoryDataConsumerHandle::BackpressureMode;
36 const BackpressureMode kApplyBackpressure = 37 const BackpressureMode kApplyBackpressure =
37 SharedMemoryDataConsumerHandle::kApplyBackpressure; 38 SharedMemoryDataConsumerHandle::kApplyBackpressure;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 MOCK_METHOD0(Call, void(void)); 105 MOCK_METHOD0(Call, void(void));
105 106
106 protected: 107 protected:
107 friend class base::RefCountedThreadSafe<DestructionTrackingFunction>; 108 friend class base::RefCountedThreadSafe<DestructionTrackingFunction>;
108 virtual ~DestructionTrackingFunction() { Destruct(); } 109 virtual ~DestructionTrackingFunction() { Destruct(); }
109 }; 110 };
110 111
111 class MockClient : public WebDataConsumerHandle::Client { 112 class MockClient : public WebDataConsumerHandle::Client {
112 public: 113 public:
113 MOCK_METHOD0(didGetReadable, void()); 114 MOCK_METHOD0(didGetReadable, void());
115 MOCK_METHOD0(getTaskRunner, blink::WebTaskRunner*());
114 }; 116 };
115 117
116 std::string ToString(const void* p, size_t size) { 118 std::string ToString(const void* p, size_t size) {
117 const char* q = static_cast<const char*>(p); 119 const char* q = static_cast<const char*>(p);
118 return std::string(q, q + size); 120 return std::string(q, q + size);
119 } 121 }
120 122
121 class ThreadedSharedMemoryDataConsumerHandleTest : public ::testing::Test { 123 class ThreadedSharedMemoryDataConsumerHandleTest : public ::testing::Test {
122 protected: 124 protected:
123 class ReadDataOperation; 125 class ReadDataOperation;
124 class ClientImpl final : public WebDataConsumerHandle::Client { 126 class ClientImpl final : public WebDataConsumerHandle::Client {
125 public: 127 public:
126 explicit ClientImpl(ReadDataOperation* operation) : operation_(operation) {} 128 explicit ClientImpl(ReadDataOperation* operation) : operation_(operation) {}
127 129
128 void didGetReadable() override { operation_->ReadData(); } 130 void didGetReadable() override { operation_->ReadData(); }
131 blink::WebTaskRunner* getTaskRunner() override {
132 return nullptr;
133 }
129 134
130 private: 135 private:
131 ReadDataOperation* operation_; 136 ReadDataOperation* operation_;
132 }; 137 };
133 138
134 class ReadDataOperation final { 139 class ReadDataOperation final {
135 public: 140 public:
136 typedef WebDataConsumerHandle::Result Result; 141 typedef WebDataConsumerHandle::Result Result;
137 ReadDataOperation(std::unique_ptr<SharedMemoryDataConsumerHandle> handle, 142 ReadDataOperation(std::unique_ptr<SharedMemoryDataConsumerHandle> handle,
138 base::MessageLoop* main_message_loop, 143 base::MessageLoop* main_message_loop,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 std::unique_ptr<WebDataConsumerHandle::Reader> reader_; 185 std::unique_ptr<WebDataConsumerHandle::Reader> reader_;
181 std::unique_ptr<WebDataConsumerHandle::Client> client_; 186 std::unique_ptr<WebDataConsumerHandle::Client> client_;
182 base::MessageLoop* main_message_loop_; 187 base::MessageLoop* main_message_loop_;
183 base::Closure on_done_; 188 base::Closure on_done_;
184 std::string result_; 189 std::string result_;
185 }; 190 };
186 191
187 void SetUp() override { 192 void SetUp() override {
188 handle_.reset( 193 handle_.reset(
189 new SharedMemoryDataConsumerHandle(kApplyBackpressure, &writer_)); 194 new SharedMemoryDataConsumerHandle(kApplyBackpressure, &writer_));
195 EXPECT_CALL(client_, getTaskRunner()).WillRepeatedly(Return(nullptr));
190 } 196 }
191 197
192 StrictMock<MockClient> client_; 198 StrictMock<MockClient> client_;
193 std::unique_ptr<SharedMemoryDataConsumerHandle> handle_; 199 std::unique_ptr<SharedMemoryDataConsumerHandle> handle_;
194 std::unique_ptr<Writer> writer_; 200 std::unique_ptr<Writer> writer_;
195 base::MessageLoop loop_; 201 base::MessageLoop loop_;
196 }; 202 };
197 203
198 class SharedMemoryDataConsumerHandleTest 204 class SharedMemoryDataConsumerHandleTest
199 : public ::testing::TestWithParam<BackpressureMode> { 205 : public ::testing::TestWithParam<BackpressureMode> {
200 protected: 206 protected:
201 void SetUp() override { 207 void SetUp() override {
202 handle_.reset(new SharedMemoryDataConsumerHandle(GetParam(), &writer_)); 208 handle_.reset(new SharedMemoryDataConsumerHandle(GetParam(), &writer_));
209 EXPECT_CALL(client_, getTaskRunner()).WillRepeatedly(Return(nullptr));
203 } 210 }
204 std::unique_ptr<FixedReceivedData> NewFixedData(const char* s) { 211 std::unique_ptr<FixedReceivedData> NewFixedData(const char* s) {
205 auto size = strlen(s); 212 auto size = strlen(s);
206 return base::WrapUnique(new FixedReceivedData(s, size, size, size)); 213 return base::WrapUnique(new FixedReceivedData(s, size, size, size));
207 } 214 }
208 215
209 StrictMock<MockClient> client_; 216 StrictMock<MockClient> client_;
210 std::unique_ptr<SharedMemoryDataConsumerHandle> handle_; 217 std::unique_ptr<SharedMemoryDataConsumerHandle> handle_;
211 std::unique_ptr<Writer> writer_; 218 std::unique_ptr<Writer> writer_;
212 base::MessageLoop loop_; 219 base::MessageLoop loop_;
(...skipping 838 matching lines...) Expand 10 before | Expand all | Expand 10 after
1051 logger->log()); 1058 logger->log());
1052 } 1059 }
1053 1060
1054 INSTANTIATE_TEST_CASE_P(SharedMemoryDataConsumerHandleTest, 1061 INSTANTIATE_TEST_CASE_P(SharedMemoryDataConsumerHandleTest,
1055 SharedMemoryDataConsumerHandleTest, 1062 SharedMemoryDataConsumerHandleTest,
1056 ::testing::Values(kApplyBackpressure, 1063 ::testing::Values(kApplyBackpressure,
1057 kDoNotApplyBackpressure)); 1064 kDoNotApplyBackpressure));
1058 } // namespace 1065 } // namespace
1059 1066
1060 } // namespace content 1067 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698