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

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

Issue 1192913007: Change BodyStreamBuffer to be FetchDataConsumerHandle-based and enable backpressure in Fetch API (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase. Created 5 years, 5 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
« no previous file with comments | « Source/modules/fetch/BodyStreamBuffer.cpp ('k') | Source/modules/fetch/FetchBlobDataConsumerHandle.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/modules/fetch/BodyStreamBufferTest.cpp
diff --git a/Source/modules/fetch/BodyStreamBufferTest.cpp b/Source/modules/fetch/BodyStreamBufferTest.cpp
index 900b9cf6b5acc186098ab7dc214cea687a1409ac..f7bc41b97c6c575a8fdba2b70ada9b89827c26c5 100644
--- a/Source/modules/fetch/BodyStreamBufferTest.cpp
+++ b/Source/modules/fetch/BodyStreamBufferTest.cpp
@@ -2,260 +2,4 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "config.h"
-#include "modules/fetch/BodyStreamBuffer.h"
-
-#include "core/dom/DOMArrayBuffer.h"
-#include "core/dom/DOMException.h"
-#include "core/dom/ExceptionCode.h"
-#include "platform/heap/Heap.h"
-#include "public/platform/Platform.h"
-#include "public/platform/WebUnitTestSupport.h"
-#include "public/platform/WebVector.h"
-#include "wtf/RefPtr.h"
-#include "wtf/testing/WTFTestHelpers.h"
-#include <gtest/gtest.h>
-
-namespace blink {
-namespace {
-
-class MockObserver final : public BodyStreamBuffer::Observer {
-public:
- MockObserver()
- : m_writeCount(0)
- , m_closeCount(0)
- , m_errorCount(0)
- {
- }
- ~MockObserver() override { }
- DEFINE_INLINE_VIRTUAL_TRACE()
- {
- BodyStreamBuffer::Observer::trace(visitor);
- }
- void onWrite() override { ++m_writeCount; }
- void onClose() override { ++m_closeCount; }
- void onError() override { ++m_errorCount; }
- int writeCount() const { return m_writeCount; }
- int closeCount() const { return m_closeCount; }
- int errorCount() const { return m_errorCount; }
-
-private:
- int m_writeCount;
- int m_closeCount;
- int m_errorCount;
-};
-
-class BlobHandleCallback final : public BodyStreamBuffer::BlobHandleCreatorClient {
-public:
- BlobHandleCallback()
- {
- }
- virtual ~BlobHandleCallback() override { }
- DEFINE_INLINE_VIRTUAL_TRACE()
- {
- visitor->trace(m_exception);
- BodyStreamBuffer::BlobHandleCreatorClient::trace(visitor);
- }
- virtual void didCreateBlobHandle(PassRefPtr<BlobDataHandle> blobHandle) override
- {
- m_blobHandle = blobHandle;
- }
- virtual void didFail(DOMException* exception) override
- {
- m_exception = exception;
- }
- PassRefPtr<BlobDataHandle> blobHandle()
- {
- return m_blobHandle;
- }
- DOMException* exception()
- {
- return m_exception;
- }
-
-private:
- RefPtr<BlobDataHandle> m_blobHandle;
- Member<DOMException> m_exception;
-};
-
-class MockCanceller : public BodyStreamBuffer::Canceller {
-public:
- MockCanceller() : m_counter(0) { }
- void cancel() override { ++m_counter; }
- int counter() const { return m_counter; }
-
-private:
- int m_counter;
-};
-
-} // namespace
-
-TEST(BodyStreamBufferTest, Read)
-{
- BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller);
- RefPtr<DOMArrayBuffer> arrayBuffer1 = DOMArrayBuffer::create("foobar", 6);
- RefPtr<DOMArrayBuffer> arrayBuffer2 = DOMArrayBuffer::create("abc", 3);
- RefPtr<DOMArrayBuffer> arrayBuffer3 = DOMArrayBuffer::create("piyo", 4);
- buffer->write(arrayBuffer1);
- buffer->write(arrayBuffer2);
- EXPECT_EQ(arrayBuffer1, buffer->read());
- EXPECT_EQ(arrayBuffer2, buffer->read());
- EXPECT_FALSE(buffer->read());
- buffer->write(arrayBuffer3);
- EXPECT_EQ(arrayBuffer3, buffer->read());
- EXPECT_FALSE(buffer->read());
-}
-
-TEST(BodyStreamBufferTest, Exception)
-{
- BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller);
- EXPECT_FALSE(buffer->exception());
- buffer->error(DOMException::create(NetworkError, "Error Message"));
- EXPECT_TRUE(buffer->exception());
- EXPECT_EQ("NetworkError", buffer->exception()->name());
- EXPECT_EQ("Error Message", buffer->exception()->message());
-}
-
-TEST(BodyStreamBufferTest, Observer)
-{
- BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller);
- MockObserver* observer1 = new MockObserver();
- MockObserver* observer2 = new MockObserver();
- EXPECT_TRUE(buffer->registerObserver(observer1));
- EXPECT_FALSE(buffer->registerObserver(observer2));
- EXPECT_EQ(0, observer1->writeCount());
- EXPECT_EQ(0, observer1->closeCount());
- EXPECT_EQ(0, observer1->errorCount());
- buffer->write(DOMArrayBuffer::create("foobar", 6));
- EXPECT_EQ(1, observer1->writeCount());
- EXPECT_EQ(0, observer1->closeCount());
- EXPECT_EQ(0, observer1->errorCount());
- buffer->write(DOMArrayBuffer::create("piyo", 4));
- EXPECT_EQ(2, observer1->writeCount());
- EXPECT_EQ(0, observer1->closeCount());
- EXPECT_EQ(0, observer1->errorCount());
- EXPECT_FALSE(buffer->isClosed());
- buffer->close();
- EXPECT_TRUE(buffer->isClosed());
- EXPECT_EQ(2, observer1->writeCount());
- EXPECT_EQ(1, observer1->closeCount());
- EXPECT_EQ(0, observer1->errorCount());
- EXPECT_EQ(0, observer2->writeCount());
- EXPECT_EQ(0, observer2->closeCount());
- EXPECT_EQ(0, observer2->errorCount());
-}
-
-TEST(BodyStreamBufferTest, CreateBlob)
-{
- BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller);
- BlobHandleCallback* callback1 = new BlobHandleCallback();
- BlobHandleCallback* callback2 = new BlobHandleCallback();
- EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("text/html", callback1));
- EXPECT_FALSE(buffer->readAllAndCreateBlobHandle("text/html", callback2));
- buffer->write(DOMArrayBuffer::create("foobar", 6));
- EXPECT_FALSE(callback1->blobHandle());
- buffer->write(DOMArrayBuffer::create("piyo", 4));
- EXPECT_FALSE(callback1->blobHandle());
- buffer->close();
- EXPECT_TRUE(callback1->blobHandle());
- EXPECT_EQ("text/html", callback1->blobHandle()->type());
- EXPECT_FALSE(callback2->blobHandle());
- EXPECT_EQ(10u, callback1->blobHandle()->size());
- WebVector<WebBlobData::Item*> items;
- EXPECT_TRUE(Platform::current()->unitTestSupport()->getBlobItems(callback1->blobHandle()->uuid(), &items));
- // The data has been consolidated.
- EXPECT_EQ(1u, items.size());
- EXPECT_EQ(10u, items[0]->data.size());
- EXPECT_EQ(0, memcmp(items[0]->data.data(), "foobarpiyo", 10));
- EXPECT_FALSE(callback1->exception());
- EXPECT_FALSE(callback2->exception());
-}
-
-TEST(BodyStreamBufferTest, CreateBlobAfterWrite)
-{
- BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller);
- BlobHandleCallback* callback = new BlobHandleCallback();
- buffer->write(DOMArrayBuffer::create("foobar", 6));
- EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("", callback));
- buffer->close();
- EXPECT_TRUE(callback->blobHandle());
- EXPECT_EQ(6u, callback->blobHandle()->size());
- WebVector<WebBlobData::Item*> items;
- EXPECT_TRUE(Platform::current()->unitTestSupport()->getBlobItems(callback->blobHandle()->uuid(), &items));
- EXPECT_EQ(1u, items.size());
- EXPECT_EQ(6u, items[0]->data.size());
- EXPECT_EQ(0, memcmp(items[0]->data.data(), "foobar", 6));
-}
-
-TEST(BodyStreamBufferTest, CreateBlobAfterClose)
-{
- BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller);
- BlobHandleCallback* callback = new BlobHandleCallback();
- buffer->write(DOMArrayBuffer::create("foobar", 6));
- buffer->close();
- EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("", callback));
- EXPECT_TRUE(callback->blobHandle());
- EXPECT_EQ(6u, callback->blobHandle()->size());
- WebVector<WebBlobData::Item*> items;
- EXPECT_TRUE(Platform::current()->unitTestSupport()->getBlobItems(callback->blobHandle()->uuid(), &items));
- EXPECT_EQ(1u, items.size());
- EXPECT_EQ(6u, items[0]->data.size());
- EXPECT_EQ(0, memcmp(items[0]->data.data(), "foobar", 6));
-}
-
-TEST(BodyStreamBufferTest, CreateBlobException)
-{
- BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller);
- BlobHandleCallback* callback1 = new BlobHandleCallback();
- BlobHandleCallback* callback2 = new BlobHandleCallback();
- EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("", callback1));
- EXPECT_FALSE(buffer->readAllAndCreateBlobHandle("", callback2));
- buffer->write(DOMArrayBuffer::create("foobar", 6));
- buffer->write(DOMArrayBuffer::create("piyo", 4));
- EXPECT_FALSE(buffer->hasError());
- buffer->error(DOMException::create(NetworkError, "Error Message"));
- EXPECT_TRUE(buffer->hasError());
- EXPECT_FALSE(callback1->blobHandle());
- EXPECT_FALSE(callback2->blobHandle());
- EXPECT_TRUE(callback1->exception());
- EXPECT_FALSE(callback2->exception());
- EXPECT_EQ("NetworkError", callback1->exception()->name());
- EXPECT_EQ("Error Message", callback1->exception()->message());
-}
-
-TEST(BodyStreamBufferTest, CreateBlobExceptionAfterWrite)
-{
- BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller);
- BlobHandleCallback* callback = new BlobHandleCallback();
- buffer->write(DOMArrayBuffer::create("foobar", 6));
- EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("", callback));
- buffer->error(DOMException::create(NetworkError, "Error Message"));
- EXPECT_TRUE(callback->exception());
- EXPECT_EQ("NetworkError", callback->exception()->name());
- EXPECT_EQ("Error Message", callback->exception()->message());
-}
-
-TEST(BodyStreamBufferTest, CreateBlobExceptionAfterError)
-{
- BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller);
- BlobHandleCallback* callback = new BlobHandleCallback();
- buffer->write(DOMArrayBuffer::create("foobar", 6));
- buffer->error(DOMException::create(NetworkError, "Error Message"));
- EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("", callback));
- EXPECT_TRUE(callback->exception());
- EXPECT_EQ("NetworkError", callback->exception()->name());
- EXPECT_EQ("Error Message", callback->exception()->message());
-}
-
-TEST(BodyStreamBufferTest, Cancel)
-{
- auto canceller = new MockCanceller;
- BodyStreamBuffer* buffer = new BodyStreamBuffer(canceller);
- buffer->cancel();
-
- EXPECT_EQ(1, canceller->counter());
- EXPECT_FALSE(buffer->isClosed());
- EXPECT_FALSE(buffer->hasError());
-}
-
-} // namespace blink
+// TODO(hiroshige): re-add unit tests.
« no previous file with comments | « Source/modules/fetch/BodyStreamBuffer.cpp ('k') | Source/modules/fetch/FetchBlobDataConsumerHandle.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698