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

Side by Side Diff: third_party/WebKit/Source/core/css/MediaQueryEvaluatorTest.cpp

Issue 2863603002: Change Monochrome media query evaluator (Closed)
Patch Set: Add test Created 3 years, 7 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 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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 {"(display-mode: @browser)", 0}, 64 {"(display-mode: @browser)", 0},
65 {"(display-mode: 'browser')", 0}, 65 {"(display-mode: 'browser')", 0},
66 {"(display-mode: @junk browser)", 0}, 66 {"(display-mode: @junk browser)", 0},
67 {"(shape: rect)", 1}, 67 {"(shape: rect)", 1},
68 {"(shape: round)", 0}, 68 {"(shape: round)", 0},
69 {"(max-device-aspect-ratio: 4294967295/1)", 1}, 69 {"(max-device-aspect-ratio: 4294967295/1)", 1},
70 {"(min-device-aspect-ratio: 1/4294967296)", 1}, 70 {"(min-device-aspect-ratio: 1/4294967296)", 1},
71 {0, 0} // Do not remove the terminator line. 71 {0, 0} // Do not remove the terminator line.
72 }; 72 };
73 73
74 TestCase g_monochrome_test_cases[] = {
75 {"(color)", 0},
76 {"(monochrome)", 1},
77 {0, 0} // Do not remove the terminator line.
78 };
79
74 TestCase g_viewport_test_cases[] = { 80 TestCase g_viewport_test_cases[] = {
75 {"all and (min-width: 500px)", 1}, 81 {"all and (min-width: 500px)", 1},
76 {"(min-width: 500px)", 1}, 82 {"(min-width: 500px)", 1},
77 {"(min-width: 501px)", 0}, 83 {"(min-width: 501px)", 0},
78 {"(max-width: 500px)", 1}, 84 {"(max-width: 500px)", 1},
79 {"(max-width: 499px)", 0}, 85 {"(max-width: 499px)", 0},
80 {"(width: 500px)", 1}, 86 {"(width: 500px)", 1},
81 {"(width: 501px)", 0}, 87 {"(width: 501px)", 0},
82 {"(min-height: 500px)", 1}, 88 {"(min-height: 500px)", 1},
83 {"(min-height: 501px)", 0}, 89 {"(min-height: 501px)", 0},
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 {"print and (min-resolution: 118dpcm)", 1}, 145 {"print and (min-resolution: 118dpcm)", 1},
140 {"print and (min-resolution: 119dpcm)", 0}, 146 {"print and (min-resolution: 119dpcm)", 0},
141 {0, 0} // Do not remove the terminator line. 147 {0, 0} // Do not remove the terminator line.
142 }; 148 };
143 149
144 void TestMQEvaluator(TestCase* test_cases, 150 void TestMQEvaluator(TestCase* test_cases,
145 const MediaQueryEvaluator& media_query_evaluator) { 151 const MediaQueryEvaluator& media_query_evaluator) {
146 RefPtr<MediaQuerySet> query_set = nullptr; 152 RefPtr<MediaQuerySet> query_set = nullptr;
147 for (unsigned i = 0; test_cases[i].input; ++i) { 153 for (unsigned i = 0; test_cases[i].input; ++i) {
148 query_set = MediaQuerySet::Create(test_cases[i].input); 154 query_set = MediaQuerySet::Create(test_cases[i].input);
149 EXPECT_EQ(test_cases[i].output, media_query_evaluator.Eval(*query_set)); 155 EXPECT_EQ(test_cases[i].output, media_query_evaluator.Eval(*query_set))
156 << "Query: " << test_cases[i].input;
150 } 157 }
151 } 158 }
152 159
153 TEST(MediaQueryEvaluatorTest, Cached) { 160 TEST(MediaQueryEvaluatorTest, Cached) {
154 MediaValuesCached::MediaValuesCachedData data; 161 MediaValuesCached::MediaValuesCachedData data;
155 data.viewport_width = 500; 162 data.viewport_width = 500;
156 data.viewport_height = 500; 163 data.viewport_height = 500;
157 data.device_width = 500; 164 data.device_width = 500;
158 data.device_height = 500; 165 data.device_height = 500;
159 data.device_pixel_ratio = 2.0; 166 data.device_pixel_ratio = 2.0;
160 data.color_bits_per_component = 24; 167 data.color_bits_per_component = 24;
161 data.monochrome_bits_per_component = 0; 168 data.monochrome_bits_per_component = 0;
162 data.primary_pointer_type = kPointerTypeFine; 169 data.primary_pointer_type = kPointerTypeFine;
163 data.primary_hover_type = kHoverTypeHover; 170 data.primary_hover_type = kHoverTypeHover;
164 data.default_font_size = 16; 171 data.default_font_size = 16;
165 data.three_d_enabled = true; 172 data.three_d_enabled = true;
166 data.media_type = MediaTypeNames::screen; 173 data.media_type = MediaTypeNames::screen;
167 data.strict_mode = true; 174 data.strict_mode = true;
168 data.display_mode = kWebDisplayModeBrowser; 175 data.display_mode = kWebDisplayModeBrowser;
169 data.display_shape = kDisplayShapeRect; 176 data.display_shape = kDisplayShapeRect;
170 MediaValues* media_values = MediaValuesCached::Create(data);
171 177
172 MediaQueryEvaluator media_query_evaluator(*media_values); 178 // Default values.
173 TestMQEvaluator(g_screen_test_cases, media_query_evaluator); 179 {
174 TestMQEvaluator(g_viewport_test_cases, media_query_evaluator); 180 MediaValues* media_values = MediaValuesCached::Create(data);
181 MediaQueryEvaluator media_query_evaluator(*media_values);
182 TestMQEvaluator(g_screen_test_cases, media_query_evaluator);
183 TestMQEvaluator(g_viewport_test_cases, media_query_evaluator);
184 }
175 185
176 data.media_type = MediaTypeNames::print; 186 // Print values.
177 media_values = MediaValuesCached::Create(data); 187 {
178 MediaQueryEvaluator print_media_query_evaluator(*media_values); 188 data.media_type = MediaTypeNames::print;
179 TestMQEvaluator(g_print_test_cases, print_media_query_evaluator); 189 MediaValues* media_values = MediaValuesCached::Create(data);
190 MediaQueryEvaluator media_query_evaluator(*media_values);
191 TestMQEvaluator(g_print_test_cases, media_query_evaluator);
192 data.media_type = MediaTypeNames::screen;
193 }
194
195 // Monochrome values.
196 {
197 data.color_bits_per_component = 0;
198 data.monochrome_bits_per_component = 8;
199 MediaValues* media_values = MediaValuesCached::Create(data);
200 MediaQueryEvaluator media_query_evaluator(*media_values);
201 TestMQEvaluator(g_monochrome_test_cases, media_query_evaluator);
202 data.color_bits_per_component = 24;
203 data.monochrome_bits_per_component = 0;
204 }
180 } 205 }
181 206
182 TEST(MediaQueryEvaluatorTest, Dynamic) { 207 TEST(MediaQueryEvaluatorTest, Dynamic) {
183 std::unique_ptr<DummyPageHolder> page_holder = 208 std::unique_ptr<DummyPageHolder> page_holder =
184 DummyPageHolder::Create(IntSize(500, 500)); 209 DummyPageHolder::Create(IntSize(500, 500));
185 page_holder->GetFrameView().SetMediaType(MediaTypeNames::screen); 210 page_holder->GetFrameView().SetMediaType(MediaTypeNames::screen);
186 211
187 MediaQueryEvaluator media_query_evaluator(&page_holder->GetFrame()); 212 MediaQueryEvaluator media_query_evaluator(&page_holder->GetFrame());
188 TestMQEvaluator(g_viewport_test_cases, media_query_evaluator); 213 TestMQEvaluator(g_viewport_test_cases, media_query_evaluator);
189 page_holder->GetFrameView().SetMediaType(MediaTypeNames::print); 214 page_holder->GetFrameView().SetMediaType(MediaTypeNames::print);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 page_holder->GetFrameView().SetInitialViewportSize(IntSize(500, 500)); 255 page_holder->GetFrameView().SetInitialViewportSize(IntSize(500, 500));
231 page_holder->GetFrameView().SetLayoutSize(IntSize(800, 800)); 256 page_holder->GetFrameView().SetLayoutSize(IntSize(800, 800));
232 page_holder->GetFrameView().SetFrameRect(IntRect(0, 0, 800, 800)); 257 page_holder->GetFrameView().SetFrameRect(IntRect(0, 0, 800, 800));
233 258
234 MediaQueryEvaluator media_query_evaluator( 259 MediaQueryEvaluator media_query_evaluator(
235 MediaValuesInitialViewport::Create(page_holder->GetFrame())); 260 MediaValuesInitialViewport::Create(page_holder->GetFrame()));
236 TestMQEvaluator(g_viewport_test_cases, media_query_evaluator); 261 TestMQEvaluator(g_viewport_test_cases, media_query_evaluator);
237 } 262 }
238 263
239 } // namespace blink 264 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698