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

Side by Side Diff: Source/core/css/RuleSetTest.cpp

Issue 181403005: Introduce TerminatedArray<T> type to make data-structure used by RuleSet visible at the type level. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/css/RuleSet.cpp ('k') | Source/wtf/TerminatedArray.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014, Google Inc. All rights reserved. 2 * Copyright (c) 2014, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 24 matching lines...) Expand all
35 35
36 namespace WebCore { 36 namespace WebCore {
37 37
38 TEST(RuleSetTest, findBestRuleSetAndAdd_CustomPseudoElements) 38 TEST(RuleSetTest, findBestRuleSetAndAdd_CustomPseudoElements)
39 { 39 {
40 CSSTestHelper helper; 40 CSSTestHelper helper;
41 41
42 helper.addCSSRules("summary::-webkit-details-marker { }"); 42 helper.addCSSRules("summary::-webkit-details-marker { }");
43 RuleSet& ruleSet = helper.ruleSet(); 43 RuleSet& ruleSet = helper.ruleSet();
44 AtomicString str("-webkit-details-marker"); 44 AtomicString str("-webkit-details-marker");
45 const RuleData* ruleData = ruleSet.shadowPseudoElementRules(str); 45 const TerminatedArray<RuleData>* rules = ruleSet.shadowPseudoElementRules(st r);
46 ASSERT_EQ(1, CSSTestHelper::numRules(ruleData)); 46 ASSERT_EQ(1u, rules->size());
47 ASSERT_EQ(str, CSSTestHelper::getRule(ruleData, 0).selector().value()); 47 ASSERT_EQ(str, rules->at(0).selector().value());
48 } 48 }
49 49
50 TEST(RuleSetTest, findBestRuleSetAndAdd_Id) 50 TEST(RuleSetTest, findBestRuleSetAndAdd_Id)
51 { 51 {
52 CSSTestHelper helper; 52 CSSTestHelper helper;
53 53
54 helper.addCSSRules("#id { }"); 54 helper.addCSSRules("#id { }");
55 RuleSet& ruleSet = helper.ruleSet(); 55 RuleSet& ruleSet = helper.ruleSet();
56 AtomicString str("id"); 56 AtomicString str("id");
57 const RuleData* ruleData = ruleSet.idRules(str); 57 const TerminatedArray<RuleData>* rules = ruleSet.idRules(str);
58 ASSERT_EQ(1, CSSTestHelper::numRules(ruleData)); 58 ASSERT_EQ(1u, rules->size());
59 ASSERT_EQ(str, CSSTestHelper::getRule(ruleData, 0).selector().value()); 59 ASSERT_EQ(str, rules->at(0).selector().value());
60 } 60 }
61 61
62 TEST(RuleSetTest, findBestRuleSetAndAdd_NthChild) 62 TEST(RuleSetTest, findBestRuleSetAndAdd_NthChild)
63 { 63 {
64 CSSTestHelper helper; 64 CSSTestHelper helper;
65 65
66 helper.addCSSRules("div:nth-child(2) { }"); 66 helper.addCSSRules("div:nth-child(2) { }");
67 RuleSet& ruleSet = helper.ruleSet(); 67 RuleSet& ruleSet = helper.ruleSet();
68 AtomicString str("div"); 68 AtomicString str("div");
69 const RuleData* ruleData = ruleSet.tagRules(str); 69 const TerminatedArray<RuleData>* rules = ruleSet.tagRules(str);
70 ASSERT_EQ(1, CSSTestHelper::numRules(ruleData)); 70 ASSERT_EQ(1u, rules->size());
71 ASSERT_EQ(str, CSSTestHelper::getRule(ruleData, 0).selector().tagQName().loc alName()); 71 ASSERT_EQ(str, rules->at(0).selector().tagQName().localName());
72 } 72 }
73 73
74 TEST(RuleSetTest, findBestRuleSetAndAdd_ClassThenId) 74 TEST(RuleSetTest, findBestRuleSetAndAdd_ClassThenId)
75 { 75 {
76 CSSTestHelper helper; 76 CSSTestHelper helper;
77 77
78 helper.addCSSRules(".class#id { }"); 78 helper.addCSSRules(".class#id { }");
79 RuleSet& ruleSet = helper.ruleSet(); 79 RuleSet& ruleSet = helper.ruleSet();
80 AtomicString str("id"); 80 AtomicString str("id");
81 // id is prefered over class even if class preceeds it in the selector. 81 // id is prefered over class even if class preceeds it in the selector.
82 const RuleData* ruleData = ruleSet.idRules(str); 82 const TerminatedArray<RuleData>* rules = ruleSet.idRules(str);
83 ASSERT_EQ(1, CSSTestHelper::numRules(ruleData)); 83 ASSERT_EQ(1u, rules->size());
84 AtomicString classStr("class"); 84 AtomicString classStr("class");
85 ASSERT_EQ(classStr, CSSTestHelper::getRule(ruleData, 0).selector().value()); 85 ASSERT_EQ(classStr, rules->at(0).selector().value());
86 } 86 }
87 87
88 TEST(RuleSetTest, findBestRuleSetAndAdd_IdThenClass) 88 TEST(RuleSetTest, findBestRuleSetAndAdd_IdThenClass)
89 { 89 {
90 CSSTestHelper helper; 90 CSSTestHelper helper;
91 91
92 helper.addCSSRules("#id.class { }"); 92 helper.addCSSRules("#id.class { }");
93 RuleSet& ruleSet = helper.ruleSet(); 93 RuleSet& ruleSet = helper.ruleSet();
94 AtomicString str("id"); 94 AtomicString str("id");
95 const RuleData* ruleData = ruleSet.idRules(str); 95 const TerminatedArray<RuleData>* rules = ruleSet.idRules(str);
96 ASSERT_EQ(1, CSSTestHelper::numRules(ruleData)); 96 ASSERT_EQ(1u, rules->size());
97 ASSERT_EQ(str, CSSTestHelper::getRule(ruleData, 0).selector().value()); 97 ASSERT_EQ(str, rules->at(0).selector().value());
98 } 98 }
99 99
100 TEST(RuleSetTest, findBestRuleSetAndAdd_AttrThenId) 100 TEST(RuleSetTest, findBestRuleSetAndAdd_AttrThenId)
101 { 101 {
102 CSSTestHelper helper; 102 CSSTestHelper helper;
103 103
104 helper.addCSSRules("[attr]#id { }"); 104 helper.addCSSRules("[attr]#id { }");
105 RuleSet& ruleSet = helper.ruleSet(); 105 RuleSet& ruleSet = helper.ruleSet();
106 AtomicString str("id"); 106 AtomicString str("id");
107 const RuleData* ruleData = ruleSet.idRules(str); 107 const TerminatedArray<RuleData>* rules = ruleSet.idRules(str);
108 ASSERT_EQ(1, CSSTestHelper::numRules(ruleData)); 108 ASSERT_EQ(1u, rules->size());
109 AtomicString attrStr("attr"); 109 AtomicString attrStr("attr");
110 ASSERT_EQ(attrStr, CSSTestHelper::getRule(ruleData, 0).selector().attribute( ).localName()); 110 ASSERT_EQ(attrStr, rules->at(0).selector().attribute().localName());
111 } 111 }
112 112
113 TEST(RuleSetTest, findBestRuleSetAndAdd_TagThenAttrThenId) 113 TEST(RuleSetTest, findBestRuleSetAndAdd_TagThenAttrThenId)
114 { 114 {
115 CSSTestHelper helper; 115 CSSTestHelper helper;
116 116
117 helper.addCSSRules("div[attr]#id { }"); 117 helper.addCSSRules("div[attr]#id { }");
118 RuleSet& ruleSet = helper.ruleSet(); 118 RuleSet& ruleSet = helper.ruleSet();
119 AtomicString str("id"); 119 AtomicString str("id");
120 const RuleData* ruleData = ruleSet.idRules(str); 120 const TerminatedArray<RuleData>* rules = ruleSet.idRules(str);
121 ASSERT_EQ(1, CSSTestHelper::numRules(ruleData)); 121 ASSERT_EQ(1u, rules->size());
122 AtomicString tagStr("div"); 122 AtomicString tagStr("div");
123 ASSERT_EQ(tagStr, CSSTestHelper::getRule(ruleData, 0).selector().tagQName(). localName()); 123 ASSERT_EQ(tagStr, rules->at(0).selector().tagQName().localName());
124 } 124 }
125 125
126 TEST(RuleSetTest, findBestRuleSetAndAdd_DivWithContent) 126 TEST(RuleSetTest, findBestRuleSetAndAdd_DivWithContent)
127 { 127 {
128 CSSTestHelper helper; 128 CSSTestHelper helper;
129 129
130 helper.addCSSRules("div::content { }"); 130 helper.addCSSRules("div::content { }");
131 RuleSet& ruleSet = helper.ruleSet(); 131 RuleSet& ruleSet = helper.ruleSet();
132 AtomicString str("div"); 132 AtomicString str("div");
133 const RuleData* ruleData = ruleSet.tagRules(str); 133 const TerminatedArray<RuleData>* rules = ruleSet.tagRules(str);
134 ASSERT_EQ(1, CSSTestHelper::numRules(ruleData)); 134 ASSERT_EQ(1u, rules->size());
135 AtomicString valueStr("content"); 135 AtomicString valueStr("content");
136 ASSERT_EQ(valueStr, CSSTestHelper::getRule(ruleData, 0).selector().value()); 136 ASSERT_EQ(valueStr, rules->at(0).selector().value());
137 } 137 }
138 138
139 } // namespace WebCore 139 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/css/RuleSet.cpp ('k') | Source/wtf/TerminatedArray.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698