| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "core/css/MediaQueryEvaluator.h" | 5 #include "core/css/MediaQueryEvaluator.h" |
| 6 | 6 |
| 7 #include "core/MediaTypeNames.h" | 7 #include "core/MediaTypeNames.h" |
| 8 #include "core/css/MediaList.h" | 8 #include "core/css/MediaList.h" |
| 9 #include "core/css/MediaValuesCached.h" | 9 #include "core/css/MediaValuesCached.h" |
| 10 #include "core/frame/FrameView.h" | 10 #include "core/frame/FrameView.h" |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 | 117 |
| 118 TestCase printTestCases[] = { | 118 TestCase printTestCases[] = { |
| 119 {"print and (min-resolution: 1dppx)", 1}, | 119 {"print and (min-resolution: 1dppx)", 1}, |
| 120 {"print and (min-resolution: 118dpcm)", 1}, | 120 {"print and (min-resolution: 118dpcm)", 1}, |
| 121 {"print and (min-resolution: 119dpcm)", 0}, | 121 {"print and (min-resolution: 119dpcm)", 0}, |
| 122 {0, 0} // Do not remove the terminator line. | 122 {0, 0} // Do not remove the terminator line. |
| 123 }; | 123 }; |
| 124 | 124 |
| 125 void testMQEvaluator(TestCase* testCases, const MediaQueryEvaluator& mediaQueryE
valuator) | 125 void testMQEvaluator(TestCase* testCases, const MediaQueryEvaluator& mediaQueryE
valuator) |
| 126 { | 126 { |
| 127 RefPtrWillBePersistent<MediaQuerySet> querySet = nullptr; | 127 Persistent<MediaQuerySet> querySet = nullptr; |
| 128 for (unsigned i = 0; testCases[i].input; ++i) { | 128 for (unsigned i = 0; testCases[i].input; ++i) { |
| 129 querySet = MediaQuerySet::create(testCases[i].input); | 129 querySet = MediaQuerySet::create(testCases[i].input); |
| 130 ASSERT_EQ(testCases[i].output, mediaQueryEvaluator.eval(querySet.get()))
; | 130 ASSERT_EQ(testCases[i].output, mediaQueryEvaluator.eval(querySet.get()))
; |
| 131 } | 131 } |
| 132 } | 132 } |
| 133 | 133 |
| 134 TEST(MediaQueryEvaluatorTest, Cached) | 134 TEST(MediaQueryEvaluatorTest, Cached) |
| 135 { | 135 { |
| 136 MediaValuesCached::MediaValuesCachedData data; | 136 MediaValuesCached::MediaValuesCachedData data; |
| 137 data.viewportWidth = 500; | 137 data.viewportWidth = 500; |
| 138 data.viewportHeight = 500; | 138 data.viewportHeight = 500; |
| 139 data.deviceWidth = 500; | 139 data.deviceWidth = 500; |
| 140 data.deviceHeight = 500; | 140 data.deviceHeight = 500; |
| 141 data.devicePixelRatio = 2.0; | 141 data.devicePixelRatio = 2.0; |
| 142 data.colorBitsPerComponent = 24; | 142 data.colorBitsPerComponent = 24; |
| 143 data.monochromeBitsPerComponent = 0; | 143 data.monochromeBitsPerComponent = 0; |
| 144 data.primaryPointerType = PointerTypeFine; | 144 data.primaryPointerType = PointerTypeFine; |
| 145 data.primaryHoverType = HoverTypeHover; | 145 data.primaryHoverType = HoverTypeHover; |
| 146 data.defaultFontSize = 16; | 146 data.defaultFontSize = 16; |
| 147 data.threeDEnabled = true; | 147 data.threeDEnabled = true; |
| 148 data.mediaType = MediaTypeNames::screen; | 148 data.mediaType = MediaTypeNames::screen; |
| 149 data.strictMode = true; | 149 data.strictMode = true; |
| 150 data.displayMode = WebDisplayModeBrowser; | 150 data.displayMode = WebDisplayModeBrowser; |
| 151 RefPtrWillBeRawPtr<MediaValues> mediaValues = MediaValuesCached::create(data
); | 151 RawPtr<MediaValues> mediaValues = MediaValuesCached::create(data); |
| 152 | 152 |
| 153 MediaQueryEvaluator mediaQueryEvaluator(*mediaValues); | 153 MediaQueryEvaluator mediaQueryEvaluator(*mediaValues); |
| 154 testMQEvaluator(screenTestCases, mediaQueryEvaluator); | 154 testMQEvaluator(screenTestCases, mediaQueryEvaluator); |
| 155 testMQEvaluator(viewportTestCases, mediaQueryEvaluator); | 155 testMQEvaluator(viewportTestCases, mediaQueryEvaluator); |
| 156 | 156 |
| 157 data.mediaType = MediaTypeNames::print; | 157 data.mediaType = MediaTypeNames::print; |
| 158 mediaValues = MediaValuesCached::create(data); | 158 mediaValues = MediaValuesCached::create(data); |
| 159 MediaQueryEvaluator printMediaQueryEvaluator(*mediaValues); | 159 MediaQueryEvaluator printMediaQueryEvaluator(*mediaValues); |
| 160 testMQEvaluator(printTestCases, printMediaQueryEvaluator); | 160 testMQEvaluator(printTestCases, printMediaQueryEvaluator); |
| 161 } | 161 } |
| 162 | 162 |
| 163 TEST(MediaQueryEvaluatorTest, Dynamic) | 163 TEST(MediaQueryEvaluatorTest, Dynamic) |
| 164 { | 164 { |
| 165 OwnPtr<DummyPageHolder> pageHolder = DummyPageHolder::create(IntSize(500, 50
0)); | 165 OwnPtr<DummyPageHolder> pageHolder = DummyPageHolder::create(IntSize(500, 50
0)); |
| 166 pageHolder->frameView().setMediaType(MediaTypeNames::screen); | 166 pageHolder->frameView().setMediaType(MediaTypeNames::screen); |
| 167 | 167 |
| 168 MediaQueryEvaluator mediaQueryEvaluator(&pageHolder->frame()); | 168 MediaQueryEvaluator mediaQueryEvaluator(&pageHolder->frame()); |
| 169 testMQEvaluator(viewportTestCases, mediaQueryEvaluator); | 169 testMQEvaluator(viewportTestCases, mediaQueryEvaluator); |
| 170 pageHolder->frameView().setMediaType(MediaTypeNames::print); | 170 pageHolder->frameView().setMediaType(MediaTypeNames::print); |
| 171 testMQEvaluator(printTestCases, mediaQueryEvaluator); | 171 testMQEvaluator(printTestCases, mediaQueryEvaluator); |
| 172 } | 172 } |
| 173 | 173 |
| 174 TEST(MediaQueryEvaluatorTest, DynamicNoView) | 174 TEST(MediaQueryEvaluatorTest, DynamicNoView) |
| 175 { | 175 { |
| 176 OwnPtr<DummyPageHolder> pageHolder = DummyPageHolder::create(IntSize(500, 50
0)); | 176 OwnPtr<DummyPageHolder> pageHolder = DummyPageHolder::create(IntSize(500, 50
0)); |
| 177 RefPtrWillBeRawPtr<LocalFrame> frame = &pageHolder->frame(); | 177 RawPtr<LocalFrame> frame = &pageHolder->frame(); |
| 178 pageHolder.clear(); | 178 pageHolder.clear(); |
| 179 ASSERT_EQ(nullptr, frame->view()); | 179 ASSERT_EQ(nullptr, frame->view()); |
| 180 MediaQueryEvaluator mediaQueryEvaluator(frame.get()); | 180 MediaQueryEvaluator mediaQueryEvaluator(frame.get()); |
| 181 RefPtrWillBeRawPtr<MediaQuerySet> querySet = MediaQuerySet::create("foobar")
; | 181 RawPtr<MediaQuerySet> querySet = MediaQuerySet::create("foobar"); |
| 182 EXPECT_FALSE(mediaQueryEvaluator.eval(querySet.get())); | 182 EXPECT_FALSE(mediaQueryEvaluator.eval(querySet.get())); |
| 183 } | 183 } |
| 184 | 184 |
| 185 TEST(MediaQueryEvaluatorTest, CachedFloatViewport) | 185 TEST(MediaQueryEvaluatorTest, CachedFloatViewport) |
| 186 { | 186 { |
| 187 MediaValuesCached::MediaValuesCachedData data; | 187 MediaValuesCached::MediaValuesCachedData data; |
| 188 data.viewportWidth = 600.5; | 188 data.viewportWidth = 600.5; |
| 189 data.viewportHeight = 700.125; | 189 data.viewportHeight = 700.125; |
| 190 RefPtrWillBeRawPtr<MediaValues> mediaValues = MediaValuesCached::create(data
); | 190 RawPtr<MediaValues> mediaValues = MediaValuesCached::create(data); |
| 191 | 191 |
| 192 MediaQueryEvaluator mediaQueryEvaluator(*mediaValues); | 192 MediaQueryEvaluator mediaQueryEvaluator(*mediaValues); |
| 193 testMQEvaluator(floatViewportTestCases, mediaQueryEvaluator); | 193 testMQEvaluator(floatViewportTestCases, mediaQueryEvaluator); |
| 194 } | 194 } |
| 195 | 195 |
| 196 } // namespace blink | 196 } // namespace blink |
| OLD | NEW |