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 <memory> | 7 #include <memory> |
8 #include "core/MediaTypeNames.h" | 8 #include "core/MediaTypeNames.h" |
9 #include "core/css/MediaList.h" | 9 #include "core/css/MediaList.h" |
10 #include "core/css/MediaValuesCached.h" | 10 #include "core/css/MediaValuesCached.h" |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 | 132 |
133 TestCase g_print_test_cases[] = { | 133 TestCase g_print_test_cases[] = { |
134 {"print and (min-resolution: 1dppx)", 1}, | 134 {"print and (min-resolution: 1dppx)", 1}, |
135 {"print and (min-resolution: 118dpcm)", 1}, | 135 {"print and (min-resolution: 118dpcm)", 1}, |
136 {"print and (min-resolution: 119dpcm)", 0}, | 136 {"print and (min-resolution: 119dpcm)", 0}, |
137 {0, 0} // Do not remove the terminator line. | 137 {0, 0} // Do not remove the terminator line. |
138 }; | 138 }; |
139 | 139 |
140 void TestMQEvaluator(TestCase* test_cases, | 140 void TestMQEvaluator(TestCase* test_cases, |
141 const MediaQueryEvaluator& media_query_evaluator) { | 141 const MediaQueryEvaluator& media_query_evaluator) { |
142 Persistent<MediaQuerySet> query_set = nullptr; | 142 RefPtr<MediaQuerySet> query_set = nullptr; |
143 for (unsigned i = 0; test_cases[i].input; ++i) { | 143 for (unsigned i = 0; test_cases[i].input; ++i) { |
144 query_set = MediaQuerySet::Create(test_cases[i].input); | 144 query_set = MediaQuerySet::Create(test_cases[i].input); |
145 EXPECT_EQ(test_cases[i].output, | 145 EXPECT_EQ(test_cases[i].output, media_query_evaluator.Eval(*query_set)); |
146 media_query_evaluator.Eval(query_set.Get())); | |
147 } | 146 } |
148 } | 147 } |
149 | 148 |
150 TEST(MediaQueryEvaluatorTest, Cached) { | 149 TEST(MediaQueryEvaluatorTest, Cached) { |
151 MediaValuesCached::MediaValuesCachedData data; | 150 MediaValuesCached::MediaValuesCachedData data; |
152 data.viewport_width = 500; | 151 data.viewport_width = 500; |
153 data.viewport_height = 500; | 152 data.viewport_height = 500; |
154 data.device_width = 500; | 153 data.device_width = 500; |
155 data.device_height = 500; | 154 data.device_height = 500; |
156 data.device_pixel_ratio = 2.0; | 155 data.device_pixel_ratio = 2.0; |
(...skipping 30 matching lines...) Expand all Loading... |
187 TestMQEvaluator(g_print_test_cases, media_query_evaluator); | 186 TestMQEvaluator(g_print_test_cases, media_query_evaluator); |
188 } | 187 } |
189 | 188 |
190 TEST(MediaQueryEvaluatorTest, DynamicNoView) { | 189 TEST(MediaQueryEvaluatorTest, DynamicNoView) { |
191 std::unique_ptr<DummyPageHolder> page_holder = | 190 std::unique_ptr<DummyPageHolder> page_holder = |
192 DummyPageHolder::Create(IntSize(500, 500)); | 191 DummyPageHolder::Create(IntSize(500, 500)); |
193 LocalFrame* frame = &page_holder->GetFrame(); | 192 LocalFrame* frame = &page_holder->GetFrame(); |
194 page_holder.reset(); | 193 page_holder.reset(); |
195 ASSERT_EQ(nullptr, frame->View()); | 194 ASSERT_EQ(nullptr, frame->View()); |
196 MediaQueryEvaluator media_query_evaluator(frame); | 195 MediaQueryEvaluator media_query_evaluator(frame); |
197 MediaQuerySet* query_set = MediaQuerySet::Create("foobar"); | 196 RefPtr<MediaQuerySet> query_set = MediaQuerySet::Create("foobar"); |
198 EXPECT_FALSE(media_query_evaluator.Eval(query_set)); | 197 EXPECT_FALSE(media_query_evaluator.Eval(*query_set)); |
199 } | 198 } |
200 | 199 |
201 TEST(MediaQueryEvaluatorTest, CachedFloatViewport) { | 200 TEST(MediaQueryEvaluatorTest, CachedFloatViewport) { |
202 MediaValuesCached::MediaValuesCachedData data; | 201 MediaValuesCached::MediaValuesCachedData data; |
203 data.viewport_width = 600.5; | 202 data.viewport_width = 600.5; |
204 data.viewport_height = 700.125; | 203 data.viewport_height = 700.125; |
205 MediaValues* media_values = MediaValuesCached::Create(data); | 204 MediaValues* media_values = MediaValuesCached::Create(data); |
206 | 205 |
207 MediaQueryEvaluator media_query_evaluator(*media_values); | 206 MediaQueryEvaluator media_query_evaluator(*media_values); |
208 TestMQEvaluator(g_float_viewport_test_cases, media_query_evaluator); | 207 TestMQEvaluator(g_float_viewport_test_cases, media_query_evaluator); |
(...skipping 18 matching lines...) Expand all Loading... |
227 page_holder->GetFrameView().SetInitialViewportSize(IntSize(500, 500)); | 226 page_holder->GetFrameView().SetInitialViewportSize(IntSize(500, 500)); |
228 page_holder->GetFrameView().SetLayoutSize(IntSize(800, 800)); | 227 page_holder->GetFrameView().SetLayoutSize(IntSize(800, 800)); |
229 page_holder->GetFrameView().SetFrameRect(IntRect(0, 0, 800, 800)); | 228 page_holder->GetFrameView().SetFrameRect(IntRect(0, 0, 800, 800)); |
230 | 229 |
231 MediaQueryEvaluator media_query_evaluator( | 230 MediaQueryEvaluator media_query_evaluator( |
232 MediaValuesInitialViewport::Create(page_holder->GetFrame())); | 231 MediaValuesInitialViewport::Create(page_holder->GetFrame())); |
233 TestMQEvaluator(g_viewport_test_cases, media_query_evaluator); | 232 TestMQEvaluator(g_viewport_test_cases, media_query_evaluator); |
234 } | 233 } |
235 | 234 |
236 } // namespace blink | 235 } // namespace blink |
OLD | NEW |