|  | // Copyright 2021 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "chrome/browser/extensions/omaha_attributes_handler.h" | 
|  |  | 
|  | #include "base/test/metrics/histogram_tester.h" | 
|  | #include "base/values.h" | 
|  | #include "chrome/browser/extensions/extension_service.h" | 
|  | #include "chrome/browser/extensions/extension_service_test_base.h" | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  |  | 
|  | namespace extensions { | 
|  |  | 
|  | namespace { | 
|  |  | 
|  | // Extension ids used during testing. | 
|  | constexpr char kTestExtensionId[] = "behllobkkfkfnphdnhnkndlbkcpglgmj"; | 
|  |  | 
|  | }  // namespace | 
|  |  | 
|  | // Test suite to test Omaha attribute handler. | 
|  | using OmahaAttributesHandlerUnitTest = ExtensionServiceTestBase; | 
|  |  | 
|  | TEST_F(OmahaAttributesHandlerUnitTest, LogPolicyViolationUWSMetrics) { | 
|  | base::HistogramTester histograms; | 
|  | base::Value attributes(base::Value::Type::DICTIONARY); | 
|  | attributes.SetKey("_potentially_uws", base::Value(true)); | 
|  | attributes.SetKey("_policy_violation", base::Value(true)); | 
|  | InitializeEmptyExtensionService(); | 
|  |  | 
|  | service()->PerformActionBasedOnOmahaAttributes(kTestExtensionId, attributes); | 
|  |  | 
|  | histograms.ExpectBucketCount( | 
|  | "Extensions.ExtensionAddDisabledRemotelyReason", | 
|  | /* sample */ ExtensionUpdateCheckDataKey::kPotentiallyUWS, | 
|  | /* expected_count */ 1); | 
|  | histograms.ExpectBucketCount( | 
|  | "Extensions.ExtensionAddDisabledRemotelyReason", | 
|  | /* sample */ ExtensionUpdateCheckDataKey::kPolicyViolation, | 
|  | /* expected_count */ 1); | 
|  | } | 
|  |  | 
|  | }  // namespace extensions |