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

Side by Side Diff: third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp

Issue 1686483002: Oilpan: Remove most WillBe types from the code base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "core/loader/LinkLoader.h" 5 #include "core/loader/LinkLoader.h"
6 6
7 #include "core/fetch/MemoryCache.h" 7 #include "core/fetch/MemoryCache.h"
8 #include "core/fetch/ResourceFetcher.h" 8 #include "core/fetch/ResourceFetcher.h"
9 #include "core/frame/Settings.h" 9 #include "core/frame/Settings.h"
10 #include "core/html/LinkRelAttribute.h" 10 #include "core/html/LinkRelAttribute.h"
11 #include "core/loader/DocumentLoader.h" 11 #include "core/loader/DocumentLoader.h"
12 #include "core/loader/LinkLoaderClient.h" 12 #include "core/loader/LinkLoaderClient.h"
13 #include "core/loader/NetworkHintsInterface.h" 13 #include "core/loader/NetworkHintsInterface.h"
14 #include "core/testing/DummyPageHolder.h" 14 #include "core/testing/DummyPageHolder.h"
15 #include "platform/network/ResourceLoadPriority.h" 15 #include "platform/network/ResourceLoadPriority.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 #include <base/macros.h> 17 #include <base/macros.h>
18 18
19 namespace blink { 19 namespace blink {
20 20
21 class MockLinkLoaderClient final : public NoBaseWillBeGarbageCollectedFinalized< MockLinkLoaderClient>, public LinkLoaderClient { 21 class MockLinkLoaderClient final : public GarbageCollectedFinalized<MockLinkLoad erClient>, public LinkLoaderClient {
22 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(MockLinkLoaderClient); 22 USING_GARBAGE_COLLECTED_MIXIN(MockLinkLoaderClient);
23 public: 23 public:
24 static PassOwnPtrWillBeRawPtr<MockLinkLoaderClient> create(bool shouldLoad) 24 static RawPtr<MockLinkLoaderClient> create(bool shouldLoad)
25 { 25 {
26 return adoptPtrWillBeNoop(new MockLinkLoaderClient(shouldLoad)); 26 return (new MockLinkLoaderClient(shouldLoad));
27 } 27 }
28 28
29 DEFINE_INLINE_VIRTUAL_TRACE() { LinkLoaderClient::trace(visitor); } 29 DEFINE_INLINE_VIRTUAL_TRACE() { LinkLoaderClient::trace(visitor); }
30 30
31 bool shouldLoadLink() override 31 bool shouldLoadLink() override
32 { 32 {
33 return m_shouldLoad; 33 return m_shouldLoad;
34 } 34 }
35 35
36 void linkLoaded() override {} 36 void linkLoaded() override {}
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 // TODO(yoav): subresource should be *very* low priority (rather than lo w). 103 // TODO(yoav): subresource should be *very* low priority (rather than lo w).
104 {"data://example.test/cat.empty", "", ResourceLoadPriorityLow, WebURLReq uest::RequestContextSubresource, true, ""}, 104 {"data://example.test/cat.empty", "", ResourceLoadPriorityLow, WebURLReq uest::RequestContextSubresource, true, ""},
105 {"data://example.test/cat.blob", "blabla", ResourceLoadPriorityLow, WebU RLRequest::RequestContextSubresource, true, ""}, 105 {"data://example.test/cat.blob", "blabla", ResourceLoadPriorityLow, WebU RLRequest::RequestContextSubresource, true, ""},
106 {"bla://example.test/cat.gif", "image", ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextImage, false, ""}, 106 {"bla://example.test/cat.gif", "image", ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextImage, false, ""},
107 }; 107 };
108 108
109 // Test the cases with a single header 109 // Test the cases with a single header
110 for (const auto& testCase : cases) { 110 for (const auto& testCase : cases) {
111 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz e(500, 500)); 111 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz e(500, 500));
112 dummyPageHolder->frame().settings()->setScriptEnabled(true); 112 dummyPageHolder->frame().settings()->setScriptEnabled(true);
113 OwnPtrWillBePersistent<MockLinkLoaderClient> loaderClient = MockLinkLoad erClient::create(testCase.shouldLoad); 113 Persistent<MockLinkLoaderClient> loaderClient = MockLinkLoaderClient::cr eate(testCase.shouldLoad);
114 OwnPtrWillBeRawPtr<LinkLoader> loader = LinkLoader::create(loaderClient. get()); 114 RawPtr<LinkLoader> loader = LinkLoader::create(loaderClient.get());
115 KURL hrefURL = KURL(KURL(), testCase.href); 115 KURL hrefURL = KURL(KURL(), testCase.href);
116 loader->loadLink(LinkRelAttribute("preload"), 116 loader->loadLink(LinkRelAttribute("preload"),
117 CrossOriginAttributeNotSet, 117 CrossOriginAttributeNotSet,
118 String(), 118 String(),
119 testCase.as, 119 testCase.as,
120 hrefURL, 120 hrefURL,
121 dummyPageHolder->document(), 121 dummyPageHolder->document(),
122 NetworkHintsMock()); 122 NetworkHintsMock());
123 ASSERT(dummyPageHolder->document().fetcher()); 123 ASSERT(dummyPageHolder->document().fetcher());
124 WillBeHeapListHashSet<RefPtrWillBeMember<Resource>>* preloads = dummyPag eHolder->document().fetcher()->preloads(); 124 HeapListHashSet<Member<Resource>>* preloads = dummyPageHolder->document( ).fetcher()->preloads();
125 if (testCase.shouldLoad) 125 if (testCase.shouldLoad)
126 ASSERT_NE(nullptr, preloads); 126 ASSERT_NE(nullptr, preloads);
127 if (preloads) { 127 if (preloads) {
128 if (testCase.priority == ResourceLoadPriorityUnresolved) { 128 if (testCase.priority == ResourceLoadPriorityUnresolved) {
129 ASSERT_EQ((unsigned)0, preloads->size()); 129 ASSERT_EQ((unsigned)0, preloads->size());
130 } else { 130 } else {
131 ASSERT_EQ((unsigned)1, preloads->size()); 131 ASSERT_EQ((unsigned)1, preloads->size());
132 if (preloads->size() > 0) { 132 if (preloads->size() > 0) {
133 Resource* resource = preloads->begin().get()->get(); 133 Resource* resource = preloads->begin().get()->get();
134 ASSERT_EQ(testCase.priority, resource->resourceRequest().pri ority()); 134 ASSERT_EQ(testCase.priority, resource->resourceRequest().pri ority());
(...skipping 17 matching lines...) Expand all
152 {"https://example.com/", true}, 152 {"https://example.com/", true},
153 {"//example.com/", true}, 153 {"//example.com/", true},
154 }; 154 };
155 155
156 // TODO(yoav): Test (and fix) shouldLoad = false 156 // TODO(yoav): Test (and fix) shouldLoad = false
157 157
158 // Test the cases with a single header 158 // Test the cases with a single header
159 for (const auto& testCase : cases) { 159 for (const auto& testCase : cases) {
160 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz e(500, 500)); 160 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz e(500, 500));
161 dummyPageHolder->document().settings()->setDNSPrefetchingEnabled(true); 161 dummyPageHolder->document().settings()->setDNSPrefetchingEnabled(true);
162 OwnPtrWillBePersistent<MockLinkLoaderClient> loaderClient = MockLinkLoad erClient::create(testCase.shouldLoad); 162 Persistent<MockLinkLoaderClient> loaderClient = MockLinkLoaderClient::cr eate(testCase.shouldLoad);
163 OwnPtrWillBeRawPtr<LinkLoader> loader = LinkLoader::create(loaderClient. get()); 163 RawPtr<LinkLoader> loader = LinkLoader::create(loaderClient.get());
164 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co m")), testCase.href); 164 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co m")), testCase.href);
165 NetworkHintsMock networkHints; 165 NetworkHintsMock networkHints;
166 loader->loadLink(LinkRelAttribute("dns-prefetch"), 166 loader->loadLink(LinkRelAttribute("dns-prefetch"),
167 CrossOriginAttributeNotSet, 167 CrossOriginAttributeNotSet,
168 String(), 168 String(),
169 String(), 169 String(),
170 hrefURL, 170 hrefURL,
171 dummyPageHolder->document(), 171 dummyPageHolder->document(),
172 networkHints); 172 networkHints);
173 ASSERT_FALSE(networkHints.didPreconnect()); 173 ASSERT_FALSE(networkHints.didPreconnect());
(...skipping 12 matching lines...) Expand all
186 } cases[] = { 186 } cases[] = {
187 {"http://example.com/", CrossOriginAttributeNotSet, true, false, false}, 187 {"http://example.com/", CrossOriginAttributeNotSet, true, false, false},
188 {"https://example.com/", CrossOriginAttributeNotSet, true, true, false}, 188 {"https://example.com/", CrossOriginAttributeNotSet, true, true, false},
189 {"http://example.com/", CrossOriginAttributeAnonymous, true, false, true }, 189 {"http://example.com/", CrossOriginAttributeAnonymous, true, false, true },
190 {"//example.com/", CrossOriginAttributeNotSet, true, false, false}, 190 {"//example.com/", CrossOriginAttributeNotSet, true, false, false},
191 }; 191 };
192 192
193 // Test the cases with a single header 193 // Test the cases with a single header
194 for (const auto& testCase : cases) { 194 for (const auto& testCase : cases) {
195 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz e(500, 500)); 195 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSiz e(500, 500));
196 OwnPtrWillBePersistent<MockLinkLoaderClient> loaderClient = MockLinkLoad erClient::create(testCase.shouldLoad); 196 Persistent<MockLinkLoaderClient> loaderClient = MockLinkLoaderClient::cr eate(testCase.shouldLoad);
197 OwnPtrWillBeRawPtr<LinkLoader> loader = LinkLoader::create(loaderClient. get()); 197 RawPtr<LinkLoader> loader = LinkLoader::create(loaderClient.get());
198 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co m")), testCase.href); 198 KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.co m")), testCase.href);
199 NetworkHintsMock networkHints; 199 NetworkHintsMock networkHints;
200 loader->loadLink(LinkRelAttribute("preconnect"), 200 loader->loadLink(LinkRelAttribute("preconnect"),
201 testCase.crossOrigin, 201 testCase.crossOrigin,
202 String(), 202 String(),
203 String(), 203 String(),
204 hrefURL, 204 hrefURL,
205 dummyPageHolder->document(), 205 dummyPageHolder->document(),
206 networkHints); 206 networkHints);
207 ASSERT_EQ(testCase.shouldLoad, networkHints.didPreconnect()); 207 ASSERT_EQ(testCase.shouldLoad, networkHints.didPreconnect());
208 ASSERT_EQ(testCase.isHTTPS, networkHints.isHTTPS()); 208 ASSERT_EQ(testCase.isHTTPS, networkHints.isHTTPS());
209 ASSERT_EQ(testCase.isCrossOrigin, networkHints.isCrossOrigin()); 209 ASSERT_EQ(testCase.isCrossOrigin, networkHints.isCrossOrigin());
210 } 210 }
211 } 211 }
212 212
213 } // namespace blink 213 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698