blob: 03a3c724e82eb69d0dc50ce51514fb7d245b78e9 [file] [log] [blame]
Vitaly Buka1175a9b2015-08-15 10:42:17 -07001// Copyright 2014 The Chromium OS 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 "buffet/buffet_config.h"
6
7#include <set>
8
9#include <base/bind.h>
10#include <gtest/gtest.h>
11
12namespace buffet {
13
14TEST(BuffetConfigTest, LoadConfig) {
15 chromeos::KeyValueStore config_store;
16 config_store.SetString("client_id", "conf_client_id");
17 config_store.SetString("client_secret", "conf_client_secret");
18 config_store.SetString("api_key", "conf_api_key");
19 config_store.SetString("oauth_url", "conf_oauth_url");
20 config_store.SetString("service_url", "conf_service_url");
21 config_store.SetString("oem_name", "conf_oem_name");
22 config_store.SetString("model_name", "conf_model_name");
23 config_store.SetString("model_id", "ABCDE");
24 config_store.SetString("polling_period_ms", "12345");
25 config_store.SetString("backup_polling_period_ms", "6589");
26 config_store.SetBoolean("wifi_auto_setup_enabled", false);
27 config_store.SetBoolean("ble_setup_enabled", true);
28 config_store.SetString("pairing_modes",
29 "pinCode,embeddedCode,ultrasound32,audible32");
30 config_store.SetString("embedded_code", "567");
31 config_store.SetString("name", "conf_name");
32 config_store.SetString("description", "conf_description");
33 config_store.SetString("location", "conf_location");
34 config_store.SetString("local_anonymous_access_role", "user");
35 config_store.SetBoolean("local_pairing_enabled", false);
36 config_store.SetBoolean("local_discovery_enabled", false);
37
38 // Following will be ignored.
39 config_store.SetString("device_kind", "conf_device_kind");
40 config_store.SetString("device_id", "conf_device_id");
41 config_store.SetString("refresh_token", "conf_refresh_token");
42 config_store.SetString("robot_account", "conf_robot_account");
43 config_store.SetString("last_configured_ssid", "conf_last_configured_ssid");
44
45 weave::Settings settings;
46 BuffetConfig config{{}, {}};
47 EXPECT_TRUE(config.LoadDefaults(config_store, &settings));
48
49 EXPECT_EQ("conf_client_id", settings.client_id);
50 EXPECT_EQ("conf_client_secret", settings.client_secret);
51 EXPECT_EQ("conf_api_key", settings.api_key);
52 EXPECT_EQ("conf_oauth_url", settings.oauth_url);
53 EXPECT_EQ("conf_service_url", settings.service_url);
54 EXPECT_EQ("conf_oem_name", settings.oem_name);
55 EXPECT_EQ("conf_model_name", settings.model_name);
56 EXPECT_EQ("ABCDE", settings.model_id);
57 EXPECT_EQ(base::TimeDelta::FromMilliseconds(12345), settings.polling_period);
58 EXPECT_EQ(base::TimeDelta::FromMilliseconds(6589),
59 settings.backup_polling_period);
60 EXPECT_FALSE(settings.wifi_auto_setup_enabled);
61 EXPECT_TRUE(settings.ble_setup_enabled);
62 std::set<weave::PairingType> pairing_types{
63 weave::PairingType::kPinCode, weave::PairingType::kEmbeddedCode,
64 weave::PairingType::kUltrasound32, weave::PairingType::kAudible32};
65 EXPECT_EQ(pairing_types, settings.pairing_modes);
66 EXPECT_EQ("567", settings.embedded_code);
67 EXPECT_EQ("conf_name", settings.name);
68 EXPECT_EQ("conf_description", settings.description);
69 EXPECT_EQ("conf_location", settings.location);
70 EXPECT_EQ("user", settings.local_anonymous_access_role);
71 EXPECT_FALSE(settings.local_pairing_enabled);
72 EXPECT_FALSE(settings.local_discovery_enabled);
73}
74
75} // namespace buffet