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

Side by Side Diff: third_party/WebKit/Source/platform/loader/fetch/ResourceFetcherTest.cpp

Issue 2845513002: [WIP] Add Resource::IsShareable
Patch Set: fix Created 3 years, 6 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
« no previous file with comments | « third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013, Google Inc. All rights reserved. 2 * Copyright (c) 2013, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); 141 Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
142 EXPECT_TRUE(resource->IsLoaded()); 142 EXPECT_TRUE(resource->IsLoaded());
143 EXPECT_TRUE(GetMemoryCache()->Contains(resource)); 143 EXPECT_TRUE(GetMemoryCache()->Contains(resource));
144 144
145 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher); 145 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher);
146 EXPECT_EQ(resource, new_resource); 146 EXPECT_EQ(resource, new_resource);
147 } 147 }
148 148
149 TEST_F(ResourceFetcherTest, Vary) { 149 TEST_F(ResourceFetcherTest, Vary) {
150 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html"); 150 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html");
151 Resource* resource = 151 Resource* resource = MockResource::Create(ResourceRequest(url));
152 RawResource::Create(ResourceRequest(url), Resource::kRaw);
153 GetMemoryCache()->Add(resource); 152 GetMemoryCache()->Add(resource);
154 ResourceResponse response; 153 ResourceResponse response;
155 response.SetURL(url); 154 response.SetURL(url);
156 response.SetHTTPStatusCode(200); 155 response.SetHTTPStatusCode(200);
157 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 156 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
158 response.SetHTTPHeaderField(HTTPNames::Vary, "*"); 157 response.SetHTTPHeaderField(HTTPNames::Vary, "*");
159 resource->ResponseReceived(response, nullptr); 158 resource->ResponseReceived(response, nullptr);
160 resource->Finish(); 159 resource->Finish();
161 ASSERT_TRUE(resource->MustReloadDueToVaryHeader(ResourceRequest(url))); 160 ASSERT_TRUE(resource->MustReloadDueToVaryHeader(ResourceRequest(url)));
162 161
163 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 162 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
164 ResourceRequest resource_request(url); 163 ResourceRequest resource_request(url);
165 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal); 164 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal);
166 FetchParameters fetch_params = 165 FetchParameters fetch_params =
167 FetchParameters(resource_request, FetchInitiatorInfo()); 166 FetchParameters(resource_request, FetchInitiatorInfo());
168 Platform::Current()->GetURLLoaderMockFactory()->RegisterURL( 167 Platform::Current()->GetURLLoaderMockFactory()->RegisterURL(
169 url, WebURLResponse(), ""); 168 url, WebURLResponse(), "");
170 Resource* new_resource = RawResource::Fetch(fetch_params, fetcher); 169 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher);
171 EXPECT_NE(resource, new_resource); 170 EXPECT_NE(resource, new_resource);
172 new_resource->Loader()->Cancel(); 171 new_resource->Loader()->Cancel();
173 } 172 }
174 173
175 TEST_F(ResourceFetcherTest, NavigationTimingInfo) { 174 TEST_F(ResourceFetcherTest, NavigationTimingInfo) {
176 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html"); 175 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html");
177 ResourceResponse response; 176 ResourceResponse response;
178 response.SetURL(url); 177 response.SetURL(url);
179 response.SetHTTPStatusCode(200); 178 response.SetHTTPStatusCode(200);
180 179
(...skipping 27 matching lines...) Expand all
208 ResourceRequest redirect_resource_request(url); 207 ResourceRequest redirect_resource_request(url);
209 fetcher->RecordResourceTimingOnRedirect(resource, redirect_response, false); 208 fetcher->RecordResourceTimingOnRedirect(resource, redirect_response, false);
210 EXPECT_EQ(navigation_timing_info->TransferSize(), 209 EXPECT_EQ(navigation_timing_info->TransferSize(),
211 encoded_data_length + redirect_encoded_data_length); 210 encoded_data_length + redirect_encoded_data_length);
212 } 211 }
213 212
214 TEST_F(ResourceFetcherTest, VaryOnBack) { 213 TEST_F(ResourceFetcherTest, VaryOnBack) {
215 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 214 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
216 215
217 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html"); 216 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html");
218 Resource* resource = 217 Resource* resource = MockResource::Create(ResourceRequest(url));
219 RawResource::Create(ResourceRequest(url), Resource::kRaw);
220 GetMemoryCache()->Add(resource); 218 GetMemoryCache()->Add(resource);
221 ResourceResponse response; 219 ResourceResponse response;
222 response.SetURL(url); 220 response.SetURL(url);
223 response.SetHTTPStatusCode(200); 221 response.SetHTTPStatusCode(200);
224 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600"); 222 response.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=3600");
225 response.SetHTTPHeaderField(HTTPNames::Vary, "*"); 223 response.SetHTTPHeaderField(HTTPNames::Vary, "*");
226 resource->ResponseReceived(response, nullptr); 224 resource->ResponseReceived(response, nullptr);
227 resource->Finish(); 225 resource->Finish();
228 ASSERT_TRUE(resource->MustReloadDueToVaryHeader(ResourceRequest(url))); 226 ASSERT_TRUE(resource->MustReloadDueToVaryHeader(ResourceRequest(url)));
229 227
230 ResourceRequest resource_request(url); 228 ResourceRequest resource_request(url);
231 resource_request.SetCachePolicy(WebCachePolicy::kReturnCacheDataElseLoad); 229 resource_request.SetCachePolicy(WebCachePolicy::kReturnCacheDataElseLoad);
232 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal); 230 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal);
233 FetchParameters fetch_params = 231 FetchParameters fetch_params =
234 FetchParameters(resource_request, FetchInitiatorInfo()); 232 FetchParameters(resource_request, FetchInitiatorInfo());
235 Resource* new_resource = RawResource::Fetch(fetch_params, fetcher); 233 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher);
236 EXPECT_EQ(resource, new_resource); 234 EXPECT_EQ(resource, new_resource);
237 } 235 }
238 236
239 TEST_F(ResourceFetcherTest, VaryResource) { 237 TEST_F(ResourceFetcherTest, VaryResource) {
240 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 238 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
241 239
242 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html"); 240 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html");
243 ResourceResponse response; 241 ResourceResponse response;
244 response.SetURL(url); 242 response.SetURL(url);
245 response.SetHTTPStatusCode(200); 243 response.SetHTTPStatusCode(200);
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 // preload matching 691 // preload matching
694 Resource* resource3 = MockResource::Fetch(fetch_params_for_request, fetcher); 692 Resource* resource3 = MockResource::Fetch(fetch_params_for_request, fetcher);
695 EXPECT_EQ(resource1, resource3); 693 EXPECT_EQ(resource1, resource3);
696 EXPECT_FALSE(fetcher->ContainsAsPreload(resource1)); 694 EXPECT_FALSE(fetcher->ContainsAsPreload(resource1));
697 EXPECT_FALSE(resource1->IsPreloaded()); 695 EXPECT_FALSE(resource1->IsPreloaded());
698 EXPECT_FALSE(resource1->IsLinkPreload()); 696 EXPECT_FALSE(resource1->IsLinkPreload());
699 } 697 }
700 698
701 TEST_F(ResourceFetcherTest, Revalidate304) { 699 TEST_F(ResourceFetcherTest, Revalidate304) {
702 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html"); 700 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.html");
703 Resource* resource = 701 Resource* resource = MockResource::Create(ResourceRequest(url));
704 RawResource::Create(ResourceRequest(url), Resource::kRaw);
705 GetMemoryCache()->Add(resource);
706 ResourceResponse response; 702 ResourceResponse response;
707 response.SetURL(url); 703 response.SetURL(url);
708 response.SetHTTPStatusCode(304); 704 response.SetHTTPStatusCode(304);
709 response.SetHTTPHeaderField("etag", "1234567890"); 705 response.SetHTTPHeaderField("etag", "1234567890");
710 resource->ResponseReceived(response, nullptr); 706 resource->ResponseReceived(response, nullptr);
711 resource->Finish(); 707 resource->Finish();
712 708
713 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 709 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
714 ResourceRequest resource_request(url); 710 ResourceRequest resource_request(url);
715 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal); 711 resource_request.SetRequestContext(WebURLRequest::kRequestContextInternal);
716 FetchParameters fetch_params = 712 FetchParameters fetch_params =
717 FetchParameters(resource_request, FetchInitiatorInfo()); 713 FetchParameters(resource_request, FetchInitiatorInfo());
718 Platform::Current()->GetURLLoaderMockFactory()->RegisterURL( 714 Platform::Current()->GetURLLoaderMockFactory()->RegisterURL(
719 url, WebURLResponse(), ""); 715 url, WebURLResponse(), "");
720 Resource* new_resource = RawResource::Fetch(fetch_params, fetcher); 716 Resource* new_resource = MockResource::Fetch(fetch_params, fetcher);
721 fetcher->StopFetching(); 717 fetcher->StopFetching();
722 718
723 EXPECT_NE(resource, new_resource); 719 EXPECT_NE(resource, new_resource);
724 } 720 }
725 721
726 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndMove) { 722 TEST_F(ResourceFetcherTest, LinkPreloadResourceMultipleFetchersAndMove) {
727 ResourceFetcher* fetcher = ResourceFetcher::Create(Context()); 723 ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
728 ResourceFetcher* fetcher2 = ResourceFetcher::Create(Context()); 724 ResourceFetcher* fetcher2 = ResourceFetcher::Create(Context());
729 725
730 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.png"); 726 KURL url(kParsedURLString, "http://127.0.0.1:8000/foo.png");
(...skipping 23 matching lines...) Expand all
754 FetchParameters fetch_params = FetchParameters( 750 FetchParameters fetch_params = FetchParameters(
755 ResourceRequest("data:text/testmimetype,foo"), FetchInitiatorInfo()); 751 ResourceRequest("data:text/testmimetype,foo"), FetchInitiatorInfo());
756 Resource* resource = MockResource::Fetch(fetch_params, fetcher); 752 Resource* resource = MockResource::Fetch(fetch_params, fetcher);
757 ASSERT_TRUE(resource); 753 ASSERT_TRUE(resource);
758 EXPECT_EQ(ResourceStatus::kCached, resource->GetStatus()); 754 EXPECT_EQ(ResourceStatus::kCached, resource->GetStatus());
759 EXPECT_EQ("text/testmimetype", resource->GetResponse().MimeType()); 755 EXPECT_EQ("text/testmimetype", resource->GetResponse().MimeType());
760 EXPECT_EQ("text/testmimetype", resource->GetResponse().HttpContentType()); 756 EXPECT_EQ("text/testmimetype", resource->GetResponse().HttpContentType());
761 } 757 }
762 758
763 } // namespace blink 759 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698