| 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 "modules/cachestorage/Cache.h" | 5 #include "modules/cachestorage/Cache.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 #include "bindings/core/v8/ExceptionState.h" | 10 #include "bindings/core/v8/ExceptionState.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 | 59 |
| 60 if (m_response) { | 60 if (m_response) { |
| 61 ScriptPromiseResolver* resolver = | 61 ScriptPromiseResolver* resolver = |
| 62 ScriptPromiseResolver::create(scriptState); | 62 ScriptPromiseResolver::create(scriptState); |
| 63 const ScriptPromise promise = resolver->promise(); | 63 const ScriptPromise promise = resolver->promise(); |
| 64 resolver->resolve(m_response); | 64 resolver->resolve(m_response); |
| 65 m_response = nullptr; | 65 m_response = nullptr; |
| 66 return promise; | 66 return promise; |
| 67 } | 67 } |
| 68 return ScriptPromise::reject( | 68 return ScriptPromise::reject( |
| 69 scriptState, V8ThrowException::createTypeError( | 69 scriptState, |
| 70 scriptState->isolate(), | 70 V8ThrowException::createTypeError( |
| 71 "Unexpected call to fetch, no response available.")); | 71 scriptState->isolate(), |
| 72 "Unexpected call to fetch, no response available.")); |
| 72 } | 73 } |
| 73 | 74 |
| 74 // This does not take ownership of its parameter. The provided sample object | 75 // This does not take ownership of its parameter. The provided sample object |
| 75 // is used to check the parameter when called. | 76 // is used to check the parameter when called. |
| 76 void setExpectedFetchUrl(const String* expectedUrl) { | 77 void setExpectedFetchUrl(const String* expectedUrl) { |
| 77 m_expectedUrl = expectedUrl; | 78 m_expectedUrl = expectedUrl; |
| 78 } | 79 } |
| 79 void setResponse(Response* response) { m_response = response; } | 80 void setResponse(Response* response) { m_response = response; } |
| 80 | 81 |
| 81 int fetchCount() const { return m_fetchCount; } | 82 int fetchCount() const { return m_fetchCount; } |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 CompareQueryParamsForTest(*m_expectedQueryParams, queryParams); | 180 CompareQueryParamsForTest(*m_expectedQueryParams, queryParams); |
| 180 } | 181 } |
| 181 | 182 |
| 182 void checkBatchOperationsIfProvided( | 183 void checkBatchOperationsIfProvided( |
| 183 const WebVector<BatchOperation>& batchOperations) { | 184 const WebVector<BatchOperation>& batchOperations) { |
| 184 if (!m_expectedBatchOperations) | 185 if (!m_expectedBatchOperations) |
| 185 return; | 186 return; |
| 186 const WebVector<BatchOperation> expectedBatchOperations = | 187 const WebVector<BatchOperation> expectedBatchOperations = |
| 187 *m_expectedBatchOperations; | 188 *m_expectedBatchOperations; |
| 188 EXPECT_EQ(expectedBatchOperations.size(), batchOperations.size()); | 189 EXPECT_EQ(expectedBatchOperations.size(), batchOperations.size()); |
| 189 for (int i = 0, minsize = std::min(expectedBatchOperations.size(), | 190 for (int i = 0, |
| 190 batchOperations.size()); | 191 minsize = std::min(expectedBatchOperations.size(), |
| 192 batchOperations.size()); |
| 191 i < minsize; ++i) { | 193 i < minsize; ++i) { |
| 192 EXPECT_EQ(expectedBatchOperations[i].operationType, | 194 EXPECT_EQ(expectedBatchOperations[i].operationType, |
| 193 batchOperations[i].operationType); | 195 batchOperations[i].operationType); |
| 194 const String expectedRequestUrl = | 196 const String expectedRequestUrl = |
| 195 KURL(expectedBatchOperations[i].request.url()); | 197 KURL(expectedBatchOperations[i].request.url()); |
| 196 EXPECT_EQ(expectedRequestUrl, KURL(batchOperations[i].request.url())); | 198 EXPECT_EQ(expectedRequestUrl, KURL(batchOperations[i].request.url())); |
| 197 ASSERT_EQ(expectedBatchOperations[i].response.urlList().size(), | 199 ASSERT_EQ(expectedBatchOperations[i].response.urlList().size(), |
| 198 batchOperations[i].response.urlList().size()); | 200 batchOperations[i].response.urlList().size()); |
| 199 for (size_t j = 0; | 201 for (size_t j = 0; |
| 200 j < expectedBatchOperations[i].response.urlList().size(); ++j) { | 202 j < expectedBatchOperations[i].response.urlList().size(); ++j) { |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 createCache(fetcher, testCache = new NotImplementedErrorCache()); | 357 createCache(fetcher, testCache = new NotImplementedErrorCache()); |
| 356 ASSERT(cache); | 358 ASSERT(cache); |
| 357 | 359 |
| 358 const String url = "http://www.cachetest.org/"; | 360 const String url = "http://www.cachetest.org/"; |
| 359 | 361 |
| 360 CacheQueryOptions options; | 362 CacheQueryOptions options; |
| 361 ScriptPromise matchPromise = cache->match( | 363 ScriptPromise matchPromise = cache->match( |
| 362 getScriptState(), stringToRequestInfo(url), options, exceptionState); | 364 getScriptState(), stringToRequestInfo(url), options, exceptionState); |
| 363 EXPECT_EQ(kNotImplementedString, getRejectString(matchPromise)); | 365 EXPECT_EQ(kNotImplementedString, getRejectString(matchPromise)); |
| 364 | 366 |
| 365 cache = createCache(fetcher, testCache = new ErrorWebCacheForTests( | 367 cache = createCache(fetcher, |
| 366 WebServiceWorkerCacheErrorNotFound)); | 368 testCache = new ErrorWebCacheForTests( |
| 369 WebServiceWorkerCacheErrorNotFound)); |
| 367 matchPromise = cache->match(getScriptState(), stringToRequestInfo(url), | 370 matchPromise = cache->match(getScriptState(), stringToRequestInfo(url), |
| 368 options, exceptionState); | 371 options, exceptionState); |
| 369 ScriptValue scriptValue = getResolveValue(matchPromise); | 372 ScriptValue scriptValue = getResolveValue(matchPromise); |
| 370 EXPECT_TRUE(scriptValue.isUndefined()); | 373 EXPECT_TRUE(scriptValue.isUndefined()); |
| 371 | 374 |
| 372 cache = createCache(fetcher, testCache = new ErrorWebCacheForTests( | 375 cache = createCache( |
| 373 WebServiceWorkerCacheErrorExists)); | 376 fetcher, |
| 377 testCache = new ErrorWebCacheForTests(WebServiceWorkerCacheErrorExists)); |
| 374 matchPromise = cache->match(getScriptState(), stringToRequestInfo(url), | 378 matchPromise = cache->match(getScriptState(), stringToRequestInfo(url), |
| 375 options, exceptionState); | 379 options, exceptionState); |
| 376 EXPECT_EQ("InvalidAccessError: Entry already exists.", | 380 EXPECT_EQ("InvalidAccessError: Entry already exists.", |
| 377 getRejectString(matchPromise)); | 381 getRejectString(matchPromise)); |
| 378 } | 382 } |
| 379 | 383 |
| 380 // Tests that arguments are faithfully passed on calls to Cache methods, except | 384 // Tests that arguments are faithfully passed on calls to Cache methods, except |
| 381 // for methods which use batch operations, which are tested later. | 385 // for methods which use batch operations, which are tested later. |
| 382 TEST_F(CacheStorageTest, BasicArguments) { | 386 TEST_F(CacheStorageTest, BasicArguments) { |
| 383 ScriptState::Scope scope(getScriptState()); | 387 ScriptState::Scope scope(getScriptState()); |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 723 | 727 |
| 724 EXPECT_EQ(kNotImplementedString, getRejectString(addResult)); | 728 EXPECT_EQ(kNotImplementedString, getRejectString(addResult)); |
| 725 EXPECT_EQ(1, fetcher->fetchCount()); | 729 EXPECT_EQ(1, fetcher->fetchCount()); |
| 726 EXPECT_EQ("dispatchBatch", | 730 EXPECT_EQ("dispatchBatch", |
| 727 testCache->getAndClearLastErrorWebCacheMethodCalled()); | 731 testCache->getAndClearLastErrorWebCacheMethodCalled()); |
| 728 } | 732 } |
| 729 | 733 |
| 730 } // namespace | 734 } // namespace |
| 731 | 735 |
| 732 } // namespace blink | 736 } // namespace blink |
| OLD | NEW |