onc_utils_unittest.cc revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org// Copyright (c) 2012 The Chromium Authors. All rights reserved.
23484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// Use of this source code is governed by a BSD-style license that can be
33484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// found in the LICENSE file.
4f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org
5196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org#include "chrome/browser/chromeos/net/onc_utils.h"
6f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org
7975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org#include <string>
8196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org
94b0feeef5d01dbc2948080b4f69daa37e1083461machenbach@chromium.org#include "base/strings/string_number_conversions.h"
10f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org#include "base/values.h"
11f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org#include "chrome/browser/google_apis/test_util.h"
12f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org#include "chromeos/network/network_ui_data.h"
13f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org#include "chromeos/network/onc/onc_test_utils.h"
14975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org#include "testing/gtest/include/gtest/gtest.h"
15f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org
16a221880197f38ff22d942851060daffa5d036bdfmachenbach@chromium.orgnamespace chromeos {
17975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.orgnamespace onc {
18975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
19975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.orgTEST(ONCUtils, ProxySettingsToProxyConfig) {
20e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org  scoped_ptr<base::Value> test_data =
21e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org      google_apis::test_util::LoadJSONFile("chromeos/net/proxy_config.json");
22975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
23975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  base::ListValue* list_of_tests;
24975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org  test_data->GetAsList(&list_of_tests);
25975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
26a221880197f38ff22d942851060daffa5d036bdfmachenbach@chromium.org  int index = 0;
27f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org  for (base::ListValue::iterator it = list_of_tests->begin();
28975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org       it != list_of_tests->end(); ++it, ++index) {
29975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org    SCOPED_TRACE("Test case #" + base::IntToString(index));
30975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org
31975b940441085887fc02bebf8877d5ec97e1e06cmachenbach@chromium.org    base::DictionaryValue* test_case;
32f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org    (*it)->GetAsDictionary(&test_case);
33f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org
34f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org    base::DictionaryValue* onc_proxy_settings;
35e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org    test_case->GetDictionary("ONC_ProxySettings", &onc_proxy_settings);
36e3c177a423baa3c30225c4e422b6f6c76d38b951machenbach@chromium.org
37f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org    base::DictionaryValue* expected_proxy_config;
38f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org    test_case->GetDictionary("ProxyConfig", &expected_proxy_config);
39f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org
40f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org    scoped_ptr<base::DictionaryValue> actual_proxy_config =
41f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org        ConvertOncProxySettingsToProxyConfig(*onc_proxy_settings);
42f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org    EXPECT_TRUE(test_utils::Equals(expected_proxy_config,
43f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org                                   actual_proxy_config.get()));
44f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org  }
45f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org}
46f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org
47f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org}  // namespace onc
48f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org}  // namespace chromeos
49f5a24546072ecdbbd6372c85c42157e01e913561titzer@chromium.org