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

Side by Side Diff: chrome/browser/policy/cloud/cloud_policy_invalidator_unittest.cc

Issue 23441042: Refactor common invalidation framework types (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move DEPS rule Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <string> 5 #include <string>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 // Causes the invalidation service to fire an invalidation. Returns an ack 110 // Causes the invalidation service to fire an invalidation. Returns an ack
111 // handle which be used to verify that the invalidation was acknowledged. 111 // handle which be used to verify that the invalidation was acknowledged.
112 syncer::AckHandle FireInvalidation( 112 syncer::AckHandle FireInvalidation(
113 PolicyObject object, 113 PolicyObject object,
114 int64 version, 114 int64 version,
115 const std::string& payload); 115 const std::string& payload);
116 116
117 // Causes the invalidation service to fire an invalidation with unknown 117 // Causes the invalidation service to fire an invalidation with unknown
118 // version. Returns an ack handle which be used to verify that the 118 // version. Returns an ack handle which be used to verify that the
119 // invalidation was acknowledged. 119 // invalidation was acknowledged.
120 syncer::AckHandle FireInvalidation(PolicyObject object); 120 syncer::AckHandle FireUnknownVersionInvalidation(PolicyObject object);
121 121
122 // Checks the expected value of the currently set invalidation info. 122 // Checks the expected value of the currently set invalidation info.
123 bool CheckInvalidationInfo(int64 version, const std::string& payload); 123 bool CheckInvalidationInfo(int64 version, const std::string& payload);
124 124
125 // Checks that the policy was not refreshed due to an invalidation. 125 // Checks that the policy was not refreshed due to an invalidation.
126 bool CheckPolicyNotRefreshed(); 126 bool CheckPolicyNotRefreshed();
127 127
128 // Checks that the policy was refreshed due to an invalidation within an 128 // Checks that the policy was refreshed due to an invalidation within an
129 // appropriate timeframe depending on whether the invalidation had unknown 129 // appropriate timeframe depending on whether the invalidation had unknown
130 // version. 130 // version.
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 } 298 }
299 299
300 void CloudPolicyInvalidatorTest::EnableInvalidationService() { 300 void CloudPolicyInvalidatorTest::EnableInvalidationService() {
301 invalidation_service_.SetInvalidatorState(syncer::INVALIDATIONS_ENABLED); 301 invalidation_service_.SetInvalidatorState(syncer::INVALIDATIONS_ENABLED);
302 } 302 }
303 303
304 syncer::AckHandle CloudPolicyInvalidatorTest::FireInvalidation( 304 syncer::AckHandle CloudPolicyInvalidatorTest::FireInvalidation(
305 PolicyObject object, 305 PolicyObject object,
306 int64 version, 306 int64 version,
307 const std::string& payload) { 307 const std::string& payload) {
308 return invalidation_service_.EmitInvalidationForTest( 308 syncer::Invalidation invalidation = syncer::Invalidation::Init(
309 GetPolicyObjectId(object), 309 GetPolicyObjectId(object),
310 version, 310 version,
311 payload); 311 payload);
312 invalidation_service_.EmitInvalidationForTest(invalidation);
313 return invalidation.ack_handle();
312 } 314 }
313 315
314 syncer::AckHandle CloudPolicyInvalidatorTest::FireInvalidation( 316 syncer::AckHandle CloudPolicyInvalidatorTest::FireUnknownVersionInvalidation(
315 PolicyObject object) { 317 PolicyObject object) {
316 return invalidation_service_.EmitInvalidationForTest( 318 syncer::Invalidation invalidation =
317 GetPolicyObjectId(object), 319 syncer::Invalidation::InitUnknownVersion(GetPolicyObjectId(object));
318 syncer::Invalidation::kUnknownVersion, 320 invalidation_service_.EmitInvalidationForTest(invalidation);
319 std::string()); 321 return invalidation.ack_handle();
320 } 322 }
321 323
322 bool CloudPolicyInvalidatorTest::CheckInvalidationInfo( 324 bool CloudPolicyInvalidatorTest::CheckInvalidationInfo(
323 int64 version, 325 int64 version,
324 const std::string& payload) { 326 const std::string& payload) {
325 MockCloudPolicyClient* client = 327 MockCloudPolicyClient* client =
326 static_cast<MockCloudPolicyClient*>(core_.client()); 328 static_cast<MockCloudPolicyClient*>(core_.client());
327 return version == client->invalidation_version_ && 329 return version == client->invalidation_version_ &&
328 payload == client->invalidation_payload_; 330 payload == client->invalidation_payload_;
329 } 331 }
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 if (!histogram) 415 if (!histogram)
414 return scoped_ptr<base::HistogramSamples>(new base::SampleMap()); 416 return scoped_ptr<base::HistogramSamples>(new base::SampleMap());
415 return histogram->SnapshotSamples(); 417 return histogram->SnapshotSamples();
416 } 418 }
417 419
418 TEST_F(CloudPolicyInvalidatorTest, Uninitialized) { 420 TEST_F(CloudPolicyInvalidatorTest, Uninitialized) {
419 // No invalidations should be processed if the invalidator is not initialized. 421 // No invalidations should be processed if the invalidator is not initialized.
420 StartInvalidator(false /* initialize */, true /* start_refresh_scheduler */); 422 StartInvalidator(false /* initialize */, true /* start_refresh_scheduler */);
421 StorePolicy(POLICY_OBJECT_A); 423 StorePolicy(POLICY_OBJECT_A);
422 EXPECT_FALSE(IsInvalidatorRegistered()); 424 EXPECT_FALSE(IsInvalidatorRegistered());
423 FireInvalidation(POLICY_OBJECT_A); 425 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
424 EXPECT_TRUE(CheckPolicyNotRefreshed()); 426 EXPECT_TRUE(CheckPolicyNotRefreshed());
425 } 427 }
426 428
427 TEST_F(CloudPolicyInvalidatorTest, RefreshSchedulerNotStarted) { 429 TEST_F(CloudPolicyInvalidatorTest, RefreshSchedulerNotStarted) {
428 // No invalidations should be processed if the refresh scheduler is not 430 // No invalidations should be processed if the refresh scheduler is not
429 // started. 431 // started.
430 StartInvalidator(true /* initialize */, false /* start_refresh_scheduler */); 432 StartInvalidator(true /* initialize */, false /* start_refresh_scheduler */);
431 StorePolicy(POLICY_OBJECT_A); 433 StorePolicy(POLICY_OBJECT_A);
432 EXPECT_FALSE(IsInvalidatorRegistered()); 434 EXPECT_FALSE(IsInvalidatorRegistered());
433 FireInvalidation(POLICY_OBJECT_A); 435 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
434 EXPECT_TRUE(CheckPolicyNotRefreshed()); 436 EXPECT_TRUE(CheckPolicyNotRefreshed());
435 } 437 }
436 438
437 TEST_F(CloudPolicyInvalidatorTest, DisconnectCoreThenInitialize) { 439 TEST_F(CloudPolicyInvalidatorTest, DisconnectCoreThenInitialize) {
438 // No invalidations should be processed if the core is disconnected before 440 // No invalidations should be processed if the core is disconnected before
439 // initialization. 441 // initialization.
440 StartInvalidator(false /* initialize */, true /* start_refresh_scheduler */); 442 StartInvalidator(false /* initialize */, true /* start_refresh_scheduler */);
441 DisconnectCore(); 443 DisconnectCore();
442 InitializeInvalidator(); 444 InitializeInvalidator();
443 StorePolicy(POLICY_OBJECT_A); 445 StorePolicy(POLICY_OBJECT_A);
444 EXPECT_FALSE(IsInvalidatorRegistered()); 446 EXPECT_FALSE(IsInvalidatorRegistered());
445 FireInvalidation(POLICY_OBJECT_A); 447 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
446 EXPECT_TRUE(CheckPolicyNotRefreshed()); 448 EXPECT_TRUE(CheckPolicyNotRefreshed());
447 } 449 }
448 450
449 TEST_F(CloudPolicyInvalidatorTest, InitializeThenStartRefreshScheduler) { 451 TEST_F(CloudPolicyInvalidatorTest, InitializeThenStartRefreshScheduler) {
450 // Make sure registration occurs and invalidations are processed when 452 // Make sure registration occurs and invalidations are processed when
451 // Initialize is called before starting the refresh scheduler. 453 // Initialize is called before starting the refresh scheduler.
452 // Note that the reverse case (start refresh scheduler then initialize) is 454 // Note that the reverse case (start refresh scheduler then initialize) is
453 // the default behavior for the test fixture, so will be tested in most other 455 // the default behavior for the test fixture, so will be tested in most other
454 // tests. 456 // tests.
455 StartInvalidator(true /* initialize */, false /* start_refresh_scheduler */); 457 StartInvalidator(true /* initialize */, false /* start_refresh_scheduler */);
456 ConnectCore(); 458 ConnectCore();
457 StartRefreshScheduler(); 459 StartRefreshScheduler();
458 StorePolicy(POLICY_OBJECT_A); 460 StorePolicy(POLICY_OBJECT_A);
459 EXPECT_TRUE(IsInvalidatorRegistered()); 461 EXPECT_TRUE(IsInvalidatorRegistered());
460 FireInvalidation(POLICY_OBJECT_A); 462 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
461 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion()); 463 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
462 } 464 }
463 465
464 TEST_F(CloudPolicyInvalidatorTest, RegisterOnStoreLoaded) { 466 TEST_F(CloudPolicyInvalidatorTest, RegisterOnStoreLoaded) {
465 // No registration when store is not loaded. 467 // No registration when store is not loaded.
466 StartInvalidator(); 468 StartInvalidator();
467 EXPECT_FALSE(IsInvalidatorRegistered()); 469 EXPECT_FALSE(IsInvalidatorRegistered());
468 EXPECT_FALSE(InvalidationsEnabled()); 470 EXPECT_FALSE(InvalidationsEnabled());
469 FireInvalidation(POLICY_OBJECT_A); 471 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
470 FireInvalidation(POLICY_OBJECT_B); 472 FireUnknownVersionInvalidation(POLICY_OBJECT_B);
471 EXPECT_TRUE(CheckPolicyNotRefreshed()); 473 EXPECT_TRUE(CheckPolicyNotRefreshed());
472 474
473 // No registration when store is loaded with no invalidation object id. 475 // No registration when store is loaded with no invalidation object id.
474 StorePolicy(POLICY_OBJECT_NONE); 476 StorePolicy(POLICY_OBJECT_NONE);
475 EXPECT_FALSE(IsInvalidatorRegistered()); 477 EXPECT_FALSE(IsInvalidatorRegistered());
476 EXPECT_FALSE(InvalidationsEnabled()); 478 EXPECT_FALSE(InvalidationsEnabled());
477 FireInvalidation(POLICY_OBJECT_A); 479 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
478 FireInvalidation(POLICY_OBJECT_B); 480 FireUnknownVersionInvalidation(POLICY_OBJECT_B);
479 EXPECT_TRUE(CheckPolicyNotRefreshed()); 481 EXPECT_TRUE(CheckPolicyNotRefreshed());
480 482
481 // Check registration when store is loaded for object A. 483 // Check registration when store is loaded for object A.
482 StorePolicy(POLICY_OBJECT_A); 484 StorePolicy(POLICY_OBJECT_A);
483 EXPECT_TRUE(IsInvalidatorRegistered()); 485 EXPECT_TRUE(IsInvalidatorRegistered());
484 EXPECT_TRUE(InvalidationsEnabled()); 486 EXPECT_TRUE(InvalidationsEnabled());
485 FireInvalidation(POLICY_OBJECT_A); 487 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
486 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion()); 488 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
487 FireInvalidation(POLICY_OBJECT_B); 489 FireUnknownVersionInvalidation(POLICY_OBJECT_B);
488 EXPECT_TRUE(CheckPolicyNotRefreshed()); 490 EXPECT_TRUE(CheckPolicyNotRefreshed());
489 } 491 }
490 492
491 TEST_F(CloudPolicyInvalidatorTest, ChangeRegistration) { 493 TEST_F(CloudPolicyInvalidatorTest, ChangeRegistration) {
492 // Register for object A. 494 // Register for object A.
493 StartInvalidator(); 495 StartInvalidator();
494 StorePolicy(POLICY_OBJECT_A); 496 StorePolicy(POLICY_OBJECT_A);
495 EXPECT_TRUE(IsInvalidatorRegistered()); 497 EXPECT_TRUE(IsInvalidatorRegistered());
496 EXPECT_TRUE(InvalidationsEnabled()); 498 EXPECT_TRUE(InvalidationsEnabled());
497 FireInvalidation(POLICY_OBJECT_A); 499 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
498 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion()); 500 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
499 FireInvalidation(POLICY_OBJECT_B); 501 FireUnknownVersionInvalidation(POLICY_OBJECT_B);
500 EXPECT_TRUE(CheckPolicyNotRefreshed()); 502 EXPECT_TRUE(CheckPolicyNotRefreshed());
501 syncer::AckHandle ack = FireInvalidation(POLICY_OBJECT_A); 503 syncer::AckHandle ack = FireUnknownVersionInvalidation(POLICY_OBJECT_A);
502 504
503 // Check re-registration for object B. Make sure the pending invalidation for 505 // Check re-registration for object B. Make sure the pending invalidation for
504 // object A is acknowledged without making the callback. 506 // object A is acknowledged without making the callback.
505 StorePolicy(POLICY_OBJECT_B); 507 StorePolicy(POLICY_OBJECT_B);
506 EXPECT_TRUE(IsInvalidatorRegistered()); 508 EXPECT_TRUE(IsInvalidatorRegistered());
507 EXPECT_TRUE(InvalidationsEnabled()); 509 EXPECT_TRUE(InvalidationsEnabled());
508 EXPECT_TRUE(IsInvalidationAcknowledged(ack)); 510 EXPECT_TRUE(IsInvalidationAcknowledged(ack));
509 EXPECT_TRUE(CheckPolicyNotRefreshed()); 511 EXPECT_TRUE(CheckPolicyNotRefreshed());
510 512
511 // Make sure future invalidations for object A are ignored and for object B 513 // Make sure future invalidations for object A are ignored and for object B
512 // are processed. 514 // are processed.
513 FireInvalidation(POLICY_OBJECT_A); 515 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
514 EXPECT_TRUE(CheckPolicyNotRefreshed()); 516 EXPECT_TRUE(CheckPolicyNotRefreshed());
515 FireInvalidation(POLICY_OBJECT_B); 517 FireUnknownVersionInvalidation(POLICY_OBJECT_B);
516 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion()); 518 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
517 } 519 }
518 520
519 TEST_F(CloudPolicyInvalidatorTest, UnregisterOnStoreLoaded) { 521 TEST_F(CloudPolicyInvalidatorTest, UnregisterOnStoreLoaded) {
520 // Register for object A. 522 // Register for object A.
521 StartInvalidator(); 523 StartInvalidator();
522 StorePolicy(POLICY_OBJECT_A); 524 StorePolicy(POLICY_OBJECT_A);
523 EXPECT_TRUE(IsInvalidatorRegistered()); 525 EXPECT_TRUE(IsInvalidatorRegistered());
524 EXPECT_TRUE(InvalidationsEnabled()); 526 EXPECT_TRUE(InvalidationsEnabled());
525 FireInvalidation(POLICY_OBJECT_A); 527 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
526 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion()); 528 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
527 529
528 // Check unregistration when store is loaded with no invalidation object id. 530 // Check unregistration when store is loaded with no invalidation object id.
529 syncer::AckHandle ack = FireInvalidation(POLICY_OBJECT_A); 531 syncer::AckHandle ack = FireUnknownVersionInvalidation(POLICY_OBJECT_A);
530 EXPECT_FALSE(IsInvalidationAcknowledged(ack)); 532 EXPECT_FALSE(IsInvalidationAcknowledged(ack));
531 StorePolicy(POLICY_OBJECT_NONE); 533 StorePolicy(POLICY_OBJECT_NONE);
532 EXPECT_FALSE(IsInvalidatorRegistered()); 534 EXPECT_FALSE(IsInvalidatorRegistered());
533 EXPECT_TRUE(IsInvalidationAcknowledged(ack)); 535 EXPECT_TRUE(IsInvalidationAcknowledged(ack));
534 EXPECT_FALSE(InvalidationsEnabled()); 536 EXPECT_FALSE(InvalidationsEnabled());
535 FireInvalidation(POLICY_OBJECT_A); 537 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
536 FireInvalidation(POLICY_OBJECT_B); 538 FireUnknownVersionInvalidation(POLICY_OBJECT_B);
537 EXPECT_TRUE(CheckPolicyNotRefreshed()); 539 EXPECT_TRUE(CheckPolicyNotRefreshed());
538 540
539 // Check re-registration for object B. 541 // Check re-registration for object B.
540 StorePolicy(POLICY_OBJECT_B); 542 StorePolicy(POLICY_OBJECT_B);
541 EXPECT_TRUE(IsInvalidatorRegistered()); 543 EXPECT_TRUE(IsInvalidatorRegistered());
542 EXPECT_TRUE(InvalidationsEnabled()); 544 EXPECT_TRUE(InvalidationsEnabled());
543 FireInvalidation(POLICY_OBJECT_B); 545 FireUnknownVersionInvalidation(POLICY_OBJECT_B);
544 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion()); 546 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
545 } 547 }
546 548
547 TEST_F(CloudPolicyInvalidatorTest, HandleInvalidation) { 549 TEST_F(CloudPolicyInvalidatorTest, HandleInvalidation) {
548 // Register and fire invalidation 550 // Register and fire invalidation
549 StorePolicy(POLICY_OBJECT_A); 551 StorePolicy(POLICY_OBJECT_A);
550 StartInvalidator(); 552 StartInvalidator();
551 EXPECT_TRUE(InvalidationsEnabled()); 553 EXPECT_TRUE(InvalidationsEnabled());
552 syncer::AckHandle ack = FireInvalidation(POLICY_OBJECT_A, 12, "test_payload"); 554 syncer::AckHandle ack = FireInvalidation(POLICY_OBJECT_A, 12, "test_payload");
553 555
554 // Make sure client info is set as soon as the invalidation is received. 556 // Make sure client info is set as soon as the invalidation is received.
555 EXPECT_TRUE(CheckInvalidationInfo(12, "test_payload")); 557 EXPECT_TRUE(CheckInvalidationInfo(12, "test_payload"));
556 EXPECT_TRUE(CheckPolicyRefreshed()); 558 EXPECT_TRUE(CheckPolicyRefreshed());
557 559
558 // Make sure invalidation is not acknowledged until the store is loaded. 560 // Make sure invalidation is not acknowledged until the store is loaded.
559 EXPECT_FALSE(IsInvalidationAcknowledged(ack)); 561 EXPECT_FALSE(IsInvalidationAcknowledged(ack));
560 EXPECT_TRUE(CheckInvalidationInfo(12, "test_payload")); 562 EXPECT_TRUE(CheckInvalidationInfo(12, "test_payload"));
561 StorePolicy(POLICY_OBJECT_A, 12); 563 StorePolicy(POLICY_OBJECT_A, 12);
562 EXPECT_TRUE(IsInvalidationAcknowledged(ack)); 564 EXPECT_TRUE(IsInvalidationAcknowledged(ack));
563 EXPECT_TRUE(CheckInvalidationInfo(0, std::string())); 565 EXPECT_TRUE(CheckInvalidationInfo(0, std::string()));
564 } 566 }
565 567
566 TEST_F(CloudPolicyInvalidatorTest, HandleInvalidationWithUnknownVersion) { 568 TEST_F(CloudPolicyInvalidatorTest, HandleInvalidationWithUnknownVersion) {
567 // Register and fire invalidation with unknown version. 569 // Register and fire invalidation with unknown version.
568 StorePolicy(POLICY_OBJECT_A); 570 StorePolicy(POLICY_OBJECT_A);
569 StartInvalidator(); 571 StartInvalidator();
570 syncer::AckHandle ack = FireInvalidation(POLICY_OBJECT_A); 572 syncer::AckHandle ack = FireUnknownVersionInvalidation(POLICY_OBJECT_A);
571 573
572 // Make sure client info is not set until after the invalidation callback is 574 // Make sure client info is not set until after the invalidation callback is
573 // made. 575 // made.
574 EXPECT_TRUE(CheckInvalidationInfo(0, std::string())); 576 EXPECT_TRUE(CheckInvalidationInfo(0, std::string()));
575 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion()); 577 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
576 EXPECT_TRUE(CheckInvalidationInfo(-1, std::string())); 578 EXPECT_TRUE(CheckInvalidationInfo(-1, std::string()));
577 579
578 // Make sure invalidation is not acknowledged until the store is loaded. 580 // Make sure invalidation is not acknowledged until the store is loaded.
579 EXPECT_FALSE(IsInvalidationAcknowledged(ack)); 581 EXPECT_FALSE(IsInvalidationAcknowledged(ack));
580 StorePolicy(POLICY_OBJECT_A, -1); 582 StorePolicy(POLICY_OBJECT_A, -1);
(...skipping 28 matching lines...) Expand all
609 StorePolicy(POLICY_OBJECT_A, 3); 611 StorePolicy(POLICY_OBJECT_A, 3);
610 EXPECT_TRUE(IsInvalidationAcknowledged(ack3)); 612 EXPECT_TRUE(IsInvalidationAcknowledged(ack3));
611 } 613 }
612 614
613 TEST_F(CloudPolicyInvalidatorTest, 615 TEST_F(CloudPolicyInvalidatorTest,
614 HandleMultipleInvalidationsWithUnknownVersion) { 616 HandleMultipleInvalidationsWithUnknownVersion) {
615 // Validate that multiple invalidations with unknown version each generate 617 // Validate that multiple invalidations with unknown version each generate
616 // unique invalidation version numbers. 618 // unique invalidation version numbers.
617 StorePolicy(POLICY_OBJECT_A); 619 StorePolicy(POLICY_OBJECT_A);
618 StartInvalidator(); 620 StartInvalidator();
619 syncer::AckHandle ack1 = FireInvalidation(POLICY_OBJECT_A); 621 syncer::AckHandle ack1 = FireUnknownVersionInvalidation(POLICY_OBJECT_A);
620 EXPECT_TRUE(CheckInvalidationInfo(0, std::string())); 622 EXPECT_TRUE(CheckInvalidationInfo(0, std::string()));
621 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion()); 623 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
622 EXPECT_TRUE(CheckInvalidationInfo(-1, std::string())); 624 EXPECT_TRUE(CheckInvalidationInfo(-1, std::string()));
623 syncer::AckHandle ack2 = FireInvalidation(POLICY_OBJECT_A); 625 syncer::AckHandle ack2 = FireUnknownVersionInvalidation(POLICY_OBJECT_A);
624 EXPECT_TRUE(CheckInvalidationInfo(0, std::string())); 626 EXPECT_TRUE(CheckInvalidationInfo(0, std::string()));
625 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion()); 627 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
626 EXPECT_TRUE(CheckInvalidationInfo(-2, std::string())); 628 EXPECT_TRUE(CheckInvalidationInfo(-2, std::string()));
627 syncer::AckHandle ack3 = FireInvalidation(POLICY_OBJECT_A); 629 syncer::AckHandle ack3 = FireUnknownVersionInvalidation(POLICY_OBJECT_A);
628 EXPECT_TRUE(CheckInvalidationInfo(0, std::string())); 630 EXPECT_TRUE(CheckInvalidationInfo(0, std::string()));
629 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion()); 631 EXPECT_TRUE(CheckPolicyRefreshedWithUnknownVersion());
630 EXPECT_TRUE(CheckInvalidationInfo(-3, std::string())); 632 EXPECT_TRUE(CheckInvalidationInfo(-3, std::string()));
631 633
632 // Make sure the replaced invalidations are acknowledged. 634 // Make sure the replaced invalidations are acknowledged.
633 EXPECT_TRUE(IsInvalidationAcknowledged(ack1)); 635 EXPECT_TRUE(IsInvalidationAcknowledged(ack1));
634 EXPECT_TRUE(IsInvalidationAcknowledged(ack2)); 636 EXPECT_TRUE(IsInvalidationAcknowledged(ack2));
635 637
636 // Make sure that the last invalidation is only acknowledged after the store 638 // Make sure that the last invalidation is only acknowledged after the store
637 // is loaded with the last unknown version. 639 // is loaded with the last unknown version.
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 EXPECT_EQ(0, GetCount(METRIC_POLICY_REFRESH_CHANGED_NO_INVALIDATIONS)); 825 EXPECT_EQ(0, GetCount(METRIC_POLICY_REFRESH_CHANGED_NO_INVALIDATIONS));
824 EXPECT_EQ(4, GetCount(METRIC_POLICY_REFRESH_UNCHANGED)); 826 EXPECT_EQ(4, GetCount(METRIC_POLICY_REFRESH_UNCHANGED));
825 EXPECT_EQ(2, GetCount(METRIC_POLICY_REFRESH_INVALIDATED_CHANGED)); 827 EXPECT_EQ(2, GetCount(METRIC_POLICY_REFRESH_INVALIDATED_CHANGED));
826 EXPECT_EQ(1, GetCount(METRIC_POLICY_REFRESH_INVALIDATED_UNCHANGED)); 828 EXPECT_EQ(1, GetCount(METRIC_POLICY_REFRESH_INVALIDATED_UNCHANGED));
827 } 829 }
828 830
829 TEST_F(CloudPolicyInvalidatorTest, InvalidationMetrics) { 831 TEST_F(CloudPolicyInvalidatorTest, InvalidationMetrics) {
830 // Generate a mix of versioned and unknown-version invalidations. 832 // Generate a mix of versioned and unknown-version invalidations.
831 StorePolicy(POLICY_OBJECT_A); 833 StorePolicy(POLICY_OBJECT_A);
832 StartInvalidator(); 834 StartInvalidator();
833 FireInvalidation(POLICY_OBJECT_B); 835 FireUnknownVersionInvalidation(POLICY_OBJECT_B);
834 FireInvalidation(POLICY_OBJECT_A); 836 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
835 FireInvalidation(POLICY_OBJECT_B, 1, "test"); 837 FireInvalidation(POLICY_OBJECT_B, 1, "test");
836 FireInvalidation(POLICY_OBJECT_A, 1, "test"); 838 FireInvalidation(POLICY_OBJECT_A, 1, "test");
837 FireInvalidation(POLICY_OBJECT_A, 2, "test"); 839 FireInvalidation(POLICY_OBJECT_A, 2, "test");
838 FireInvalidation(POLICY_OBJECT_A); 840 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
839 FireInvalidation(POLICY_OBJECT_A); 841 FireUnknownVersionInvalidation(POLICY_OBJECT_A);
840 FireInvalidation(POLICY_OBJECT_A, 3, "test"); 842 FireInvalidation(POLICY_OBJECT_A, 3, "test");
841 FireInvalidation(POLICY_OBJECT_A, 4, "test"); 843 FireInvalidation(POLICY_OBJECT_A, 4, "test");
842 844
843 // Verify that received invalidations metrics are correct. 845 // Verify that received invalidations metrics are correct.
844 EXPECT_EQ(3, GetInvalidationCount(false /* with_payload */)); 846 EXPECT_EQ(3, GetInvalidationCount(false /* with_payload */));
845 EXPECT_EQ(4, GetInvalidationCount(true /* with_payload */)); 847 EXPECT_EQ(4, GetInvalidationCount(true /* with_payload */));
846 } 848 }
847 849
848 } // namespace policy 850 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/cloud/cloud_policy_invalidator.cc ('k') | chrome/browser/sync/glue/sync_backend_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698