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

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

Issue 1152043005: Add <link rel=preconnect> support to the HTMLPreloadScanner (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Added HTTP family test 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
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/frame/Settings.h"
12 #include "core/html/CrossOriginAttribute.h"
12 #include "core/html/parser/HTMLParserOptions.h" 13 #include "core/html/parser/HTMLParserOptions.h"
13 #include "core/html/parser/HTMLResourcePreloader.h" 14 #include "core/html/parser/HTMLResourcePreloader.h"
14 #include "core/testing/DummyPageHolder.h" 15 #include "core/testing/DummyPageHolder.h"
15 #include <gtest/gtest.h> 16 #include <gtest/gtest.h>
16 17
17 namespace blink { 18 namespace blink {
18 19
19 typedef struct { 20 typedef struct {
20 const char* baseURL; 21 const char* baseURL;
21 const char* inputHTML; 22 const char* inputHTML;
22 const char* preloadedURL; 23 const char* preloadedURL;
23 const char* outputBaseURL; 24 const char* outputBaseURL;
24 Resource::Type type; 25 Resource::Type type;
25 int resourceWidth; 26 int resourceWidth;
26 ClientHintsPreferences preferences; 27 ClientHintsPreferences preferences;
27 } TestCase; 28 } TestCase;
28 29
30 typedef struct {
31 const char* baseURL;
32 const char* inputHTML;
33 const char* preconnectedHost;
34 CrossOriginAttributeValue crossOrigin;
35 } PreconnectTestCase;
36
29 class MockHTMLResourcePreloader : public ResourcePreloader { 37 class MockHTMLResourcePreloader : public ResourcePreloader {
30 public: 38 public:
31 void preloadRequestVerification(Resource::Type type, const String& url, cons t String& baseURL, int width) 39 void preloadRequestVerification(Resource::Type type, const String& url, cons t String& baseURL, int width)
32 { 40 {
41 EXPECT_FALSE(m_preloadRequest->isPreconnect());
33 EXPECT_EQ(m_preloadRequest->resourceType(), type); 42 EXPECT_EQ(m_preloadRequest->resourceType(), type);
34 EXPECT_STREQ(m_preloadRequest->resourceURL().ascii().data(), url.ascii( ).data()); 43 EXPECT_STREQ(m_preloadRequest->resourceURL().ascii().data(), url.ascii( ).data());
35 EXPECT_STREQ(m_preloadRequest->baseURL().ascii().data(), baseURL.ascii() .data()); 44 EXPECT_STREQ(m_preloadRequest->baseURL().string().ascii().data(), baseUR L.ascii().data());
36 EXPECT_EQ(m_preloadRequest->resourceWidth(), width); 45 EXPECT_EQ(m_preloadRequest->resourceWidth(), width);
37 } 46 }
38 47
48 void preconnectRequestVerification(const String& host, CrossOriginAttributeV alue crossOrigin)
49 {
50 if (!host.isNull()) {
51 EXPECT_TRUE(m_preloadRequest->isPreconnect());
52 EXPECT_STREQ(m_preloadRequest->resourceURL().ascii().data(), host.as cii().data());
53 EXPECT_EQ(m_preloadRequest->isCORS(), crossOrigin != CrossOriginAttr ibuteNotSet);
54 EXPECT_EQ(m_preloadRequest->isAllowCredentials(), crossOrigin == Cro ssOriginAttributeUseCredentials);
55 }
56 }
57
39 protected: 58 protected:
40 virtual void preload(PassOwnPtr<PreloadRequest> preloadRequest) 59 virtual void preload(PassOwnPtr<PreloadRequest> preloadRequest)
41 { 60 {
42 m_preloadRequest = preloadRequest; 61 m_preloadRequest = preloadRequest;
43 } 62 }
44 63
45 private: 64 private:
46 65
47 OwnPtr<PreloadRequest> m_preloadRequest; 66 OwnPtr<PreloadRequest> m_preloadRequest;
48 }; 67 };
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 void test(TestCase testCase) 109 void test(TestCase testCase)
91 { 110 {
92 MockHTMLResourcePreloader preloader; 111 MockHTMLResourcePreloader preloader;
93 KURL baseURL(ParsedURLString, testCase.baseURL); 112 KURL baseURL(ParsedURLString, testCase.baseURL);
94 m_scanner->appendToEnd(String(testCase.inputHTML)); 113 m_scanner->appendToEnd(String(testCase.inputHTML));
95 m_scanner->scan(&preloader, baseURL); 114 m_scanner->scan(&preloader, baseURL);
96 115
97 preloader.preloadRequestVerification(testCase.type, testCase.preloadedUR L, testCase.outputBaseURL, testCase.resourceWidth); 116 preloader.preloadRequestVerification(testCase.type, testCase.preloadedUR L, testCase.outputBaseURL, testCase.resourceWidth);
98 } 117 }
99 118
119 void test(PreconnectTestCase testCase)
120 {
121 MockHTMLResourcePreloader preloader;
122 KURL baseURL(ParsedURLString, testCase.baseURL);
123 m_scanner->appendToEnd(String(testCase.inputHTML));
124 m_scanner->scan(&preloader, baseURL);
125 preloader.preconnectRequestVerification(testCase.preconnectedHost, testC ase.crossOrigin);
126 }
127
100 private: 128 private:
101 OwnPtr<DummyPageHolder> m_dummyPageHolder; 129 OwnPtr<DummyPageHolder> m_dummyPageHolder;
102 OwnPtr<HTMLPreloadScanner> m_scanner; 130 OwnPtr<HTMLPreloadScanner> m_scanner;
103 }; 131 };
104 132
105 TEST_F(HTMLPreloadScannerTest, testImages) 133 TEST_F(HTMLPreloadScannerTest, testImages)
106 { 134 {
107 TestCase testCases[] = { 135 TestCase testCases[] = {
108 {"http://example.test", "<img src='bla.gif'>", "bla.gif", "http://exampl e.test/", Resource::Image, 0}, 136 {"http://example.test", "<img src='bla.gif'>", "bla.gif", "http://exampl e.test/", Resource::Image, 0},
109 {"http://example.test", "<img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0}, 137 {"http://example.test", "<img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0},
110 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", " http://example.test/", Resource::Image, 0}, 138 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", " http://example.test/", Resource::Image, 0},
111 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 0}, 139 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 0},
112 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 0}, 140 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 0},
113 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 100w'>", "bla2.gif", "http://example.test/", Resource::Image, 250}, 141 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 100w'>", "bla2.gif", "http://example.test/", Resource::Image, 250},
114 {"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}, 142 {"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},
115 {"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}, 143 {"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},
116 {"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}, 144 {"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},
117 {"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}, 145 {"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},
118 {"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}, 146 {"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},
119 {"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}, 147 {"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},
120 {"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}, 148 {"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},
121 }; 149 };
122 150
123 for (auto testCase : testCases) 151 for (const auto& testCase : testCases)
124 test(testCase); 152 test(testCase);
125 } 153 }
126 154
127 TEST_F(HTMLPreloadScannerTest, testImagesWithViewport) 155 TEST_F(HTMLPreloadScannerTest, testImagesWithViewport)
128 { 156 {
129 TestCase testCases[] = { 157 TestCase testCases[] = {
130 {"http://example.test", "<meta name=viewport content='width=160'><img sr cset='bla.gif 320w, blabla.gif 640w'>", "bla.gif", "http://example.test/", Resou rce::Image, 0}, 158 {"http://example.test", "<meta name=viewport content='width=160'><img sr cset='bla.gif 320w, blabla.gif 640w'>", "bla.gif", "http://example.test/", Resou rce::Image, 0},
131 {"http://example.test", "<img src='bla.gif'>", "bla.gif", "http://exampl e.test/", Resource::Image, 0}, 159 {"http://example.test", "<img src='bla.gif'>", "bla.gif", "http://exampl e.test/", Resource::Image, 0},
132 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", " http://example.test/", Resource::Image, 0}, 160 {"http://example.test", "<img sizes='50vw' src='bla.gif'>", "bla.gif", " http://example.test/", Resource::Image, 0},
133 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 0}, 161 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 1x'>", "bla2.gif", "http://example.test/", Resource::Image, 0},
134 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 0}, 162 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 0.5x'>", "bla.gif", "http://example.test/", Resource::Image, 0},
135 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 160w'>", "bla2.gif", "http://example.test/", Resource::Image, 80}, 163 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 160w'>", "bla2.gif", "http://example.test/", Resource::Image, 80},
136 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 160w, bla3.gif 250w'>", "bla2.gif", "http://example.test/", Resource::Image, 8 0}, 164 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 160w, bla3.gif 250w'>", "bla2.gif", "http://example.test/", Resource::Image, 8 0},
137 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 160w, bla3.gif 250w, bla4.gif 500w'>", "bla2.gif", "http://example.test/", Res ource::Image, 80}, 165 {"http://example.test", "<img sizes='50vw' src='bla.gif' srcset='bla2.gi f 160w, bla3.gif 250w, bla4.gif 500w'>", "bla2.gif", "http://example.test/", Res ource::Image, 80},
138 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 160w, bla3. gif 250w, bla4.gif 500w' sizes='50vw'>", "bla2.gif", "http://example.test/", Res ource::Image, 80}, 166 {"http://example.test", "<img src='bla.gif' srcset='bla2.gif 160w, bla3. gif 250w, bla4.gif 500w' sizes='50vw'>", "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}, 167 {"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},
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}, 168 {"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},
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}, 169 {"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},
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}, 170 {"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},
143 }; 171 };
144 172
145 for (auto testCase : testCases) 173 for (const auto& testCase : testCases)
146 test(testCase); 174 test(testCase);
147 } 175 }
148 176
149 TEST_F(HTMLPreloadScannerTest, testImagesWithViewportDisabled) 177 TEST_F(HTMLPreloadScannerTest, testImagesWithViewportDisabled)
150 { 178 {
151 runSetUp(false); 179 runSetUp(false);
152 TestCase testCases[] = { 180 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}, 181 {"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}, 182 {"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}, 183 {"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}, 184 {"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}, 185 {"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}, 186 {"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}, 187 {"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}, 188 {"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}, 189 {"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}, 190 {"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}, 191 {"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}, 192 {"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}, 193 {"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 }; 194 };
167 195
168 for (auto testCase : testCases) 196 for (const auto& testCase : testCases)
169 test(testCase); 197 test(testCase);
170 } 198 }
171 199
172 TEST_F(HTMLPreloadScannerTest, testViewportNoContent) 200 TEST_F(HTMLPreloadScannerTest, testViewportNoContent)
173 { 201 {
174 TestCase testCases[] = { 202 TestCase testCases[] = {
175 {"http://example.test", "<meta name=viewport><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0}, 203 {"http://example.test", "<meta name=viewport><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}, 204 {"http://example.test", "<meta name=viewport content=sdkbsdkjnejjha><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0},
177 }; 205 };
178 206
179 for (auto testCase : testCases) 207 for (const auto& testCase : testCases)
180 test(testCase); 208 test(testCase);
181 } 209 }
182 210
183 TEST_F(HTMLPreloadScannerTest, testMetaAcceptCH) 211 TEST_F(HTMLPreloadScannerTest, testMetaAcceptCH)
184 { 212 {
185 ClientHintsPreferences dpr; 213 ClientHintsPreferences dpr;
186 ClientHintsPreferences rw; 214 ClientHintsPreferences rw;
187 ClientHintsPreferences dprAndRw; 215 ClientHintsPreferences dprAndRw;
188 dpr.setShouldSendDPR(true); 216 dpr.setShouldSendDPR(true);
189 dprAndRw.setShouldSendDPR(true); 217 dprAndRw.setShouldSendDPR(true);
190 rw.setShouldSendRW(true); 218 rw.setShouldSendRW(true);
191 dprAndRw.setShouldSendRW(true); 219 dprAndRw.setShouldSendRW(true);
192 TestCase testCases[] = { 220 TestCase testCases[] = {
193 {"http://example.test", "<meta http-equiv='accept-ch' content='bla'><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0}, 221 {"http://example.test", "<meta http-equiv='accept-ch' content='bla'><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Image, 0},
194 {"http://example.test", "<meta http-equiv='accept-ch' content='dprw'><im g srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/" , Resource::Image, 0}, 222 {"http://example.test", "<meta http-equiv='accept-ch' content='dprw'><im g srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/" , Resource::Image, 0},
195 {"http://example.test", "<meta http-equiv='accept-ch'><img srcset='bla.g if 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Ima ge, 0}, 223 {"http://example.test", "<meta http-equiv='accept-ch'><img srcset='bla.g if 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test/", Resource::Ima ge, 0},
196 {"http://example.test", "<meta http-equiv='accept-ch' content='dpr \t'>< img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test /", Resource::Image, 0, dpr}, 224 {"http://example.test", "<meta http-equiv='accept-ch' content='dpr \t'>< img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example.test /", Resource::Image, 0, dpr},
197 {"http://example.test", "<meta http-equiv='accept-ch' content='bla,dpr \ t'><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example. test/", Resource::Image, 0, dpr}, 225 {"http://example.test", "<meta http-equiv='accept-ch' content='bla,dpr \ t'><img srcset='bla.gif 320w, blabla.gif 640w'>", "blabla.gif", "http://example. test/", Resource::Image, 0, dpr},
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}, 226 {"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},
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}, 227 {"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},
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}, 228 {"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},
201 }; 229 };
202 230
203 for (auto testCase : testCases) 231 for (const auto& testCase : testCases)
204 test(testCase); 232 test(testCase);
205 } 233 }
206 234
235 TEST_F(HTMLPreloadScannerTest, testPreconnect)
236 {
237 PreconnectTestCase testCases[] = {
238 {"http://example.test", "<link rel=preconnect href=http://example2.test> ", "http://example2.test", CrossOriginAttributeNotSet},
239 {"http://example.test", "<link rel=preconnect href=http://example2.test crossorigin=anonymous>", "http://example2.test", CrossOriginAttributeAnonymous},
240 {"http://example.test", "<link rel=preconnect href=http://example2.test crossorigin='use-credentials'>", "http://example2.test", CrossOriginAttributeUse Credentials},
241 {"http://example.test", "<link rel=preconnected href=http://example2.tes t crossorigin='use-credentials'>", nullptr, CrossOriginAttributeNotSet},
242 {"http://example.test", "<link rel=preconnect href=ws://example2.test cr ossorigin='use-credentials'>", nullptr, CrossOriginAttributeNotSet},
243 };
244
245 for (const auto& testCase : testCases)
246 test(testCase);
247 }
248
207 } 249 }
OLDNEW
« no previous file with comments | « Source/core/html/parser/HTMLPreloadScanner.cpp ('k') | Source/core/html/parser/HTMLResourcePreloader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698