onc_normalizer_unittest.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright (c) 2012 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 "chromeos/network/onc/onc_normalizer.h"
6
7#include "base/memory/scoped_ptr.h"
8#include "base/values.h"
9#include "chromeos/network/onc/onc_signature.h"
10#include "chromeos/network/onc/onc_test_utils.h"
11#include "testing/gtest/include/gtest/gtest.h"
12
13namespace chromeos {
14namespace onc {
15
16// This test case is about validating valid ONC objects.
17TEST(ONCNormalizerTest, NormalizeNetworkConfiguration) {
18  Normalizer normalizer(true);
19  scoped_ptr<const base::DictionaryValue> data(
20      test_utils::ReadTestDictionary("settings_with_normalization.json"));
21
22  const base::DictionaryValue* original = NULL;
23  const base::DictionaryValue* expected_normalized = NULL;
24  data->GetDictionary("ethernet-and-vpn", &original);
25  data->GetDictionary("ethernet-and-vpn-normalized", &expected_normalized);
26
27  scoped_ptr<base::DictionaryValue> actual_normalized =
28      normalizer.NormalizeObject(&kNetworkConfigurationSignature, *original);
29  EXPECT_TRUE(test_utils::Equals(expected_normalized, actual_normalized.get()));
30}
31
32}  // namespace onc
33}  // namespace chromeos
34