| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
| 7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
| 8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "base/scoped_temp_dir.h" | 9 #include "base/scoped_temp_dir.h" |
| 10 #include "base/time.h" | 10 #include "base/time.h" |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 helper.ProcessRegisterRequest(); | 303 helper.ProcessRegisterRequest(); |
| 304 EXPECT_TRUE(helper.VerifyAndClearExpectations()); | 304 EXPECT_TRUE(helper.VerifyAndClearExpectations()); |
| 305 EXPECT_TRUE(CheckSamples()); | 305 EXPECT_TRUE(CheckSamples()); |
| 306 } | 306 } |
| 307 | 307 |
| 308 TEST_F(EnterpriseMetricsTest, TokenFetchOK) { | 308 TEST_F(EnterpriseMetricsTest, TokenFetchOK) { |
| 309 SetMetricName(kMetricToken); | 309 SetMetricName(kMetricToken); |
| 310 DeviceManagementBackendTestHelper helper(loop()); | 310 DeviceManagementBackendTestHelper helper(loop()); |
| 311 | 311 |
| 312 // Test token fetcher. | 312 // Test token fetcher. |
| 313 UserPolicyCache cache(temp_dir().AppendASCII("FetchTokenTest")); | 313 UserPolicyCache cache(temp_dir().AppendASCII("FetchTokenTest"), false); |
| 314 scoped_ptr<CloudPolicyDataStore> data_store; | 314 scoped_ptr<CloudPolicyDataStore> data_store; |
| 315 data_store.reset(CloudPolicyDataStore::CreateForUserPolicies()); | 315 data_store.reset(CloudPolicyDataStore::CreateForUserPolicies()); |
| 316 data_store->SetupForTesting("", "fake_device_id", "fake_user_name", | 316 data_store->SetupForTesting("", "fake_device_id", "fake_user_name", |
| 317 "fake_gaia_token", true); | 317 "fake_gaia_token", true); |
| 318 PolicyNotifier notifier; | 318 PolicyNotifier notifier; |
| 319 DeviceTokenFetcher fetcher(&helper.service(), &cache, data_store.get(), | 319 DeviceTokenFetcher fetcher(&helper.service(), &cache, data_store.get(), |
| 320 ¬ifier); | 320 ¬ifier); |
| 321 | 321 |
| 322 MockCloudPolicyDataStoreObserver observer; | 322 MockCloudPolicyDataStoreObserver observer; |
| 323 data_store->AddObserver(&observer); | 323 data_store->AddObserver(&observer); |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 ExpectSample(kMetricPolicyFetchRequested); | 458 ExpectSample(kMetricPolicyFetchRequested); |
| 459 ExpectSample(kMetricPolicyFetchResponseReceived); | 459 ExpectSample(kMetricPolicyFetchResponseReceived); |
| 460 helper.ProcessPolicyRequest(); | 460 helper.ProcessPolicyRequest(); |
| 461 EXPECT_TRUE(helper.VerifyAndClearExpectations()); | 461 EXPECT_TRUE(helper.VerifyAndClearExpectations()); |
| 462 EXPECT_TRUE(CheckSamples()); | 462 EXPECT_TRUE(CheckSamples()); |
| 463 } | 463 } |
| 464 | 464 |
| 465 TEST_F(EnterpriseMetricsTest, PolicyFetchInvalidPolicy) { | 465 TEST_F(EnterpriseMetricsTest, PolicyFetchInvalidPolicy) { |
| 466 SetMetricName(kMetricPolicy); | 466 SetMetricName(kMetricPolicy); |
| 467 | 467 |
| 468 UserPolicyCache cache(temp_dir().AppendASCII("UserPolicyCacheTest")); | 468 UserPolicyCache cache(temp_dir().AppendASCII("UserPolicyCacheTest"), false); |
| 469 UserPolicyDiskCache::Delegate* cache_as_delegate = | 469 UserPolicyDiskCache::Delegate* cache_as_delegate = |
| 470 implicit_cast<UserPolicyDiskCache::Delegate*>(&cache); | 470 implicit_cast<UserPolicyDiskCache::Delegate*>(&cache); |
| 471 | 471 |
| 472 em::CachedCloudPolicyResponse response; | 472 em::CachedCloudPolicyResponse response; |
| 473 response.mutable_cloud_policy()->set_policy_data("\xff"); | 473 response.mutable_cloud_policy()->set_policy_data("\xff"); |
| 474 cache_as_delegate->OnDiskCacheLoaded(UserPolicyDiskCache::LOAD_RESULT_SUCCESS, | 474 cache_as_delegate->OnDiskCacheLoaded(UserPolicyDiskCache::LOAD_RESULT_SUCCESS, |
| 475 response); | 475 response); |
| 476 ExpectSample(kMetricPolicyFetchInvalidPolicy); | 476 ExpectSample(kMetricPolicyFetchInvalidPolicy); |
| 477 EXPECT_TRUE(CheckSamples()); | 477 EXPECT_TRUE(CheckSamples()); |
| 478 } | 478 } |
| 479 | 479 |
| 480 TEST_F(EnterpriseMetricsTest, PolicyFetchTimestampInFuture) { | 480 TEST_F(EnterpriseMetricsTest, PolicyFetchTimestampInFuture) { |
| 481 SetMetricName(kMetricPolicy); | 481 SetMetricName(kMetricPolicy); |
| 482 | 482 |
| 483 UserPolicyCache cache(temp_dir().AppendASCII("UserPolicyCacheTest")); | 483 UserPolicyCache cache(temp_dir().AppendASCII("UserPolicyCacheTest"), false); |
| 484 UserPolicyDiskCache::Delegate* cache_as_delegate = | 484 UserPolicyDiskCache::Delegate* cache_as_delegate = |
| 485 implicit_cast<UserPolicyDiskCache::Delegate*>(&cache); | 485 implicit_cast<UserPolicyDiskCache::Delegate*>(&cache); |
| 486 | 486 |
| 487 std::string data; | 487 std::string data; |
| 488 em::PolicyData policy_data; | 488 em::PolicyData policy_data; |
| 489 base::TimeDelta timestamp = | 489 base::TimeDelta timestamp = |
| 490 (base::Time::NowFromSystemTime() + base::TimeDelta::FromDays(1000)) - | 490 (base::Time::NowFromSystemTime() + base::TimeDelta::FromDays(1000)) - |
| 491 base::Time::UnixEpoch(); | 491 base::Time::UnixEpoch(); |
| 492 policy_data.set_timestamp(timestamp.InMilliseconds()); | 492 policy_data.set_timestamp(timestamp.InMilliseconds()); |
| 493 policy_data.SerializeToString(&data); | 493 policy_data.SerializeToString(&data); |
| 494 em::CachedCloudPolicyResponse response; | 494 em::CachedCloudPolicyResponse response; |
| 495 response.mutable_cloud_policy()->set_policy_data(data); | 495 response.mutable_cloud_policy()->set_policy_data(data); |
| 496 cache_as_delegate->OnDiskCacheLoaded(UserPolicyDiskCache::LOAD_RESULT_SUCCESS, | 496 cache_as_delegate->OnDiskCacheLoaded(UserPolicyDiskCache::LOAD_RESULT_SUCCESS, |
| 497 response); | 497 response); |
| 498 ExpectSample(kMetricPolicyFetchTimestampInFuture); | 498 ExpectSample(kMetricPolicyFetchTimestampInFuture); |
| 499 EXPECT_TRUE(CheckSamples()); | 499 EXPECT_TRUE(CheckSamples()); |
| 500 } | 500 } |
| 501 | 501 |
| 502 TEST_F(EnterpriseMetricsTest, PolicyFetchNotModified) { | 502 TEST_F(EnterpriseMetricsTest, PolicyFetchNotModified) { |
| 503 SetMetricName(kMetricPolicy); | 503 SetMetricName(kMetricPolicy); |
| 504 | 504 |
| 505 UserPolicyCache cache(temp_dir().AppendASCII("UserPolicyCacheTest")); | 505 UserPolicyCache cache(temp_dir().AppendASCII("UserPolicyCacheTest"), false); |
| 506 UserPolicyDiskCache::Delegate* cache_as_delegate = | 506 UserPolicyDiskCache::Delegate* cache_as_delegate = |
| 507 implicit_cast<UserPolicyDiskCache::Delegate*>(&cache); | 507 implicit_cast<UserPolicyDiskCache::Delegate*>(&cache); |
| 508 | 508 |
| 509 std::string data; | 509 std::string data; |
| 510 em::PolicyData policy_data; | 510 em::PolicyData policy_data; |
| 511 policy_data.set_timestamp(0); | 511 policy_data.set_timestamp(0); |
| 512 policy_data.SerializeToString(&data); | 512 policy_data.SerializeToString(&data); |
| 513 em::CachedCloudPolicyResponse response; | 513 em::CachedCloudPolicyResponse response; |
| 514 response.mutable_cloud_policy()->set_policy_data(data); | 514 response.mutable_cloud_policy()->set_policy_data(data); |
| 515 cache_as_delegate->OnDiskCacheLoaded(UserPolicyDiskCache::LOAD_RESULT_SUCCESS, | 515 cache_as_delegate->OnDiskCacheLoaded(UserPolicyDiskCache::LOAD_RESULT_SUCCESS, |
| 516 response); | 516 response); |
| 517 ExpectSample(kMetricPolicyFetchNotModified); | 517 ExpectSample(kMetricPolicyFetchNotModified); |
| 518 EXPECT_TRUE(CheckSamples()); | 518 EXPECT_TRUE(CheckSamples()); |
| 519 } | 519 } |
| 520 | 520 |
| 521 TEST_F(EnterpriseMetricsTest, PolicyFetchOK) { | 521 TEST_F(EnterpriseMetricsTest, PolicyFetchOK) { |
| 522 SetMetricName(kMetricPolicy); | 522 SetMetricName(kMetricPolicy); |
| 523 | 523 |
| 524 UserPolicyCache cache(temp_dir().AppendASCII("UserPolicyCacheTest")); | 524 UserPolicyCache cache(temp_dir().AppendASCII("UserPolicyCacheTest"), false); |
| 525 | 525 |
| 526 std::string data; | 526 std::string data; |
| 527 em::PolicyData policy_data; | 527 em::PolicyData policy_data; |
| 528 policy_data.set_timestamp(0); | 528 policy_data.set_timestamp(0); |
| 529 policy_data.SerializeToString(&data); | 529 policy_data.SerializeToString(&data); |
| 530 em::CachedCloudPolicyResponse response; | 530 em::CachedCloudPolicyResponse response; |
| 531 cache.SetPolicy(response.cloud_policy()); | 531 cache.SetPolicy(response.cloud_policy()); |
| 532 ExpectSample(kMetricPolicyFetchOK); | 532 ExpectSample(kMetricPolicyFetchOK); |
| 533 ExpectSample(kMetricPolicyFetchNotModified); | 533 ExpectSample(kMetricPolicyFetchNotModified); |
| 534 EXPECT_TRUE(CheckSamples()); | 534 EXPECT_TRUE(CheckSamples()); |
| 535 // This also triggers a store. Update the expected samples. | 535 // This also triggers a store. Update the expected samples. |
| 536 RunAllPending(); | 536 RunAllPending(); |
| 537 ExpectSample(kMetricPolicyStoreSucceeded); | 537 ExpectSample(kMetricPolicyStoreSucceeded); |
| 538 EXPECT_TRUE(CheckSamples()); | 538 EXPECT_TRUE(CheckSamples()); |
| 539 } | 539 } |
| 540 | 540 |
| 541 TEST_F(EnterpriseMetricsTest, PolicyFetchBadResponse) { | 541 TEST_F(EnterpriseMetricsTest, PolicyFetchBadResponse) { |
| 542 SetMetricName(kMetricPolicy); | 542 SetMetricName(kMetricPolicy); |
| 543 | 543 |
| 544 UserPolicyCache cache(temp_dir().AppendASCII("UserPolicyCacheTest")); | 544 UserPolicyCache cache(temp_dir().AppendASCII("UserPolicyCacheTest"), false); |
| 545 PolicyNotifier notifier; | 545 PolicyNotifier notifier; |
| 546 scoped_ptr<CloudPolicyDataStore> data_store; | 546 scoped_ptr<CloudPolicyDataStore> data_store; |
| 547 data_store.reset(CloudPolicyDataStore::CreateForUserPolicies()); | 547 data_store.reset(CloudPolicyDataStore::CreateForUserPolicies()); |
| 548 data_store->SetupForTesting("", "fake_device_id", "fake_user_name", | 548 data_store->SetupForTesting("", "fake_device_id", "fake_user_name", |
| 549 "fake_gaia_token", true); | 549 "fake_gaia_token", true); |
| 550 CloudPolicyController controller(NULL, &cache, NULL, data_store.get(), | 550 CloudPolicyController controller(NULL, &cache, NULL, data_store.get(), |
| 551 ¬ifier); | 551 ¬ifier); |
| 552 em::DevicePolicyResponse device_policy_response; | 552 em::DevicePolicyResponse device_policy_response; |
| 553 controller.HandlePolicyResponse(device_policy_response); | 553 controller.HandlePolicyResponse(device_policy_response); |
| 554 ExpectSample(kMetricPolicyFetchBadResponse); | 554 ExpectSample(kMetricPolicyFetchBadResponse); |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 861 helper.CompleteRetrieve(chromeos::SignedSettings::NOT_FOUND); | 861 helper.CompleteRetrieve(chromeos::SignedSettings::NOT_FOUND); |
| 862 helper.SetData("\xff"); | 862 helper.SetData("\xff"); |
| 863 helper.SetPolicy(); | 863 helper.SetPolicy(); |
| 864 ExpectSample(kMetricPolicyFetchInvalidPolicy); | 864 ExpectSample(kMetricPolicyFetchInvalidPolicy); |
| 865 EXPECT_TRUE(CheckSamples()); | 865 EXPECT_TRUE(CheckSamples()); |
| 866 } | 866 } |
| 867 | 867 |
| 868 #endif | 868 #endif |
| 869 | 869 |
| 870 } // namespace policy | 870 } // namespace policy |
| OLD | NEW |