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

Side by Side Diff: chrome/browser/extensions/extensions_quota_service_unittest.cc

Issue 16295003: Update chrome/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/process.h" 6 #include "base/process.h"
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "chrome/browser/extensions/extension_function.h" 9 #include "chrome/browser/extensions/extension_function.h"
10 #include "chrome/browser/extensions/extensions_quota_service.h" 10 #include "chrome/browser/extensions/extensions_quota_service.h"
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 // Do the same as above except don't exhaust the 3rd (w.l.o.g) bucket. 211 // Do the same as above except don't exhaust the 3rd (w.l.o.g) bucket.
212 bucket.Reset(k2PerMinute, kStartTime); 212 bucket.Reset(k2PerMinute, kStartTime);
213 DoMoreThan2PerMinuteFor5Minutes(kStartTime, &lim, &bucket, 3); 213 DoMoreThan2PerMinuteFor5Minutes(kStartTime, &lim, &bucket, 3);
214 // If the 3rd bucket were exhausted, this would fail (see first test). 214 // If the 3rd bucket were exhausted, this would fail (see first test).
215 EXPECT_TRUE(lim.Apply(&bucket, kStartTime + TimeDelta::FromMinutes(6))); 215 EXPECT_TRUE(lim.Apply(&bucket, kStartTime + TimeDelta::FromMinutes(6)));
216 } 216 }
217 217
218 TEST_F(ExtensionsQuotaServiceTest, NoHeuristic) { 218 TEST_F(ExtensionsQuotaServiceTest, NoHeuristic) {
219 scoped_refptr<MockFunction> f(new MockFunction("foo")); 219 scoped_refptr<MockFunction> f(new MockFunction("foo"));
220 ListValue args; 220 ListValue args;
221 EXPECT_EQ("", service_->Assess(extension_a_, f, &args, kStartTime)); 221 EXPECT_EQ("", service_->Assess(extension_a_, f.get(), &args, kStartTime));
222 } 222 }
223 223
224 TEST_F(ExtensionsQuotaServiceTest, FrozenHeuristic) { 224 TEST_F(ExtensionsQuotaServiceTest, FrozenHeuristic) {
225 scoped_refptr<MockFunction> f(new FrozenMockFunction("foo")); 225 scoped_refptr<MockFunction> f(new FrozenMockFunction("foo"));
226 ListValue args; 226 ListValue args;
227 args.Append(new base::FundamentalValue(1)); 227 args.Append(new base::FundamentalValue(1));
228 EXPECT_NE("", service_->Assess(extension_a_, f, &args, kStartTime)); 228 EXPECT_NE("", service_->Assess(extension_a_, f.get(), &args, kStartTime));
229 } 229 }
230 230
231 TEST_F(ExtensionsQuotaServiceTest, SingleHeuristic) { 231 TEST_F(ExtensionsQuotaServiceTest, SingleHeuristic) {
232 scoped_refptr<MockFunction> f(new TimedLimitMockFunction("foo")); 232 scoped_refptr<MockFunction> f(new TimedLimitMockFunction("foo"));
233 ListValue args; 233 ListValue args;
234 args.Append(new base::FundamentalValue(1)); 234 args.Append(new base::FundamentalValue(1));
235 EXPECT_EQ("", service_->Assess(extension_a_, f, &args, kStartTime)); 235 EXPECT_EQ("", service_->Assess(extension_a_, f.get(), &args, kStartTime));
236 EXPECT_EQ("", service_->Assess(extension_a_, f, &args, 236 EXPECT_EQ("",
237 kStartTime + TimeDelta::FromSeconds(10))); 237 service_->Assess(extension_a_,
238 EXPECT_NE("", service_->Assess(extension_a_, f, &args, 238 f.get(),
239 kStartTime + TimeDelta::FromSeconds(15))); 239 &args,
240 kStartTime + TimeDelta::FromSeconds(10)));
241 EXPECT_NE("",
242 service_->Assess(extension_a_,
243 f.get(),
244 &args,
245 kStartTime + TimeDelta::FromSeconds(15)));
240 246
241 ListValue args2; 247 ListValue args2;
242 args2.Append(new base::FundamentalValue(1)); 248 args2.Append(new base::FundamentalValue(1));
243 args2.Append(new base::FundamentalValue(2)); 249 args2.Append(new base::FundamentalValue(2));
244 EXPECT_EQ("", service_->Assess(extension_b_, f, &args2, kStartTime)); 250 EXPECT_EQ("", service_->Assess(extension_b_, f.get(), &args2, kStartTime));
245 EXPECT_EQ("", service_->Assess(extension_b_, f, &args2, 251 EXPECT_EQ("",
246 kStartTime + TimeDelta::FromSeconds(10))); 252 service_->Assess(extension_b_,
253 f.get(),
254 &args2,
255 kStartTime + TimeDelta::FromSeconds(10)));
247 256
248 TimeDelta peace = TimeDelta::FromMinutes(30); 257 TimeDelta peace = TimeDelta::FromMinutes(30);
249 EXPECT_EQ("", service_->Assess(extension_b_, f, &args, kStartTime + peace)); 258 EXPECT_EQ("",
250 EXPECT_EQ("", service_->Assess( 259 service_->Assess(extension_b_, f.get(), &args, kStartTime + peace));
251 extension_b_, f, &args, 260 EXPECT_EQ("",
252 kStartTime + peace + TimeDelta::FromSeconds(10))); 261 service_->Assess(extension_b_,
253 EXPECT_NE("", service_->Assess(extension_b_, f, &args2, 262 f.get(),
254 kStartTime + peace + TimeDelta::FromSeconds(15))); 263 &args,
264 kStartTime + peace + TimeDelta::FromSeconds(10)));
265 EXPECT_NE("",
266 service_->Assess(extension_b_,
267 f.get(),
268 &args2,
269 kStartTime + peace + TimeDelta::FromSeconds(15)));
255 270
256 // Test that items are independent. 271 // Test that items are independent.
257 ListValue args3; 272 ListValue args3;
258 args3.Append(new base::FundamentalValue(3)); 273 args3.Append(new base::FundamentalValue(3));
259 EXPECT_EQ("", service_->Assess(extension_c_, f, &args, kStartTime)); 274 EXPECT_EQ("", service_->Assess(extension_c_, f.get(), &args, kStartTime));
260 EXPECT_EQ("", service_->Assess(extension_c_, f, &args3, 275 EXPECT_EQ("",
261 kStartTime + TimeDelta::FromSeconds(10))); 276 service_->Assess(extension_c_,
262 EXPECT_EQ("", service_->Assess(extension_c_, f, &args, 277 f.get(),
263 kStartTime + TimeDelta::FromSeconds(15))); 278 &args3,
264 EXPECT_EQ("", service_->Assess(extension_c_, f, &args3, 279 kStartTime + TimeDelta::FromSeconds(10)));
265 kStartTime + TimeDelta::FromSeconds(20))); 280 EXPECT_EQ("",
266 EXPECT_NE("", service_->Assess(extension_c_, f, &args, 281 service_->Assess(extension_c_,
267 kStartTime + TimeDelta::FromSeconds(25))); 282 f.get(),
268 EXPECT_NE("", service_->Assess(extension_c_, f, &args3, 283 &args,
269 kStartTime + TimeDelta::FromSeconds(30))); 284 kStartTime + TimeDelta::FromSeconds(15)));
285 EXPECT_EQ("",
286 service_->Assess(extension_c_,
287 f.get(),
288 &args3,
289 kStartTime + TimeDelta::FromSeconds(20)));
290 EXPECT_NE("",
291 service_->Assess(extension_c_,
292 f.get(),
293 &args,
294 kStartTime + TimeDelta::FromSeconds(25)));
295 EXPECT_NE("",
296 service_->Assess(extension_c_,
297 f.get(),
298 &args3,
299 kStartTime + TimeDelta::FromSeconds(30)));
270 } 300 }
271 301
272 TEST_F(ExtensionsQuotaServiceTest, ChainedHeuristics) { 302 TEST_F(ExtensionsQuotaServiceTest, ChainedHeuristics) {
273 scoped_refptr<MockFunction> f(new ChainedLimitsMockFunction("foo")); 303 scoped_refptr<MockFunction> f(new ChainedLimitsMockFunction("foo"));
274 ListValue args; 304 ListValue args;
275 args.Append(new base::FundamentalValue(1)); 305 args.Append(new base::FundamentalValue(1));
276 306
277 // First, test that the low limit can be avoided but the higher one is hit. 307 // First, test that the low limit can be avoided but the higher one is hit.
278 // One event per minute for 20 minutes comes in under the sustained limit, 308 // One event per minute for 20 minutes comes in under the sustained limit,
279 // but is equal to the timed limit. 309 // but is equal to the timed limit.
280 for (int i = 0; i < 20; i++) { 310 for (int i = 0; i < 20; i++) {
281 EXPECT_EQ("", service_->Assess( 311 EXPECT_EQ(
282 extension_a_, f, &args, 312 "",
283 kStartTime + TimeDelta::FromSeconds(10 + i * 60))); 313 service_->Assess(extension_a_,
314 f.get(),
315 &args,
316 kStartTime + TimeDelta::FromSeconds(10 + i * 60)));
284 } 317 }
285 318
286 // This will bring us to 21 events in an hour, which is a violation. 319 // This will bring us to 21 events in an hour, which is a violation.
287 EXPECT_NE("", service_->Assess(extension_a_, f, &args, 320 EXPECT_NE("",
288 kStartTime + TimeDelta::FromMinutes(30))); 321 service_->Assess(extension_a_,
322 f.get(),
323 &args,
324 kStartTime + TimeDelta::FromMinutes(30)));
289 325
290 // Now, check that we can still hit the lower limit. 326 // Now, check that we can still hit the lower limit.
291 for (int i = 0; i < 5; i++) { 327 for (int i = 0; i < 5; i++) {
292 EXPECT_EQ("", service_->Assess( 328 EXPECT_EQ(
293 extension_b_, f, &args, 329 "",
294 kStartTime + TimeDelta::FromSeconds(10 + i * 60))); 330 service_->Assess(extension_b_,
295 EXPECT_EQ("", service_->Assess( 331 f.get(),
296 extension_b_, f, &args, 332 &args,
297 kStartTime + TimeDelta::FromSeconds(15 + i * 60))); 333 kStartTime + TimeDelta::FromSeconds(10 + i * 60)));
298 EXPECT_EQ("", service_->Assess( 334 EXPECT_EQ(
299 extension_b_, f, &args, 335 "",
300 kStartTime + TimeDelta::FromSeconds(20 + i * 60))); 336 service_->Assess(extension_b_,
337 f.get(),
338 &args,
339 kStartTime + TimeDelta::FromSeconds(15 + i * 60)));
340 EXPECT_EQ(
341 "",
342 service_->Assess(extension_b_,
343 f.get(),
344 &args,
345 kStartTime + TimeDelta::FromSeconds(20 + i * 60)));
301 } 346 }
302 347
303 EXPECT_NE("", service_->Assess(extension_b_, f, &args, 348 EXPECT_NE("",
304 kStartTime + TimeDelta::FromMinutes(6))); 349 service_->Assess(extension_b_,
350 f.get(),
351 &args,
352 kStartTime + TimeDelta::FromMinutes(6)));
305 } 353 }
306 354
307 TEST_F(ExtensionsQuotaServiceTest, MultipleFunctionsDontInterfere) { 355 TEST_F(ExtensionsQuotaServiceTest, MultipleFunctionsDontInterfere) {
308 scoped_refptr<MockFunction> f(new TimedLimitMockFunction("foo")); 356 scoped_refptr<MockFunction> f(new TimedLimitMockFunction("foo"));
309 scoped_refptr<MockFunction> g(new TimedLimitMockFunction("bar")); 357 scoped_refptr<MockFunction> g(new TimedLimitMockFunction("bar"));
310 358
311 ListValue args_f; 359 ListValue args_f;
312 ListValue args_g; 360 ListValue args_g;
313 args_f.Append(new base::FundamentalValue(1)); 361 args_f.Append(new base::FundamentalValue(1));
314 args_g.Append(new base::FundamentalValue(2)); 362 args_g.Append(new base::FundamentalValue(2));
315 363
316 EXPECT_EQ("", service_->Assess(extension_a_, f, &args_f, kStartTime)); 364 EXPECT_EQ("", service_->Assess(extension_a_, f.get(), &args_f, kStartTime));
317 EXPECT_EQ("", service_->Assess(extension_a_, g, &args_g, kStartTime)); 365 EXPECT_EQ("", service_->Assess(extension_a_, g.get(), &args_g, kStartTime));
318 EXPECT_EQ("", service_->Assess(extension_a_, f, &args_f, 366 EXPECT_EQ("",
319 kStartTime + TimeDelta::FromSeconds(10))); 367 service_->Assess(extension_a_,
320 EXPECT_EQ("", service_->Assess(extension_a_, g, &args_g, 368 f.get(),
321 kStartTime + TimeDelta::FromSeconds(10))); 369 &args_f,
322 EXPECT_NE("", service_->Assess(extension_a_, f, &args_f, 370 kStartTime + TimeDelta::FromSeconds(10)));
323 kStartTime + TimeDelta::FromSeconds(15))); 371 EXPECT_EQ("",
324 EXPECT_NE("", service_->Assess(extension_a_, g, &args_g, 372 service_->Assess(extension_a_,
325 kStartTime + TimeDelta::FromSeconds(15))); 373 g.get(),
374 &args_g,
375 kStartTime + TimeDelta::FromSeconds(10)));
376 EXPECT_NE("",
377 service_->Assess(extension_a_,
378 f.get(),
379 &args_f,
380 kStartTime + TimeDelta::FromSeconds(15)));
381 EXPECT_NE("",
382 service_->Assess(extension_a_,
383 g.get(),
384 &args_g,
385 kStartTime + TimeDelta::FromSeconds(15)));
326 } 386 }
327 387
328 TEST_F(ExtensionsQuotaServiceTest, ViolatorsWillBeViolators) { 388 TEST_F(ExtensionsQuotaServiceTest, ViolatorsWillBeViolators) {
329 scoped_refptr<MockFunction> f(new TimedLimitMockFunction("foo")); 389 scoped_refptr<MockFunction> f(new TimedLimitMockFunction("foo"));
330 scoped_refptr<MockFunction> g(new TimedLimitMockFunction("bar")); 390 scoped_refptr<MockFunction> g(new TimedLimitMockFunction("bar"));
331 ListValue arg; 391 ListValue arg;
332 arg.Append(new base::FundamentalValue(1)); 392 arg.Append(new base::FundamentalValue(1));
333 EXPECT_EQ("", service_->Assess(extension_a_, f, &arg, kStartTime)); 393 EXPECT_EQ("", service_->Assess(extension_a_, f.get(), &arg, kStartTime));
334 EXPECT_EQ("", service_->Assess(extension_a_, f, &arg, 394 EXPECT_EQ("",
335 kStartTime + TimeDelta::FromSeconds(10))); 395 service_->Assess(extension_a_,
336 EXPECT_NE("", service_->Assess(extension_a_, f, &arg, 396 f.get(),
337 kStartTime + TimeDelta::FromSeconds(15))); 397 &arg,
398 kStartTime + TimeDelta::FromSeconds(10)));
399 EXPECT_NE("",
400 service_->Assess(extension_a_,
401 f.get(),
402 &arg,
403 kStartTime + TimeDelta::FromSeconds(15)));
338 404
339 // We don't allow this extension to use quota limited functions even if they 405 // We don't allow this extension to use quota limited functions even if they
340 // wait a while. 406 // wait a while.
341 EXPECT_NE("", service_->Assess(extension_a_, f, &arg, 407 EXPECT_NE(
342 kStartTime + TimeDelta::FromDays(1))); 408 "",
343 EXPECT_NE("", service_->Assess(extension_a_, g, &arg, 409 service_->Assess(
344 kStartTime + TimeDelta::FromDays(1))); 410 extension_a_, f.get(), &arg, kStartTime + TimeDelta::FromDays(1)));
411 EXPECT_NE(
412 "",
413 service_->Assess(
414 extension_a_, g.get(), &arg, kStartTime + TimeDelta::FromDays(1)));
345 } 415 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_toolbar_model_browsertest.cc ('k') | chrome/browser/extensions/image_loader_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698