| 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/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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |