| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "config.h" | 5 #include "config.h" |
| 6 #include "modules/fetch/BodyStreamBuffer.h" | 6 #include "modules/fetch/BodyStreamBuffer.h" |
| 7 | 7 |
| 8 #include "core/dom/DOMArrayBuffer.h" | 8 #include "core/dom/DOMArrayBuffer.h" |
| 9 #include "core/dom/DOMException.h" | 9 #include "core/dom/DOMException.h" |
| 10 #include "core/dom/ExceptionCode.h" | 10 #include "core/dom/ExceptionCode.h" |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 buffer->close(); | 138 buffer->close(); |
| 139 EXPECT_TRUE(buffer->isClosed()); | 139 EXPECT_TRUE(buffer->isClosed()); |
| 140 EXPECT_EQ(2, observer1->writeCount()); | 140 EXPECT_EQ(2, observer1->writeCount()); |
| 141 EXPECT_EQ(1, observer1->closeCount()); | 141 EXPECT_EQ(1, observer1->closeCount()); |
| 142 EXPECT_EQ(0, observer1->errorCount()); | 142 EXPECT_EQ(0, observer1->errorCount()); |
| 143 EXPECT_EQ(0, observer2->writeCount()); | 143 EXPECT_EQ(0, observer2->writeCount()); |
| 144 EXPECT_EQ(0, observer2->closeCount()); | 144 EXPECT_EQ(0, observer2->closeCount()); |
| 145 EXPECT_EQ(0, observer2->errorCount()); | 145 EXPECT_EQ(0, observer2->errorCount()); |
| 146 } | 146 } |
| 147 | 147 |
| 148 TEST(BodyStreamBufferTest, CreateBlob) | |
| 149 { | |
| 150 BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller); | |
| 151 BlobHandleCallback* callback1 = new BlobHandleCallback(); | |
| 152 BlobHandleCallback* callback2 = new BlobHandleCallback(); | |
| 153 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("text/html", callback1)); | |
| 154 EXPECT_FALSE(buffer->readAllAndCreateBlobHandle("text/html", callback2)); | |
| 155 buffer->write(DOMArrayBuffer::create("foobar", 6)); | |
| 156 EXPECT_FALSE(callback1->blobHandle()); | |
| 157 buffer->write(DOMArrayBuffer::create("piyo", 4)); | |
| 158 EXPECT_FALSE(callback1->blobHandle()); | |
| 159 buffer->close(); | |
| 160 EXPECT_TRUE(callback1->blobHandle()); | |
| 161 EXPECT_EQ("text/html", callback1->blobHandle()->type()); | |
| 162 EXPECT_FALSE(callback2->blobHandle()); | |
| 163 EXPECT_EQ(10u, callback1->blobHandle()->size()); | |
| 164 WebVector<WebBlobData::Item*> items; | |
| 165 EXPECT_TRUE(Platform::current()->unitTestSupport()->getBlobItems(callback1->
blobHandle()->uuid(), &items)); | |
| 166 EXPECT_EQ(2u, items.size()); | |
| 167 EXPECT_EQ(6u, items[0]->data.size()); | |
| 168 EXPECT_EQ(0, memcmp(items[0]->data.data(), "foobar", 6)); | |
| 169 EXPECT_EQ(4u, items[1]->data.size()); | |
| 170 EXPECT_EQ(0, memcmp(items[1]->data.data(), "piyo", 4)); | |
| 171 EXPECT_FALSE(callback1->exception()); | |
| 172 EXPECT_FALSE(callback2->exception()); | |
| 173 } | |
| 174 | |
| 175 TEST(BodyStreamBufferTest, CreateBlobAfterWrite) | |
| 176 { | |
| 177 BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller); | |
| 178 BlobHandleCallback* callback = new BlobHandleCallback(); | |
| 179 buffer->write(DOMArrayBuffer::create("foobar", 6)); | |
| 180 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("", callback)); | |
| 181 buffer->close(); | |
| 182 EXPECT_TRUE(callback->blobHandle()); | |
| 183 EXPECT_EQ(6u, callback->blobHandle()->size()); | |
| 184 WebVector<WebBlobData::Item*> items; | |
| 185 EXPECT_TRUE(Platform::current()->unitTestSupport()->getBlobItems(callback->b
lobHandle()->uuid(), &items)); | |
| 186 EXPECT_EQ(1u, items.size()); | |
| 187 EXPECT_EQ(6u, items[0]->data.size()); | |
| 188 EXPECT_EQ(0, memcmp(items[0]->data.data(), "foobar", 6)); | |
| 189 } | |
| 190 | |
| 191 TEST(BodyStreamBufferTest, CreateBlobAfterClose) | |
| 192 { | |
| 193 BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller); | |
| 194 BlobHandleCallback* callback = new BlobHandleCallback(); | |
| 195 buffer->write(DOMArrayBuffer::create("foobar", 6)); | |
| 196 buffer->close(); | |
| 197 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("", callback)); | |
| 198 EXPECT_TRUE(callback->blobHandle()); | |
| 199 EXPECT_EQ(6u, callback->blobHandle()->size()); | |
| 200 WebVector<WebBlobData::Item*> items; | |
| 201 EXPECT_TRUE(Platform::current()->unitTestSupport()->getBlobItems(callback->b
lobHandle()->uuid(), &items)); | |
| 202 EXPECT_EQ(1u, items.size()); | |
| 203 EXPECT_EQ(6u, items[0]->data.size()); | |
| 204 EXPECT_EQ(0, memcmp(items[0]->data.data(), "foobar", 6)); | |
| 205 } | |
| 206 | |
| 207 TEST(BodyStreamBufferTest, CreateBlobException) | |
| 208 { | |
| 209 BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller); | |
| 210 BlobHandleCallback* callback1 = new BlobHandleCallback(); | |
| 211 BlobHandleCallback* callback2 = new BlobHandleCallback(); | |
| 212 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("", callback1)); | |
| 213 EXPECT_FALSE(buffer->readAllAndCreateBlobHandle("", callback2)); | |
| 214 buffer->write(DOMArrayBuffer::create("foobar", 6)); | |
| 215 buffer->write(DOMArrayBuffer::create("piyo", 4)); | |
| 216 EXPECT_FALSE(buffer->hasError()); | |
| 217 buffer->error(DOMException::create(NetworkError, "Error Message")); | |
| 218 EXPECT_TRUE(buffer->hasError()); | |
| 219 EXPECT_FALSE(callback1->blobHandle()); | |
| 220 EXPECT_FALSE(callback2->blobHandle()); | |
| 221 EXPECT_TRUE(callback1->exception()); | |
| 222 EXPECT_FALSE(callback2->exception()); | |
| 223 EXPECT_EQ("NetworkError", callback1->exception()->name()); | |
| 224 EXPECT_EQ("Error Message", callback1->exception()->message()); | |
| 225 } | |
| 226 | |
| 227 TEST(BodyStreamBufferTest, CreateBlobExceptionAfterWrite) | |
| 228 { | |
| 229 BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller); | |
| 230 BlobHandleCallback* callback = new BlobHandleCallback(); | |
| 231 buffer->write(DOMArrayBuffer::create("foobar", 6)); | |
| 232 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("", callback)); | |
| 233 buffer->error(DOMException::create(NetworkError, "Error Message")); | |
| 234 EXPECT_TRUE(callback->exception()); | |
| 235 EXPECT_EQ("NetworkError", callback->exception()->name()); | |
| 236 EXPECT_EQ("Error Message", callback->exception()->message()); | |
| 237 } | |
| 238 | |
| 239 TEST(BodyStreamBufferTest, CreateBlobExceptionAfterError) | |
| 240 { | |
| 241 BodyStreamBuffer* buffer = new BodyStreamBuffer(new MockCanceller); | |
| 242 BlobHandleCallback* callback = new BlobHandleCallback(); | |
| 243 buffer->write(DOMArrayBuffer::create("foobar", 6)); | |
| 244 buffer->error(DOMException::create(NetworkError, "Error Message")); | |
| 245 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle("", callback)); | |
| 246 EXPECT_TRUE(callback->exception()); | |
| 247 EXPECT_EQ("NetworkError", callback->exception()->name()); | |
| 248 EXPECT_EQ("Error Message", callback->exception()->message()); | |
| 249 } | |
| 250 | |
| 251 TEST(BodyStreamBufferTest, Cancel) | 148 TEST(BodyStreamBufferTest, Cancel) |
| 252 { | 149 { |
| 253 auto canceller = new MockCanceller; | 150 auto canceller = new MockCanceller; |
| 254 BodyStreamBuffer* buffer = new BodyStreamBuffer(canceller); | 151 BodyStreamBuffer* buffer = new BodyStreamBuffer(canceller); |
| 255 buffer->cancel(); | 152 buffer->cancel(); |
| 256 | 153 |
| 257 EXPECT_EQ(1, canceller->counter()); | 154 EXPECT_EQ(1, canceller->counter()); |
| 258 EXPECT_FALSE(buffer->isClosed()); | 155 EXPECT_FALSE(buffer->isClosed()); |
| 259 EXPECT_FALSE(buffer->hasError()); | 156 EXPECT_FALSE(buffer->hasError()); |
| 260 } | 157 } |
| 261 | 158 |
| 262 } // namespace blink | 159 } // namespace blink |
| OLD | NEW |