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

Side by Side Diff: Source/core/html/parser/HTMLPreloadScannerTest.cpp

Issue 1148653012: Fix a double download issue on desktop (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 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 | « Source/core/html/parser/HTMLPreloadScanner.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 // 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 "config.h" 5 #include "config.h"
6 #include "core/html/parser/HTMLPreloadScanner.h" 6 #include "core/html/parser/HTMLPreloadScanner.h"
7 7
8 #include "core/MediaTypeNames.h" 8 #include "core/MediaTypeNames.h"
9 #include "core/css/MediaValuesCached.h" 9 #include "core/css/MediaValuesCached.h"
10 #include "core/fetch/ClientHintsPreferences.h" 10 #include "core/fetch/ClientHintsPreferences.h"
11 #include "core/frame/Settings.h"
11 #include "core/html/parser/HTMLParserOptions.h" 12 #include "core/html/parser/HTMLParserOptions.h"
12 #include "core/html/parser/HTMLResourcePreloader.h" 13 #include "core/html/parser/HTMLResourcePreloader.h"
13 #include "core/testing/DummyPageHolder.h" 14 #include "core/testing/DummyPageHolder.h"
14 #include <gtest/gtest.h> 15 #include <gtest/gtest.h>
15 16
16 namespace blink { 17 namespace blink {
17 18
18 typedef struct { 19 typedef struct {
19 const char* baseURL; 20 const char* baseURL;
20 const char* inputHTML; 21 const char* inputHTML;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 data.monochromeBitsPerComponent = 0; 66 data.monochromeBitsPerComponent = 0;
66 data.primaryPointerType = PointerTypeFine; 67 data.primaryPointerType = PointerTypeFine;
67 data.defaultFontSize = 16; 68 data.defaultFontSize = 16;
68 data.threeDEnabled = true; 69 data.threeDEnabled = true;
69 data.mediaType = MediaTypeNames::screen; 70 data.mediaType = MediaTypeNames::screen;
70 data.strictMode = true; 71 data.strictMode = true;
71 data.displayMode = WebDisplayModeBrowser; 72 data.displayMode = WebDisplayModeBrowser;
72 return MediaValuesCached::create(data); 73 return MediaValuesCached::create(data);
73 } 74 }
74 75
76 void runSetUp(bool viewportEnabled)
77 {
78 HTMLParserOptions options(&m_dummyPageHolder->document());
79 KURL documentURL(ParsedURLString, "http://whatever.test/");
80 m_dummyPageHolder->document().settings()->setViewportEnabled(viewportEna bled);
81 m_dummyPageHolder->document().settings()->setViewportMetaEnabled(viewpor tEnabled);
82 m_scanner = HTMLPreloadScanner::create(options, documentURL, CachedDocum entParameters::create(&m_dummyPageHolder->document(), createMediaValues()));
83 }
84
75 virtual void SetUp() 85 virtual void SetUp()
76 { 86 {
77 HTMLParserOptions options(&m_dummyPageHolder->document()); 87 runSetUp(true);
78 KURL documentURL(ParsedURLString, "http://whatever.test/");
79 m_scanner = HTMLPreloadScanner::create(options, documentURL, CachedDocum entParameters::create(&m_dummyPageHolder->document(), createMediaValues()));
80 } 88 }
81 89
82 void test(TestCase testCase) 90 void test(TestCase testCase)
83 { 91 {
84 MockHTMLResourcePreloader preloader; 92 MockHTMLResourcePreloader preloader;
85 KURL baseURL(ParsedURLString, testCase.baseURL); 93 KURL baseURL(ParsedURLString, testCase.baseURL);
86 m_scanner->appendToEnd(String(testCase.inputHTML)); 94 m_scanner->appendToEnd(String(testCase.inputHTML));
87 m_scanner->scan(&preloader, baseURL); 95 m_scanner->scan(&preloader, baseURL);
88 96
89 preloader.preloadRequestVerification(testCase.type, testCase.preloadedUR L, testCase.outputBaseURL, testCase.resourceWidth); 97 preloader.preloadRequestVerification(testCase.type, testCase.preloadedUR L, testCase.outputBaseURL, testCase.resourceWidth);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 {"http://example.test", "<img src='bla.gif' sizes='50vw' srcset='bla2.gi f 160w, bla3.gif 250w, bla4.gif 500w'>", "bla2.gif", "http://example.test/", Res ource::Image, 80}, 139 {"http://example.test", "<img src='bla.gif' sizes='50vw' srcset='bla2.gi f 160w, bla3.gif 250w, bla4.gif 500w'>", "bla2.gif", "http://example.test/", Res ource::Image, 80},
132 {"http://example.test", "<img sizes='50vw' srcset='bla2.gif 160w, bla3.g if 250w, bla4.gif 500w' src='bla.gif'>", "bla2.gif", "http://example.test/", Res ource::Image, 80}, 140 {"http://example.test", "<img sizes='50vw' srcset='bla2.gif 160w, bla3.g if 250w, bla4.gif 500w' src='bla.gif'>", "bla2.gif", "http://example.test/", Res ource::Image, 80},
133 {"http://example.test", "<img srcset='bla2.gif 160w, bla3.gif 250w, bla4 .gif 500w' src='bla.gif' sizes='50vw'>", "bla2.gif", "http://example.test/", Res ource::Image, 80}, 141 {"http://example.test", "<img srcset='bla2.gif 160w, bla3.gif 250w, bla4 .gif 500w' src='bla.gif' sizes='50vw'>", "bla2.gif", "http://example.test/", Res ource::Image, 80},
134 {"http://example.test", "<img srcset='bla2.gif 160w, bla3.gif 250w, bla4 .gif 500w' sizes='50vw' src='bla.gif'>", "bla2.gif", "http://example.test/", Res ource::Image, 80}, 142 {"http://example.test", "<img srcset='bla2.gif 160w, bla3.gif 250w, bla4 .gif 500w' sizes='50vw' src='bla.gif'>", "bla2.gif", "http://example.test/", Res ource::Image, 80},
135 }; 143 };
136 144
137 for (auto testCase : testCases) 145 for (auto testCase : testCases)
138 test(testCase); 146 test(testCase);
139 } 147 }
140 148
149 TEST_F(HTMLPreloadScannerTest, testImagesWithViewportDisabled)
150 {
151 runSetUp(false);
152 TestCase testCases[] = {
153 {"http://example.test", "<meta name=viewport content='width=160'><img sr c='bla.gif'>", "bla.gif", "http://example.test/", Resource::Image, 0},
154 {"http://example.test", "<img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0},
155 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", " http://example.test/", Resource::Image, 0},
156 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 0},
157 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 0},
158 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 100w'>", "bla2.gif", "http://example.test/", Resource::Image, 250},
159 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 100w, bla3.gif 250w'>", "bla3.gif", "http://example.test/", Resource::Image, 2 50},
160 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res ource::Image, 250},
161 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 100w, bla3. gif 250w, bla4.gif 500w' sizes='50vw'>", "bla4.gif", "http://example.test/", Res ource::Image, 250},
162 {"http://example.test", "<img src='bla.gif' sizes='50vw' srcset='bla2.gi f 100w, bla3.gif 250w, bla4.gif 500w'>", "bla4.gif", "http://example.test/", Res ource::Image, 250},
163 {"http://example.test", "<img sizes='50vw' srcset='bla2.gif 100w, bla3.g if 250w, bla4.gif 500w' src='bla.gif'>", "bla4.gif", "http://example.test/", Res ource::Image, 250},
164 {"http://example.test", "<img srcset='bla2.gif 100w, bla3.gif 250w, bla4 .gif 500w' src='bla.gif' sizes='50vw'>", "bla4.gif", "http://example.test/", Res ource::Image, 250},
165 {"http://example.test", "<img srcset='bla2.gif 100w, bla3.gif 250w, bla4 .gif 500w' sizes='50vw' src='bla.gif'>", "bla4.gif", "http://example.test/", Res ource::Image, 250},
166 };
167
168 for (auto testCase : testCases)
169 test(testCase);
170 }
171
141 TEST_F(HTMLPreloadScannerTest, testViewportNoContent) 172 TEST_F(HTMLPreloadScannerTest, testViewportNoContent)
142 { 173 {
143 TestCase testCases[] = { 174 TestCase testCases[] = {
144 {"http://example.test", "<meta name=viewport><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0}, 175 {"http://example.test", "<meta name=viewport><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0},
145 {"http://example.test", "<meta name=viewport content=sdkbsdkjnejjha><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0}, 176 {"http://example.test", "<meta name=viewport content=sdkbsdkjnejjha><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0},
146 }; 177 };
147 178
148 for (auto testCase : testCases) 179 for (auto testCase : testCases)
149 test(testCase); 180 test(testCase);
150 } 181 }
(...skipping 16 matching lines...) Expand all
167 {"http://example.test", "<meta http-equiv='accept-ch' content=' rw '>< img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test /", Resource::Image, 0, rw}, 198 {"http://example.test", "<meta http-equiv='accept-ch' content=' rw '>< img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test /", Resource::Image, 0, rw},
168 {"http://example.test", "<meta http-equiv='accept-ch' content=' rw , w utever'><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://exa mple.test/", Resource::Image, 0, rw}, 199 {"http://example.test", "<meta http-equiv='accept-ch' content=' rw , w utever'><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://exa mple.test/", Resource::Image, 0, rw},
169 {"http://example.test", "<meta http-equiv='accept-ch' content=' rw , w utever, dpr \t'><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "ht tp://example.test/", Resource::Image, 0, dprAndRw}, 200 {"http://example.test", "<meta http-equiv='accept-ch' content=' rw , w utever, dpr \t'><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "ht tp://example.test/", Resource::Image, 0, dprAndRw},
170 }; 201 };
171 202
172 for (auto testCase : testCases) 203 for (auto testCase : testCases)
173 test(testCase); 204 test(testCase);
174 } 205 }
175 206
176 } 207 }
OLDNEW
« no previous file with comments | « Source/core/html/parser/HTMLPreloadScanner.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698