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

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

Issue 2810843002: bindings: Make the sequence conversion code more complaint with WebIDL. (Closed)
Patch Set: Adjust even more tests Created 3 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
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 "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"
11 #include "bindings/core/v8/IDLTypes.h"
12 #include "bindings/core/v8/NativeValueTraitsImpl.h"
11 #include "bindings/core/v8/ScriptFunction.h" 13 #include "bindings/core/v8/ScriptFunction.h"
12 #include "bindings/core/v8/ScriptPromise.h" 14 #include "bindings/core/v8/ScriptPromise.h"
13 #include "bindings/core/v8/ScriptPromiseResolver.h" 15 #include "bindings/core/v8/ScriptPromiseResolver.h"
14 #include "bindings/core/v8/ScriptValue.h" 16 #include "bindings/core/v8/ScriptValue.h"
15 #include "bindings/core/v8/V8Binding.h" 17 #include "bindings/core/v8/V8Binding.h"
16 #include "bindings/modules/v8/V8Request.h" 18 #include "bindings/modules/v8/V8Request.h"
17 #include "bindings/modules/v8/V8Response.h" 19 #include "bindings/modules/v8/V8Response.h"
18 #include "core/dom/Document.h" 20 #include "core/dom/Document.h"
19 #include "core/dom/ExecutionContext.h" 21 #include "core/dom/ExecutionContext.h"
20 #include "core/frame/Frame.h" 22 #include "core/frame/Frame.h"
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 606
605 WebVector<WebServiceWorkerRequest> web_requests(size_t(2)); 607 WebVector<WebServiceWorkerRequest> web_requests(size_t(2));
606 web_requests[0].SetURL(KURL(kParsedURLString, url1)); 608 web_requests[0].SetURL(KURL(kParsedURLString, url1));
607 web_requests[1].SetURL(KURL(kParsedURLString, url2)); 609 web_requests[1].SetURL(KURL(kParsedURLString, url2));
608 610
609 Cache* cache = CreateCache(fetcher, new KeysTestCache(web_requests)); 611 Cache* cache = CreateCache(fetcher, new KeysTestCache(web_requests));
610 612
611 ScriptPromise result = cache->keys(GetScriptState(), exception_state); 613 ScriptPromise result = cache->keys(GetScriptState(), exception_state);
612 ScriptValue script_value = GetResolveValue(result); 614 ScriptValue script_value = GetResolveValue(result);
613 615
614 Vector<v8::Local<v8::Value>> requests = 616 HeapVector<Member<Request>> requests =
615 ToImplArray<Vector<v8::Local<v8::Value>>>(script_value.V8Value(), 0, 617 NativeValueTraits<IDLSequence<Request>>::NativeValue(
616 GetIsolate(), exception_state); 618 GetIsolate(), script_value.V8Value(), exception_state);
617 EXPECT_EQ(expected_urls.size(), requests.size()); 619 EXPECT_EQ(expected_urls.size(), requests.size());
618 for (int i = 0, minsize = std::min(expected_urls.size(), requests.size()); 620 for (int i = 0, minsize = std::min(expected_urls.size(), requests.size());
619 i < minsize; ++i) { 621 i < minsize; ++i) {
620 Request* request = 622 Request* request = requests[i];
621 V8Request::toImplWithTypeCheck(GetIsolate(), requests[i]);
622 EXPECT_TRUE(request); 623 EXPECT_TRUE(request);
623 if (request) 624 if (request)
624 EXPECT_EQ(expected_urls[i], request->url()); 625 EXPECT_EQ(expected_urls[i], request->url());
625 } 626 }
626 } 627 }
627 628
628 class MatchAllAndBatchTestCache : public NotImplementedErrorCache { 629 class MatchAllAndBatchTestCache : public NotImplementedErrorCache {
629 public: 630 public:
630 MatchAllAndBatchTestCache(WebVector<WebServiceWorkerResponse>& responses) 631 MatchAllAndBatchTestCache(WebVector<WebServiceWorkerResponse>& responses)
631 : responses_(responses) {} 632 : responses_(responses) {}
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 668
668 Cache* cache = 669 Cache* cache =
669 CreateCache(fetcher, new MatchAllAndBatchTestCache(web_responses)); 670 CreateCache(fetcher, new MatchAllAndBatchTestCache(web_responses));
670 671
671 CacheQueryOptions options; 672 CacheQueryOptions options;
672 ScriptPromise result = 673 ScriptPromise result =
673 cache->matchAll(GetScriptState(), StringToRequestInfo("http://some.url/"), 674 cache->matchAll(GetScriptState(), StringToRequestInfo("http://some.url/"),
674 options, exception_state); 675 options, exception_state);
675 ScriptValue script_value = GetResolveValue(result); 676 ScriptValue script_value = GetResolveValue(result);
676 677
677 Vector<v8::Local<v8::Value>> responses = 678 HeapVector<Member<Response>> responses =
678 ToImplArray<Vector<v8::Local<v8::Value>>>(script_value.V8Value(), 0, 679 NativeValueTraits<IDLSequence<Response>>::NativeValue(
679 GetIsolate(), exception_state); 680 GetIsolate(), script_value.V8Value(), exception_state);
680 EXPECT_EQ(expected_urls.size(), responses.size()); 681 EXPECT_EQ(expected_urls.size(), responses.size());
681 for (int i = 0, minsize = std::min(expected_urls.size(), responses.size()); 682 for (int i = 0, minsize = std::min(expected_urls.size(), responses.size());
682 i < minsize; ++i) { 683 i < minsize; ++i) {
683 Response* response = 684 Response* response = responses[i];
684 V8Response::toImplWithTypeCheck(GetIsolate(), responses[i]);
685 EXPECT_TRUE(response); 685 EXPECT_TRUE(response);
686 if (response) 686 if (response)
687 EXPECT_EQ(expected_urls[i], response->url()); 687 EXPECT_EQ(expected_urls[i], response->url());
688 } 688 }
689 689
690 result = cache->deleteFunction(GetScriptState(), 690 result = cache->deleteFunction(GetScriptState(),
691 StringToRequestInfo("http://some.url/"), 691 StringToRequestInfo("http://some.url/"),
692 options, exception_state); 692 options, exception_state);
693 script_value = GetResolveValue(result); 693 script_value = GetResolveValue(result);
694 EXPECT_TRUE(script_value.V8Value()->IsBoolean()); 694 EXPECT_TRUE(script_value.V8Value()->IsBoolean());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 733
734 EXPECT_EQ(kNotImplementedString, GetRejectString(add_result)); 734 EXPECT_EQ(kNotImplementedString, GetRejectString(add_result));
735 EXPECT_EQ(1, fetcher->FetchCount()); 735 EXPECT_EQ(1, fetcher->FetchCount());
736 EXPECT_EQ("dispatchBatch", 736 EXPECT_EQ("dispatchBatch",
737 test_cache->GetAndClearLastErrorWebCacheMethodCalled()); 737 test_cache->GetAndClearLastErrorWebCacheMethodCalled());
738 } 738 }
739 739
740 } // namespace 740 } // namespace
741 741
742 } // namespace blink 742 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698