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