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

Side by Side Diff: chrome/common/extensions/extension_unittest.cc

Issue 5642001: Fix issue that causes some extensions to be disabled right after installation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 10 years 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/common/extensions/extension.h" 5 #include "chrome/common/extensions/extension.h"
6 6
7 #if defined(TOOLKIT_GTK) 7 #if defined(TOOLKIT_GTK)
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 #endif 9 #endif
10 10
(...skipping 1087 matching lines...) Expand 10 before | Expand all | Expand 10 after
1098 1098
1099 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTests); ++i) { 1099 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTests); ++i) {
1100 EXPECT_EQ(kTests[i].expect_success, 1100 EXPECT_EQ(kTests[i].expect_success,
1101 extension->HasApiPermission(kTests[i].permission_name)) 1101 extension->HasApiPermission(kTests[i].permission_name))
1102 << "Permission being tested: " << kTests[i].permission_name; 1102 << "Permission being tested: " << kTests[i].permission_name;
1103 } 1103 }
1104 } 1104 }
1105 1105
1106 TEST(ExtensionTest, GetDistinctHosts) { 1106 TEST(ExtensionTest, GetDistinctHosts) {
1107 std::vector<std::string> expected; 1107 std::vector<std::string> expected;
1108 std::vector<std::string> expected_no_rcd;
1108 expected.push_back("www.foo.com"); 1109 expected.push_back("www.foo.com");
1109 expected.push_back("www.bar.com"); 1110 expected.push_back("www.bar.com");
1110 expected.push_back("www.baz.com"); 1111 expected.push_back("www.baz.com");
1112 expected_no_rcd.push_back("www.foo.");
1113 expected_no_rcd.push_back("www.bar.");
1114 expected_no_rcd.push_back("www.baz.");
1111 URLPatternList actual; 1115 URLPatternList actual;
1112 1116
1113 { 1117 {
1114 SCOPED_TRACE("no dupes"); 1118 SCOPED_TRACE("no dupes");
1115 1119
1116 // Simple list with no dupes. 1120 // Simple list with no dupes.
1117 actual.push_back( 1121 actual.push_back(
1118 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.com/path")); 1122 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.com/path"));
1119 actual.push_back( 1123 actual.push_back(
1120 URLPattern(URLPattern::SCHEME_HTTP, "http://www.bar.com/path")); 1124 URLPattern(URLPattern::SCHEME_HTTP, "http://www.bar.com/path"));
1121 actual.push_back( 1125 actual.push_back(
1122 URLPattern(URLPattern::SCHEME_HTTP, "http://www.baz.com/path")); 1126 URLPattern(URLPattern::SCHEME_HTTP, "http://www.baz.com/path"));
1123 CompareLists(expected, 1127 CompareLists(expected,
1124 Extension::GetDistinctHosts(actual)); 1128 Extension::GetDistinctHosts(actual, true));
1129 CompareLists(expected_no_rcd,
1130 Extension::GetDistinctHosts(actual, false));
1125 } 1131 }
1126 1132
1127 { 1133 {
1128 SCOPED_TRACE("two dupes"); 1134 SCOPED_TRACE("two dupes");
1129 1135
1130 // Add some dupes. 1136 // Add some dupes.
1131 actual.push_back( 1137 actual.push_back(
1132 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.com/path")); 1138 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.com/path"));
1133 actual.push_back( 1139 actual.push_back(
1134 URLPattern(URLPattern::SCHEME_HTTP, "http://www.baz.com/path")); 1140 URLPattern(URLPattern::SCHEME_HTTP, "http://www.baz.com/path"));
1135 CompareLists(expected, 1141 CompareLists(expected,
1136 Extension::GetDistinctHosts(actual)); 1142 Extension::GetDistinctHosts(actual, true));
1143 CompareLists(expected_no_rcd,
1144 Extension::GetDistinctHosts(actual, false));
1137 } 1145 }
1138 1146
1139 { 1147 {
1140 SCOPED_TRACE("schemes differ"); 1148 SCOPED_TRACE("schemes differ");
1141 1149
1142 // Add a pattern that differs only by scheme. This should be filtered out. 1150 // Add a pattern that differs only by scheme. This should be filtered out.
1143 actual.push_back( 1151 actual.push_back(
1144 URLPattern(URLPattern::SCHEME_HTTPS, "https://www.bar.com/path")); 1152 URLPattern(URLPattern::SCHEME_HTTPS, "https://www.bar.com/path"));
1145 CompareLists(expected, 1153 CompareLists(expected,
1146 Extension::GetDistinctHosts(actual)); 1154 Extension::GetDistinctHosts(actual, true));
1155 CompareLists(expected_no_rcd,
1156 Extension::GetDistinctHosts(actual, false));
1147 } 1157 }
1148 1158
1149 { 1159 {
1150 SCOPED_TRACE("paths differ"); 1160 SCOPED_TRACE("paths differ");
1151 1161
1152 // Add some dupes by path. 1162 // Add some dupes by path.
1153 actual.push_back( 1163 actual.push_back(
1154 URLPattern(URLPattern::SCHEME_HTTP, "http://www.bar.com/pathypath")); 1164 URLPattern(URLPattern::SCHEME_HTTP, "http://www.bar.com/pathypath"));
1155 CompareLists(expected, 1165 CompareLists(expected,
1156 Extension::GetDistinctHosts(actual)); 1166 Extension::GetDistinctHosts(actual, true));
1167 CompareLists(expected_no_rcd,
1168 Extension::GetDistinctHosts(actual, false));
1157 } 1169 }
1158 1170
1159 { 1171 {
1160 SCOPED_TRACE("subdomains differ"); 1172 SCOPED_TRACE("subdomains differ");
1161 1173
1162 // We don't do anything special for subdomains. 1174 // We don't do anything special for subdomains.
1163 actual.push_back( 1175 actual.push_back(
1164 URLPattern(URLPattern::SCHEME_HTTP, "http://monkey.www.bar.com/path")); 1176 URLPattern(URLPattern::SCHEME_HTTP, "http://monkey.www.bar.com/path"));
1165 actual.push_back( 1177 actual.push_back(
1166 URLPattern(URLPattern::SCHEME_HTTP, "http://bar.com/path")); 1178 URLPattern(URLPattern::SCHEME_HTTP, "http://bar.com/path"));
1167 1179
1168 expected.push_back("monkey.www.bar.com"); 1180 expected.push_back("monkey.www.bar.com");
1169 expected.push_back("bar.com"); 1181 expected.push_back("bar.com");
1182 expected_no_rcd.push_back("monkey.www.bar.");
1183 expected_no_rcd.push_back("bar.");
1184
1170 1185
1171 CompareLists(expected, 1186 CompareLists(expected,
1172 Extension::GetDistinctHosts(actual)); 1187 Extension::GetDistinctHosts(actual, true));
1188 CompareLists(expected_no_rcd,
1189 Extension::GetDistinctHosts(actual, false));
1173 } 1190 }
1174 1191
1175 { 1192 {
1176 SCOPED_TRACE("RCDs differ"); 1193 SCOPED_TRACE("RCDs differ");
1177 1194
1178 // Now test for RCD uniquing. 1195 // Now test for RCD uniquing.
1179 actual.push_back( 1196 actual.push_back(
1180 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.com/path")); 1197 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.com/path"));
1181 actual.push_back( 1198 actual.push_back(
1182 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.co.uk/path")); 1199 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.co.uk/path"));
1183 actual.push_back( 1200 actual.push_back(
1184 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.de/path")); 1201 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.de/path"));
1185 actual.push_back( 1202 actual.push_back(
1186 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.ca.us/path")); 1203 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.ca.us/path"));
1187 actual.push_back( 1204 actual.push_back(
1188 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.net/path")); 1205 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.net/path"));
1189 actual.push_back( 1206 actual.push_back(
1190 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.com.my/path")); 1207 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.com.my/path"));
1191 1208
1192 // This is an unknown RCD, which shouldn't be uniqued out. 1209 // This is an unknown RCD, which shouldn't be uniqued out.
1193 actual.push_back( 1210 actual.push_back(
1194 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.xyzzy/path")); 1211 URLPattern(URLPattern::SCHEME_HTTP, "http://www.foo.xyzzy/path"));
1195 1212
1196 expected.push_back("www.foo.xyzzy"); 1213 expected.push_back("www.foo.xyzzy");
1214 expected_no_rcd.push_back("www.foo.xyzzy");
1197 1215
1198 CompareLists(expected, 1216 CompareLists(expected,
1199 Extension::GetDistinctHosts(actual)); 1217 Extension::GetDistinctHosts(actual, true));
1218 CompareLists(expected_no_rcd,
1219 Extension::GetDistinctHosts(actual, false));
1200 } 1220 }
1201 } 1221 }
1202 1222
1203 TEST(ExtensionTest, GenerateId) { 1223 TEST(ExtensionTest, GenerateId) {
1204 std::string result; 1224 std::string result;
1205 EXPECT_FALSE(Extension::GenerateId("", &result)); 1225 EXPECT_FALSE(Extension::GenerateId("", &result));
1206 1226
1207 EXPECT_TRUE(Extension::GenerateId("test", &result)); 1227 EXPECT_TRUE(Extension::GenerateId("test", &result));
1208 EXPECT_EQ(result, "jpignaibiiemhngfjkcpokkamffknabf"); 1228 EXPECT_EQ(result, "jpignaibiiemhngfjkcpokkamffknabf");
1209 1229
1210 EXPECT_TRUE(Extension::GenerateId("_", &result)); 1230 EXPECT_TRUE(Extension::GenerateId("_", &result));
1211 EXPECT_EQ(result, "ncocknphbhhlhkikpnnlmbcnbgdempcd"); 1231 EXPECT_EQ(result, "ncocknphbhhlhkikpnnlmbcnbgdempcd");
1212 1232
1213 EXPECT_TRUE(Extension::GenerateId( 1233 EXPECT_TRUE(Extension::GenerateId(
1214 "this_string_is_longer_than_a_single_sha256_hash_digest", &result)); 1234 "this_string_is_longer_than_a_single_sha256_hash_digest", &result));
1215 EXPECT_EQ(result, "jimneklojkjdibfkgiiophfhjhbdgcfi"); 1235 EXPECT_EQ(result, "jimneklojkjdibfkgiiophfhjhbdgcfi");
1216 } 1236 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698