variations_service_policy_browsertest.cc revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "base/strings/string_util.h" 6#include "chrome/browser/chromeos/policy/device_policy_builder.h" 7#include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h" 8#include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" 9#include "chrome/browser/metrics/variations/variations_service.h" 10#include "chrome/test/base/testing_browser_process.h" 11#include "net/base/url_util.h" 12#include "testing/gtest/include/gtest/gtest.h" 13 14namespace policy { 15 16class VariationsServiceDevicePolicyTest : public DevicePolicyCrosBrowserTest { 17 protected: 18 VariationsServiceDevicePolicyTest() {} 19 20 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { 21 DevicePolicyCrosBrowserTest::SetUpInProcessBrowserTestFixture(); 22 23 InstallOwnerKey(); 24 SetSpecificDevicePolicies(); 25 RefreshDevicePolicy(); 26 } 27 28 void SetSpecificDevicePolicies() { 29 // Setup the device policy DeviceVariationsRestrictParameter. 30 enterprise_management::ChromeDeviceSettingsProto& proto( 31 device_policy()->payload()); 32 proto.mutable_variations_parameter()->set_parameter("restricted"); 33 } 34 35 private: 36 DISALLOW_COPY_AND_ASSIGN(VariationsServiceDevicePolicyTest); 37}; 38 39IN_PROC_BROWSER_TEST_F(VariationsServiceDevicePolicyTest, VariationsURLValid) { 40 const std::string default_variations_url = 41 chrome_variations::VariationsService:: 42 GetDefaultVariationsServerURLForTesting(); 43 44 // Device policy has updated the cros settings. 45 const GURL url = 46 chrome_variations::VariationsService::GetVariationsServerURL( 47 g_browser_process->local_state()); 48 EXPECT_TRUE(StartsWithASCII(url.spec(), default_variations_url, true)); 49 std::string value; 50 EXPECT_TRUE(net::GetValueForKeyInQuery(url, "restrict", &value)); 51 EXPECT_EQ("restricted", value); 52} 53 54} // namespace policy 55