Chromium Code Reviews| OLD | NEW |
|---|---|
| 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()) { | |
|
Mike West
2015/06/03 09:02:27
When would `host` be null? Can we simply ASSERT th
| |
| 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 Loading... | |
| 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 }; | |
| 243 | |
| 244 for (const auto& testCase : testCases) | |
| 245 test(testCase); | |
| 246 } | |
| 247 | |
| 207 } | 248 } |
| OLD | NEW |