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

Side by Side Diff: Source/modules/cachestorage/CacheTest.cpp

Issue 1055543004: Move Cache Storage API implementation to modules/cachestorage (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 5 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/modules/cachestorage/CacheStorage.idl ('k') | Source/modules/cachestorage/DEPS » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/Cache.h" 6 #include "modules/cachestorage/Cache.h"
7 7
8 #include "bindings/core/v8/ExceptionState.h" 8 #include "bindings/core/v8/ExceptionState.h"
9 #include "bindings/core/v8/ScriptFunction.h" 9 #include "bindings/core/v8/ScriptFunction.h"
10 #include "bindings/core/v8/ScriptPromise.h" 10 #include "bindings/core/v8/ScriptPromise.h"
11 #include "bindings/core/v8/ScriptValue.h" 11 #include "bindings/core/v8/ScriptValue.h"
12 #include "bindings/core/v8/V8Binding.h" 12 #include "bindings/core/v8/V8Binding.h"
13 #include "bindings/modules/v8/V8Request.h" 13 #include "bindings/modules/v8/V8Request.h"
14 #include "bindings/modules/v8/V8Response.h" 14 #include "bindings/modules/v8/V8Response.h"
15 #include "core/dom/Document.h" 15 #include "core/dom/Document.h"
16 #include "core/frame/Frame.h" 16 #include "core/frame/Frame.h"
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 const WebVector<BatchOperation>* m_expectedBatchOperations; 145 const WebVector<BatchOperation>* m_expectedBatchOperations;
146 146
147 std::string m_lastErrorWebCacheMethodCalled; 147 std::string m_lastErrorWebCacheMethodCalled;
148 }; 148 };
149 149
150 class NotImplementedErrorCache : public ErrorWebCacheForTests { 150 class NotImplementedErrorCache : public ErrorWebCacheForTests {
151 public: 151 public:
152 NotImplementedErrorCache() : ErrorWebCacheForTests(WebServiceWorkerCacheErro rNotImplemented) { } 152 NotImplementedErrorCache() : ErrorWebCacheForTests(WebServiceWorkerCacheErro rNotImplemented) { }
153 }; 153 };
154 154
155 class ServiceWorkerCacheTest : public ::testing::Test { 155 class CacheStorageTest : public ::testing::Test {
156 public: 156 public:
157 ServiceWorkerCacheTest() 157 CacheStorageTest()
158 : m_page(DummyPageHolder::create(IntSize(1, 1))) { } 158 : m_page(DummyPageHolder::create(IntSize(1, 1))) { }
159 159
160 ScriptState* scriptState() { return ScriptState::forMainWorld(m_page->docume nt().frame()); } 160 ScriptState* scriptState() { return ScriptState::forMainWorld(m_page->docume nt().frame()); }
161 ExecutionContext* executionContext() { return scriptState()->executionContex t(); } 161 ExecutionContext* executionContext() { return scriptState()->executionContex t(); }
162 v8::Isolate* isolate() { return scriptState()->isolate(); } 162 v8::Isolate* isolate() { return scriptState()->isolate(); }
163 163
164 Request* newRequestFromUrl(const String& url) 164 Request* newRequestFromUrl(const String& url)
165 { 165 {
166 TrackExceptionState exceptionState; 166 TrackExceptionState exceptionState;
167 Request* request = Request::create(executionContext(), url, exceptionSta te); 167 Request* request = Request::create(executionContext(), url, exceptionSta te);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 return info; 273 return info;
274 } 274 }
275 275
276 RequestInfo requestToRequestInfo(Request* value) 276 RequestInfo requestToRequestInfo(Request* value)
277 { 277 {
278 RequestInfo info; 278 RequestInfo info;
279 info.setRequest(value); 279 info.setRequest(value);
280 return info; 280 return info;
281 } 281 }
282 282
283 TEST_F(ServiceWorkerCacheTest, Basics) 283 TEST_F(CacheStorageTest, Basics)
284 { 284 {
285 ErrorWebCacheForTests* testCache; 285 ErrorWebCacheForTests* testCache;
286 Cache* cache = Cache::create(testCache = new NotImplementedErrorCache()); 286 Cache* cache = Cache::create(testCache = new NotImplementedErrorCache());
287 ASSERT(cache); 287 ASSERT(cache);
288 288
289 const String url = "http://www.cachetest.org/"; 289 const String url = "http://www.cachetest.org/";
290 290
291 CacheQueryOptions options; 291 CacheQueryOptions options;
292 ScriptPromise matchPromise = cache->match(scriptState(), stringToRequestInfo (url), options, exceptionState()); 292 ScriptPromise matchPromise = cache->match(scriptState(), stringToRequestInfo (url), options, exceptionState());
293 EXPECT_EQ(kNotImplementedString, getRejectString(matchPromise)); 293 EXPECT_EQ(kNotImplementedString, getRejectString(matchPromise));
294 294
295 cache = Cache::create(testCache = new ErrorWebCacheForTests(WebServiceWorker CacheErrorNotFound)); 295 cache = Cache::create(testCache = new ErrorWebCacheForTests(WebServiceWorker CacheErrorNotFound));
296 matchPromise = cache->match(scriptState(), stringToRequestInfo(url), options , exceptionState()); 296 matchPromise = cache->match(scriptState(), stringToRequestInfo(url), options , exceptionState());
297 ScriptValue scriptValue = getResolveValue(matchPromise); 297 ScriptValue scriptValue = getResolveValue(matchPromise);
298 EXPECT_TRUE(scriptValue.isUndefined()); 298 EXPECT_TRUE(scriptValue.isUndefined());
299 299
300 cache = Cache::create(testCache = new ErrorWebCacheForTests(WebServiceWorker CacheErrorExists)); 300 cache = Cache::create(testCache = new ErrorWebCacheForTests(WebServiceWorker CacheErrorExists));
301 matchPromise = cache->match(scriptState(), stringToRequestInfo(url), options , exceptionState()); 301 matchPromise = cache->match(scriptState(), stringToRequestInfo(url), options , exceptionState());
302 EXPECT_EQ("InvalidAccessError: Entry already exists.", getRejectString(match Promise)); 302 EXPECT_EQ("InvalidAccessError: Entry already exists.", getRejectString(match Promise));
303 } 303 }
304 304
305 // Tests that arguments are faithfully passed on calls to Cache methods, except for methods which use batch operations, 305 // Tests that arguments are faithfully passed on calls to Cache methods, except for methods which use batch operations,
306 // which are tested later. 306 // which are tested later.
307 TEST_F(ServiceWorkerCacheTest, BasicArguments) 307 TEST_F(CacheStorageTest, BasicArguments)
308 { 308 {
309 ErrorWebCacheForTests* testCache; 309 ErrorWebCacheForTests* testCache;
310 Cache* cache = Cache::create(testCache = new NotImplementedErrorCache()); 310 Cache* cache = Cache::create(testCache = new NotImplementedErrorCache());
311 ASSERT(cache); 311 ASSERT(cache);
312 312
313 const String url = "http://www.cache.arguments.test/"; 313 const String url = "http://www.cache.arguments.test/";
314 testCache->setExpectedUrl(&url); 314 testCache->setExpectedUrl(&url);
315 315
316 WebServiceWorkerCache::QueryParams expectedQueryParams; 316 WebServiceWorkerCache::QueryParams expectedQueryParams;
317 expectedQueryParams.ignoreVary = true; 317 expectedQueryParams.ignoreVary = true;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 ScriptPromise keysResult2 = cache->keys(scriptState(), requestToRequestInfo( request), options, exceptionState()); 351 ScriptPromise keysResult2 = cache->keys(scriptState(), requestToRequestInfo( request), options, exceptionState());
352 EXPECT_EQ("dispatchKeys", testCache->getAndClearLastErrorWebCacheMethodCalle d()); 352 EXPECT_EQ("dispatchKeys", testCache->getAndClearLastErrorWebCacheMethodCalle d());
353 EXPECT_EQ(kNotImplementedString, getRejectString(keysResult2)); 353 EXPECT_EQ(kNotImplementedString, getRejectString(keysResult2));
354 354
355 ScriptPromise stringKeysResult2 = cache->keys(scriptState(), stringToRequest Info(url), options, exceptionState()); 355 ScriptPromise stringKeysResult2 = cache->keys(scriptState(), stringToRequest Info(url), options, exceptionState());
356 EXPECT_EQ("dispatchKeys", testCache->getAndClearLastErrorWebCacheMethodCalle d()); 356 EXPECT_EQ("dispatchKeys", testCache->getAndClearLastErrorWebCacheMethodCalle d());
357 EXPECT_EQ(kNotImplementedString, getRejectString(stringKeysResult2)); 357 EXPECT_EQ(kNotImplementedString, getRejectString(stringKeysResult2));
358 } 358 }
359 359
360 // Tests that arguments are faithfully passed to API calls that degrade to batch operations. 360 // Tests that arguments are faithfully passed to API calls that degrade to batch operations.
361 TEST_F(ServiceWorkerCacheTest, BatchOperationArguments) 361 TEST_F(CacheStorageTest, BatchOperationArguments)
362 { 362 {
363 ErrorWebCacheForTests* testCache; 363 ErrorWebCacheForTests* testCache;
364 Cache* cache = Cache::create(testCache = new NotImplementedErrorCache()); 364 Cache* cache = Cache::create(testCache = new NotImplementedErrorCache());
365 ASSERT(cache); 365 ASSERT(cache);
366 366
367 WebServiceWorkerCache::QueryParams expectedQueryParams; 367 WebServiceWorkerCache::QueryParams expectedQueryParams;
368 expectedQueryParams.cacheName = "this is another cache name"; 368 expectedQueryParams.cacheName = "this is another cache name";
369 testCache->setExpectedQueryParams(&expectedQueryParams); 369 testCache->setExpectedQueryParams(&expectedQueryParams);
370 370
371 CacheQueryOptions options; 371 CacheQueryOptions options;
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 virtual void dispatchMatch(CacheMatchCallbacks* callbacks, const WebServiceW orkerRequest& webRequest, const QueryParams& queryParams) override 429 virtual void dispatchMatch(CacheMatchCallbacks* callbacks, const WebServiceW orkerRequest& webRequest, const QueryParams& queryParams) override
430 { 430 {
431 OwnPtr<CacheMatchCallbacks> ownedCallbacks(adoptPtr(callbacks)); 431 OwnPtr<CacheMatchCallbacks> ownedCallbacks(adoptPtr(callbacks));
432 return callbacks->onSuccess(&m_response); 432 return callbacks->onSuccess(&m_response);
433 } 433 }
434 434
435 private: 435 private:
436 WebServiceWorkerResponse& m_response; 436 WebServiceWorkerResponse& m_response;
437 }; 437 };
438 438
439 TEST_F(ServiceWorkerCacheTest, MatchResponseTest) 439 TEST_F(CacheStorageTest, MatchResponseTest)
440 { 440 {
441 const String requestUrl = "http://request.url/"; 441 const String requestUrl = "http://request.url/";
442 const String responseUrl = "http://match.response.test/"; 442 const String responseUrl = "http://match.response.test/";
443 443
444 WebServiceWorkerResponse webResponse; 444 WebServiceWorkerResponse webResponse;
445 webResponse.setURL(KURL(ParsedURLString, responseUrl)); 445 webResponse.setURL(KURL(ParsedURLString, responseUrl));
446 webResponse.setResponseType(WebServiceWorkerResponseTypeDefault); 446 webResponse.setResponseType(WebServiceWorkerResponseTypeDefault);
447 447
448 Cache* cache = Cache::create(new MatchTestCache(webResponse)); 448 Cache* cache = Cache::create(new MatchTestCache(webResponse));
449 CacheQueryOptions options; 449 CacheQueryOptions options;
(...skipping 13 matching lines...) Expand all
463 virtual void dispatchKeys(CacheWithRequestsCallbacks* callbacks, const WebSe rviceWorkerRequest* webRequest, const QueryParams& queryParams) override 463 virtual void dispatchKeys(CacheWithRequestsCallbacks* callbacks, const WebSe rviceWorkerRequest* webRequest, const QueryParams& queryParams) override
464 { 464 {
465 OwnPtr<CacheWithRequestsCallbacks> ownedCallbacks(adoptPtr(callbacks)); 465 OwnPtr<CacheWithRequestsCallbacks> ownedCallbacks(adoptPtr(callbacks));
466 return callbacks->onSuccess(&m_requests); 466 return callbacks->onSuccess(&m_requests);
467 } 467 }
468 468
469 private: 469 private:
470 WebVector<WebServiceWorkerRequest>& m_requests; 470 WebVector<WebServiceWorkerRequest>& m_requests;
471 }; 471 };
472 472
473 TEST_F(ServiceWorkerCacheTest, KeysResponseTest) 473 TEST_F(CacheStorageTest, KeysResponseTest)
474 { 474 {
475 const String url1 = "http://first.request/"; 475 const String url1 = "http://first.request/";
476 const String url2 = "http://second.request/"; 476 const String url2 = "http://second.request/";
477 477
478 Vector<String> expectedUrls(size_t(2)); 478 Vector<String> expectedUrls(size_t(2));
479 expectedUrls[0] = url1; 479 expectedUrls[0] = url1;
480 expectedUrls[1] = url2; 480 expectedUrls[1] = url2;
481 481
482 WebVector<WebServiceWorkerRequest> webRequests(size_t(2)); 482 WebVector<WebServiceWorkerRequest> webRequests(size_t(2));
483 webRequests[0].setURL(KURL(ParsedURLString, url1)); 483 webRequests[0].setURL(KURL(ParsedURLString, url1));
(...skipping 28 matching lines...) Expand all
512 virtual void dispatchBatch(CacheWithResponsesCallbacks* callbacks, const Web Vector<BatchOperation>& batchOperations) override 512 virtual void dispatchBatch(CacheWithResponsesCallbacks* callbacks, const Web Vector<BatchOperation>& batchOperations) override
513 { 513 {
514 OwnPtr<CacheWithResponsesCallbacks> ownedCallbacks(adoptPtr(callbacks)); 514 OwnPtr<CacheWithResponsesCallbacks> ownedCallbacks(adoptPtr(callbacks));
515 return callbacks->onSuccess(&m_responses); 515 return callbacks->onSuccess(&m_responses);
516 } 516 }
517 517
518 private: 518 private:
519 WebVector<WebServiceWorkerResponse>& m_responses; 519 WebVector<WebServiceWorkerResponse>& m_responses;
520 }; 520 };
521 521
522 TEST_F(ServiceWorkerCacheTest, MatchAllAndBatchResponseTest) 522 TEST_F(CacheStorageTest, MatchAllAndBatchResponseTest)
523 { 523 {
524 const String url1 = "http://first.response/"; 524 const String url1 = "http://first.response/";
525 const String url2 = "http://second.response/"; 525 const String url2 = "http://second.response/";
526 526
527 Vector<String> expectedUrls(size_t(2)); 527 Vector<String> expectedUrls(size_t(2));
528 expectedUrls[0] = url1; 528 expectedUrls[0] = url1;
529 expectedUrls[1] = url2; 529 expectedUrls[1] = url2;
530 530
531 WebVector<WebServiceWorkerResponse> webResponses(size_t(2)); 531 WebVector<WebServiceWorkerResponse> webResponses(size_t(2));
532 webResponses[0].setURL(KURL(ParsedURLString, url1)); 532 webResponses[0].setURL(KURL(ParsedURLString, url1));
(...skipping 17 matching lines...) Expand all
550 } 550 }
551 551
552 result = cache->deleteFunction(scriptState(), stringToRequestInfo("http://so me.url/"), options, exceptionState()); 552 result = cache->deleteFunction(scriptState(), stringToRequestInfo("http://so me.url/"), options, exceptionState());
553 scriptValue = getResolveValue(result); 553 scriptValue = getResolveValue(result);
554 EXPECT_TRUE(scriptValue.v8Value()->IsBoolean()); 554 EXPECT_TRUE(scriptValue.v8Value()->IsBoolean());
555 EXPECT_EQ(true, scriptValue.v8Value()->BooleanValue()); 555 EXPECT_EQ(true, scriptValue.v8Value()->BooleanValue());
556 } 556 }
557 557
558 } // namespace 558 } // namespace
559 } // namespace blink 559 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/cachestorage/CacheStorage.idl ('k') | Source/modules/cachestorage/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698