| 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/serviceworkers/BodyStreamBuffer.h" | 6 #include "modules/serviceworkers/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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 return m_exception; | 70 return m_exception; |
| 71 } | 71 } |
| 72 | 72 |
| 73 private: | 73 private: |
| 74 RefPtr<BlobDataHandle> m_blobHandle; | 74 RefPtr<BlobDataHandle> m_blobHandle; |
| 75 RefPtrWillBeMember<DOMException> m_exception; | 75 RefPtrWillBeMember<DOMException> m_exception; |
| 76 }; | 76 }; |
| 77 | 77 |
| 78 } // namespace | 78 } // namespace |
| 79 | 79 |
| 80 TEST(BodyStreamBufferTest, ContentType) |
| 81 { |
| 82 BodyStreamBuffer* buffer1 = new BodyStreamBuffer(String()); |
| 83 EXPECT_TRUE(buffer1->contentType().isEmpty()); |
| 84 BodyStreamBuffer* buffer2 = new BodyStreamBuffer("text/html"); |
| 85 EXPECT_EQ("text/html", buffer2->contentType()); |
| 86 } |
| 87 |
| 80 TEST(BodyStreamBufferTest, Read) | 88 TEST(BodyStreamBufferTest, Read) |
| 81 { | 89 { |
| 82 BodyStreamBuffer* buffer = new BodyStreamBuffer(); | 90 BodyStreamBuffer* buffer = new BodyStreamBuffer(String()); |
| 83 RefPtr<DOMArrayBuffer> arrayBuffer1 = DOMArrayBuffer::create("foobar", 6); | 91 RefPtr<DOMArrayBuffer> arrayBuffer1 = DOMArrayBuffer::create("foobar", 6); |
| 84 RefPtr<DOMArrayBuffer> arrayBuffer2 = DOMArrayBuffer::create("abc", 3); | 92 RefPtr<DOMArrayBuffer> arrayBuffer2 = DOMArrayBuffer::create("abc", 3); |
| 85 RefPtr<DOMArrayBuffer> arrayBuffer3 = DOMArrayBuffer::create("piyo", 4); | 93 RefPtr<DOMArrayBuffer> arrayBuffer3 = DOMArrayBuffer::create("piyo", 4); |
| 86 buffer->write(arrayBuffer1); | 94 buffer->write(arrayBuffer1); |
| 87 buffer->write(arrayBuffer2); | 95 buffer->write(arrayBuffer2); |
| 88 EXPECT_EQ(arrayBuffer1, buffer->read()); | 96 EXPECT_EQ(arrayBuffer1, buffer->read()); |
| 89 EXPECT_EQ(arrayBuffer2, buffer->read()); | 97 EXPECT_EQ(arrayBuffer2, buffer->read()); |
| 90 EXPECT_FALSE(buffer->read()); | 98 EXPECT_FALSE(buffer->read()); |
| 91 buffer->write(arrayBuffer3); | 99 buffer->write(arrayBuffer3); |
| 92 EXPECT_EQ(arrayBuffer3, buffer->read()); | 100 EXPECT_EQ(arrayBuffer3, buffer->read()); |
| 93 EXPECT_FALSE(buffer->read()); | 101 EXPECT_FALSE(buffer->read()); |
| 94 } | 102 } |
| 95 | 103 |
| 96 TEST(BodyStreamBufferTest, Exception) | 104 TEST(BodyStreamBufferTest, Exception) |
| 97 { | 105 { |
| 98 BodyStreamBuffer* buffer = new BodyStreamBuffer(); | 106 BodyStreamBuffer* buffer = new BodyStreamBuffer(String()); |
| 99 EXPECT_FALSE(buffer->exception()); | 107 EXPECT_FALSE(buffer->exception()); |
| 100 buffer->error(DOMException::create(NetworkError, "Error Message")); | 108 buffer->error(DOMException::create(NetworkError, "Error Message")); |
| 101 EXPECT_TRUE(buffer->exception()); | 109 EXPECT_TRUE(buffer->exception()); |
| 102 EXPECT_EQ("NetworkError", buffer->exception()->name()); | 110 EXPECT_EQ("NetworkError", buffer->exception()->name()); |
| 103 EXPECT_EQ("Error Message", buffer->exception()->message()); | 111 EXPECT_EQ("Error Message", buffer->exception()->message()); |
| 104 } | 112 } |
| 105 | 113 |
| 106 TEST(BodyStreamBufferTest, Observer) | 114 TEST(BodyStreamBufferTest, Observer) |
| 107 { | 115 { |
| 108 BodyStreamBuffer* buffer = new BodyStreamBuffer(); | 116 BodyStreamBuffer* buffer = new BodyStreamBuffer(String()); |
| 109 MockObserver* observer1 = new MockObserver(); | 117 MockObserver* observer1 = new MockObserver(); |
| 110 MockObserver* observer2 = new MockObserver(); | 118 MockObserver* observer2 = new MockObserver(); |
| 111 EXPECT_TRUE(buffer->registerObserver(observer1)); | 119 EXPECT_TRUE(buffer->registerObserver(observer1)); |
| 112 EXPECT_FALSE(buffer->registerObserver(observer2)); | 120 EXPECT_FALSE(buffer->registerObserver(observer2)); |
| 113 EXPECT_EQ(0, observer1->writeCount()); | 121 EXPECT_EQ(0, observer1->writeCount()); |
| 114 EXPECT_EQ(0, observer1->closeCount()); | 122 EXPECT_EQ(0, observer1->closeCount()); |
| 115 EXPECT_EQ(0, observer1->errorCount()); | 123 EXPECT_EQ(0, observer1->errorCount()); |
| 116 buffer->write(DOMArrayBuffer::create("foobar", 6)); | 124 buffer->write(DOMArrayBuffer::create("foobar", 6)); |
| 117 EXPECT_EQ(1, observer1->writeCount()); | 125 EXPECT_EQ(1, observer1->writeCount()); |
| 118 EXPECT_EQ(0, observer1->closeCount()); | 126 EXPECT_EQ(0, observer1->closeCount()); |
| 119 EXPECT_EQ(0, observer1->errorCount()); | 127 EXPECT_EQ(0, observer1->errorCount()); |
| 120 buffer->write(DOMArrayBuffer::create("piyo", 4)); | 128 buffer->write(DOMArrayBuffer::create("piyo", 4)); |
| 121 EXPECT_EQ(2, observer1->writeCount()); | 129 EXPECT_EQ(2, observer1->writeCount()); |
| 122 EXPECT_EQ(0, observer1->closeCount()); | 130 EXPECT_EQ(0, observer1->closeCount()); |
| 123 EXPECT_EQ(0, observer1->errorCount()); | 131 EXPECT_EQ(0, observer1->errorCount()); |
| 124 EXPECT_FALSE(buffer->isClosed()); | 132 EXPECT_FALSE(buffer->isClosed()); |
| 125 buffer->close(); | 133 buffer->close(); |
| 126 EXPECT_TRUE(buffer->isClosed()); | 134 EXPECT_TRUE(buffer->isClosed()); |
| 127 EXPECT_EQ(2, observer1->writeCount()); | 135 EXPECT_EQ(2, observer1->writeCount()); |
| 128 EXPECT_EQ(1, observer1->closeCount()); | 136 EXPECT_EQ(1, observer1->closeCount()); |
| 129 EXPECT_EQ(0, observer1->errorCount()); | 137 EXPECT_EQ(0, observer1->errorCount()); |
| 130 EXPECT_EQ(0, observer2->writeCount()); | 138 EXPECT_EQ(0, observer2->writeCount()); |
| 131 EXPECT_EQ(0, observer2->closeCount()); | 139 EXPECT_EQ(0, observer2->closeCount()); |
| 132 EXPECT_EQ(0, observer2->errorCount()); | 140 EXPECT_EQ(0, observer2->errorCount()); |
| 133 } | 141 } |
| 134 | 142 |
| 135 TEST(BodyStreamBufferTest, CreateBlob) | 143 TEST(BodyStreamBufferTest, CreateBlob) |
| 136 { | 144 { |
| 137 BodyStreamBuffer* buffer = new BodyStreamBuffer(); | 145 BodyStreamBuffer* buffer = new BodyStreamBuffer("text/plain"); |
| 138 BlobHandleCallback* callback1 = new BlobHandleCallback(); | 146 BlobHandleCallback* callback1 = new BlobHandleCallback(); |
| 139 BlobHandleCallback* callback2 = new BlobHandleCallback(); | 147 BlobHandleCallback* callback2 = new BlobHandleCallback(); |
| 140 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback1)); | 148 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback1)); |
| 141 EXPECT_FALSE(buffer->readAllAndCreateBlobHandle(callback2)); | 149 EXPECT_FALSE(buffer->readAllAndCreateBlobHandle(callback2)); |
| 142 buffer->write(DOMArrayBuffer::create("foobar", 6)); | 150 buffer->write(DOMArrayBuffer::create("foobar", 6)); |
| 143 EXPECT_FALSE(callback1->blobHandle()); | 151 EXPECT_FALSE(callback1->blobHandle()); |
| 144 buffer->write(DOMArrayBuffer::create("piyo", 4)); | 152 buffer->write(DOMArrayBuffer::create("piyo", 4)); |
| 145 EXPECT_FALSE(callback1->blobHandle()); | 153 EXPECT_FALSE(callback1->blobHandle()); |
| 146 buffer->close(); | 154 buffer->close(); |
| 147 EXPECT_TRUE(callback1->blobHandle()); | 155 EXPECT_TRUE(callback1->blobHandle()); |
| 148 EXPECT_FALSE(callback2->blobHandle()); | 156 EXPECT_FALSE(callback2->blobHandle()); |
| 149 EXPECT_EQ(10u, callback1->blobHandle()->size()); | 157 EXPECT_EQ(10u, callback1->blobHandle()->size()); |
| 158 EXPECT_EQ("text/plain", callback1->blobHandle()->type()); |
| 150 // FIXME: Check the content of the blob. | 159 // FIXME: Check the content of the blob. |
| 151 EXPECT_FALSE(callback1->exception()); | 160 EXPECT_FALSE(callback1->exception()); |
| 152 EXPECT_FALSE(callback2->exception()); | 161 EXPECT_FALSE(callback2->exception()); |
| 153 } | 162 } |
| 154 | 163 |
| 155 TEST(BodyStreamBufferTest, CreateBlobAfterWrite) | 164 TEST(BodyStreamBufferTest, CreateBlobAfterWrite) |
| 156 { | 165 { |
| 157 BodyStreamBuffer* buffer = new BodyStreamBuffer(); | 166 BodyStreamBuffer* buffer = new BodyStreamBuffer(String()); |
| 158 BlobHandleCallback* callback = new BlobHandleCallback(); | 167 BlobHandleCallback* callback = new BlobHandleCallback(); |
| 159 buffer->write(DOMArrayBuffer::create("foobar", 6)); | 168 buffer->write(DOMArrayBuffer::create("foobar", 6)); |
| 160 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback)); | 169 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback)); |
| 161 buffer->close(); | 170 buffer->close(); |
| 162 EXPECT_TRUE(callback->blobHandle()); | 171 EXPECT_TRUE(callback->blobHandle()); |
| 163 EXPECT_EQ(6u, callback->blobHandle()->size()); | 172 EXPECT_EQ(6u, callback->blobHandle()->size()); |
| 164 // FIXME: Check the content of the blob. | 173 // FIXME: Check the content of the blob. |
| 165 } | 174 } |
| 166 | 175 |
| 167 TEST(BodyStreamBufferTest, CreateBlobAfterClose) | 176 TEST(BodyStreamBufferTest, CreateBlobAfterClose) |
| 168 { | 177 { |
| 169 BodyStreamBuffer* buffer = new BodyStreamBuffer(); | 178 BodyStreamBuffer* buffer = new BodyStreamBuffer(String()); |
| 170 BlobHandleCallback* callback = new BlobHandleCallback(); | 179 BlobHandleCallback* callback = new BlobHandleCallback(); |
| 171 buffer->write(DOMArrayBuffer::create("foobar", 6)); | 180 buffer->write(DOMArrayBuffer::create("foobar", 6)); |
| 172 buffer->close(); | 181 buffer->close(); |
| 173 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback)); | 182 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback)); |
| 174 EXPECT_TRUE(callback->blobHandle()); | 183 EXPECT_TRUE(callback->blobHandle()); |
| 175 EXPECT_EQ(6u, callback->blobHandle()->size()); | 184 EXPECT_EQ(6u, callback->blobHandle()->size()); |
| 176 // FIXME: Check the content of the blob. | 185 // FIXME: Check the content of the blob. |
| 177 } | 186 } |
| 178 | 187 |
| 179 TEST(BodyStreamBufferTest, CreateBlobException) | 188 TEST(BodyStreamBufferTest, CreateBlobException) |
| 180 { | 189 { |
| 181 BodyStreamBuffer* buffer = new BodyStreamBuffer(); | 190 BodyStreamBuffer* buffer = new BodyStreamBuffer(String()); |
| 182 BlobHandleCallback* callback1 = new BlobHandleCallback(); | 191 BlobHandleCallback* callback1 = new BlobHandleCallback(); |
| 183 BlobHandleCallback* callback2 = new BlobHandleCallback(); | 192 BlobHandleCallback* callback2 = new BlobHandleCallback(); |
| 184 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback1)); | 193 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback1)); |
| 185 EXPECT_FALSE(buffer->readAllAndCreateBlobHandle(callback2)); | 194 EXPECT_FALSE(buffer->readAllAndCreateBlobHandle(callback2)); |
| 186 buffer->write(DOMArrayBuffer::create("foobar", 6)); | 195 buffer->write(DOMArrayBuffer::create("foobar", 6)); |
| 187 buffer->write(DOMArrayBuffer::create("piyo", 4)); | 196 buffer->write(DOMArrayBuffer::create("piyo", 4)); |
| 188 EXPECT_FALSE(buffer->hasError()); | 197 EXPECT_FALSE(buffer->hasError()); |
| 189 buffer->error(DOMException::create(NetworkError, "Error Message")); | 198 buffer->error(DOMException::create(NetworkError, "Error Message")); |
| 190 EXPECT_TRUE(buffer->hasError()); | 199 EXPECT_TRUE(buffer->hasError()); |
| 191 EXPECT_FALSE(callback1->blobHandle()); | 200 EXPECT_FALSE(callback1->blobHandle()); |
| 192 EXPECT_FALSE(callback2->blobHandle()); | 201 EXPECT_FALSE(callback2->blobHandle()); |
| 193 EXPECT_TRUE(callback1->exception()); | 202 EXPECT_TRUE(callback1->exception()); |
| 194 EXPECT_FALSE(callback2->exception()); | 203 EXPECT_FALSE(callback2->exception()); |
| 195 EXPECT_EQ("NetworkError", callback1->exception()->name()); | 204 EXPECT_EQ("NetworkError", callback1->exception()->name()); |
| 196 EXPECT_EQ("Error Message", callback1->exception()->message()); | 205 EXPECT_EQ("Error Message", callback1->exception()->message()); |
| 197 } | 206 } |
| 198 | 207 |
| 199 TEST(BodyStreamBufferTest, CreateBlobExceptionAfterWrite) | 208 TEST(BodyStreamBufferTest, CreateBlobExceptionAfterWrite) |
| 200 { | 209 { |
| 201 BodyStreamBuffer* buffer = new BodyStreamBuffer(); | 210 BodyStreamBuffer* buffer = new BodyStreamBuffer(String()); |
| 202 BlobHandleCallback* callback = new BlobHandleCallback(); | 211 BlobHandleCallback* callback = new BlobHandleCallback(); |
| 203 buffer->write(DOMArrayBuffer::create("foobar", 6)); | 212 buffer->write(DOMArrayBuffer::create("foobar", 6)); |
| 204 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback)); | 213 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback)); |
| 205 buffer->error(DOMException::create(NetworkError, "Error Message")); | 214 buffer->error(DOMException::create(NetworkError, "Error Message")); |
| 206 EXPECT_TRUE(callback->exception()); | 215 EXPECT_TRUE(callback->exception()); |
| 207 EXPECT_EQ("NetworkError", callback->exception()->name()); | 216 EXPECT_EQ("NetworkError", callback->exception()->name()); |
| 208 EXPECT_EQ("Error Message", callback->exception()->message()); | 217 EXPECT_EQ("Error Message", callback->exception()->message()); |
| 209 } | 218 } |
| 210 | 219 |
| 211 TEST(BodyStreamBufferTest, CreateBlobExceptionAfterError) | 220 TEST(BodyStreamBufferTest, CreateBlobExceptionAfterError) |
| 212 { | 221 { |
| 213 BodyStreamBuffer* buffer = new BodyStreamBuffer(); | 222 BodyStreamBuffer* buffer = new BodyStreamBuffer(String()); |
| 214 BlobHandleCallback* callback = new BlobHandleCallback(); | 223 BlobHandleCallback* callback = new BlobHandleCallback(); |
| 215 buffer->write(DOMArrayBuffer::create("foobar", 6)); | 224 buffer->write(DOMArrayBuffer::create("foobar", 6)); |
| 216 buffer->error(DOMException::create(NetworkError, "Error Message")); | 225 buffer->error(DOMException::create(NetworkError, "Error Message")); |
| 217 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback)); | 226 EXPECT_TRUE(buffer->readAllAndCreateBlobHandle(callback)); |
| 218 EXPECT_TRUE(callback->exception()); | 227 EXPECT_TRUE(callback->exception()); |
| 219 EXPECT_EQ("NetworkError", callback->exception()->name()); | 228 EXPECT_EQ("NetworkError", callback->exception()->name()); |
| 220 EXPECT_EQ("Error Message", callback->exception()->message()); | 229 EXPECT_EQ("Error Message", callback->exception()->message()); |
| 221 } | 230 } |
| 222 | 231 |
| 223 } // namespace blink | 232 } // namespace blink |
| OLD | NEW |