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

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

Issue 2401573002: Allow active sheets to have nullptr for RuleSet. (Closed)
Patch Set: Created 4 years, 2 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
« no previous file with comments | « third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/ActiveStyleSheets.h" 5 #include "core/css/ActiveStyleSheets.h"
6 6
7 #include "core/css/CSSStyleSheet.h" 7 #include "core/css/CSSStyleSheet.h"
8 #include "core/css/MediaQueryEvaluator.h" 8 #include "core/css/MediaQueryEvaluator.h"
9 #include "core/css/StyleSheetContents.h" 9 #include "core/css/StyleSheetContents.h"
10 #include "core/css/parser/CSSParserMode.h" 10 #include "core/css/parser/CSSParserMode.h"
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 newSheets.append(std::make_pair(sheet2, &sheet2->contents()->ruleSet())); 186 newSheets.append(std::make_pair(sheet2, &sheet2->contents()->ruleSet()));
187 newSheets.append(std::make_pair(sheet3, &sheet3->contents()->ruleSet())); 187 newSheets.append(std::make_pair(sheet3, &sheet3->contents()->ruleSet()));
188 188
189 EXPECT_EQ(ActiveSheetsChanged, 189 EXPECT_EQ(ActiveSheetsChanged,
190 compareActiveStyleSheets(oldSheets, newSheets, changedRuleSets)); 190 compareActiveStyleSheets(oldSheets, newSheets, changedRuleSets));
191 ASSERT_EQ(2u, changedRuleSets.size()); 191 ASSERT_EQ(2u, changedRuleSets.size());
192 EXPECT_EQ(&sheet1->contents()->ruleSet(), changedRuleSets[0]); 192 EXPECT_EQ(&sheet1->contents()->ruleSet(), changedRuleSets[0]);
193 EXPECT_EQ(&sheet3->contents()->ruleSet(), changedRuleSets[1]); 193 EXPECT_EQ(&sheet3->contents()->ruleSet(), changedRuleSets[1]);
194 } 194 }
195 195
196 TEST_F(ActiveStyleSheetsTest, CompareActiveStyleSheets_AddNullRuleSet) {
197 ActiveStyleSheetVector oldSheets;
198 ActiveStyleSheetVector newSheets;
199 HeapVector<Member<RuleSet>> changedRuleSets;
200
201 CSSStyleSheet* sheet1 = createSheet();
202 CSSStyleSheet* sheet2 = createSheet();
203
204 oldSheets.append(std::make_pair(sheet1, &sheet1->contents()->ruleSet()));
205
206 newSheets.append(std::make_pair(sheet1, &sheet1->contents()->ruleSet()));
207 newSheets.append(std::make_pair(sheet2, nullptr));
208
209 EXPECT_EQ(NoActiveSheetsChanged,
210 compareActiveStyleSheets(oldSheets, newSheets, changedRuleSets));
211 EXPECT_EQ(0u, changedRuleSets.size());
212 }
213
214 TEST_F(ActiveStyleSheetsTest, CompareActiveStyleSheets_RemoveNullRuleSet) {
215 ActiveStyleSheetVector oldSheets;
216 ActiveStyleSheetVector newSheets;
217 HeapVector<Member<RuleSet>> changedRuleSets;
218
219 CSSStyleSheet* sheet1 = createSheet();
220 CSSStyleSheet* sheet2 = createSheet();
221
222 oldSheets.append(std::make_pair(sheet1, &sheet1->contents()->ruleSet()));
223 oldSheets.append(std::make_pair(sheet2, nullptr));
224
225 newSheets.append(std::make_pair(sheet1, &sheet1->contents()->ruleSet()));
226
227 EXPECT_EQ(NoActiveSheetsChanged,
228 compareActiveStyleSheets(oldSheets, newSheets, changedRuleSets));
229 EXPECT_EQ(0u, changedRuleSets.size());
230 }
231
232 TEST_F(ActiveStyleSheetsTest, CompareActiveStyleSheets_AddRemoveNullRuleSet) {
233 ActiveStyleSheetVector oldSheets;
234 ActiveStyleSheetVector newSheets;
235 HeapVector<Member<RuleSet>> changedRuleSets;
236
237 CSSStyleSheet* sheet1 = createSheet();
238 CSSStyleSheet* sheet2 = createSheet();
239 CSSStyleSheet* sheet3 = createSheet();
240
241 oldSheets.append(std::make_pair(sheet1, &sheet1->contents()->ruleSet()));
242 oldSheets.append(std::make_pair(sheet2, nullptr));
243
244 newSheets.append(std::make_pair(sheet1, &sheet1->contents()->ruleSet()));
245 newSheets.append(std::make_pair(sheet3, nullptr));
246
247 EXPECT_EQ(NoActiveSheetsChanged,
248 compareActiveStyleSheets(oldSheets, newSheets, changedRuleSets));
249 EXPECT_EQ(0u, changedRuleSets.size());
250 }
251
252 TEST_F(ActiveStyleSheetsTest,
253 CompareActiveStyleSheets_RemoveNullRuleSetAndAppend) {
254 ActiveStyleSheetVector oldSheets;
255 ActiveStyleSheetVector newSheets;
256 HeapVector<Member<RuleSet>> changedRuleSets;
257
258 CSSStyleSheet* sheet1 = createSheet();
259 CSSStyleSheet* sheet2 = createSheet();
260 CSSStyleSheet* sheet3 = createSheet();
261
262 oldSheets.append(std::make_pair(sheet1, &sheet1->contents()->ruleSet()));
263 oldSheets.append(std::make_pair(sheet2, nullptr));
264
265 newSheets.append(std::make_pair(sheet1, &sheet1->contents()->ruleSet()));
266 newSheets.append(std::make_pair(sheet3, &sheet3->contents()->ruleSet()));
267
268 EXPECT_EQ(ActiveSheetsChanged,
269 compareActiveStyleSheets(oldSheets, newSheets, changedRuleSets));
270 ASSERT_EQ(1u, changedRuleSets.size());
271 EXPECT_EQ(&sheet3->contents()->ruleSet(), changedRuleSets[0]);
272 }
273
196 } // namespace blink 274 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/ActiveStyleSheets.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698