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

Unified Diff: Source/modules/fetch/DataConsumerHandleTestUtil.cpp

Issue 1210693002: Move Handle in TeeTest and MockFetchDataLoaderClient to TestUtil (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 6 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: Source/modules/fetch/DataConsumerHandleTestUtil.cpp
diff --git a/Source/modules/fetch/DataConsumerHandleTestUtil.cpp b/Source/modules/fetch/DataConsumerHandleTestUtil.cpp
index 19c76b9dbae1b1c574896af456652052acbea50c..92da77fe458f48641caa4767dd8be3d852abecc5 100644
--- a/Source/modules/fetch/DataConsumerHandleTestUtil.cpp
+++ b/Source/modules/fetch/DataConsumerHandleTestUtil.cpp
@@ -53,4 +53,59 @@ void DataConsumerHandleTestUtil::Thread::shutdown()
m_waitableEvent->signal();
}
+class DataConsumerHandleTestUtil::ReplayingHandle::ReaderImpl final : public Reader {
+public:
+ ReaderImpl(PassRefPtr<Context> context, Client* client)
+ : m_context(context)
+ {
+ m_context->attachReader(client);
+ }
+ ~ReaderImpl()
+ {
+ m_context->detachReader();
+ }
+
+ Result read(void* buffer, size_t size, Flags flags, size_t* readSize) override
+ {
+ const void* src = nullptr;
+ Result result = beginRead(&src, flags, readSize);
+ if (result != Ok)
+ return result;
+ *readSize = std::min(*readSize, size);
+ memcpy(buffer, src, *readSize);
+ return endRead(*readSize);
+ }
+ Result beginRead(const void** buffer, Flags flags, size_t* available) override
+ {
+ return m_context->beginRead(buffer, flags, available);
+ }
+ Result endRead(size_t readSize) override
+ {
+ return m_context->endRead(readSize);
+ }
+
+private:
+ RefPtr<Context> m_context;
+};
+
+DataConsumerHandleTestUtil::ReplayingHandle::ReplayingHandle()
+ : m_context(Context::create())
+{
+}
+
+DataConsumerHandleTestUtil::ReplayingHandle::~ReplayingHandle()
+{
+ m_context->detachHandle();
+}
+
+WebDataConsumerHandle::Reader* DataConsumerHandleTestUtil::ReplayingHandle::obtainReaderInternal(Client* client)
+{
+ return new ReaderImpl(m_context, client);
+}
+
+void DataConsumerHandleTestUtil::ReplayingHandle::add(const Command& command)
+{
+ m_context->add(command);
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698