Remove defaults for settings which have to be set by external code

BUG:24267885
Change-Id: Ib1ff019b0619810452d99817c449f5e12c860b47
Reviewed-on: https://weave-review.googlesource.com/1193
Reviewed-by: Vitaly Buka <vitalybuka@google.com>
diff --git a/libweave/examples/ubuntu/file_config_store.cc b/libweave/examples/ubuntu/file_config_store.cc
index 44f5c86..49fa907 100644
--- a/libweave/examples/ubuntu/file_config_store.cc
+++ b/libweave/examples/ubuntu/file_config_store.cc
@@ -34,6 +34,9 @@
   settings->model_id = "AAAAA";
   settings->pairing_modes = {PairingType::kEmbeddedCode};
   settings->embedded_code = "0000";
+  settings->client_id = "58855907228.apps.googleusercontent.com";
+  settings->client_secret = "eHSAREAHrIqPsHBxCE9zPPBi";
+  settings->api_key = "AIzaSyDSq46gG-AxUnC3zoqD9COIPrjolFsMfMA";
   return true;
 }
 
diff --git a/libweave/include/weave/provider/test/mock_config_store.h b/libweave/include/weave/provider/test/mock_config_store.h
index 7bc0db7..c433c2e 100644
--- a/libweave/include/weave/provider/test/mock_config_store.h
+++ b/libweave/include/weave/provider/test/mock_config_store.h
@@ -22,7 +22,18 @@
     using testing::_;
     using testing::Return;
 
-    EXPECT_CALL(*this, LoadDefaults(_)).WillRepeatedly(Return(true));
+    EXPECT_CALL(*this, LoadDefaults(_))
+        .WillRepeatedly(testing::Invoke([](Settings* settings) {
+          settings->firmware_version = "TEST_FIRMWARE";
+          settings->oem_name = "TEST_OEM";
+          settings->model_name = "TEST_MODEL";
+          settings->model_id = "ABCDE";
+          settings->name = "TEST_NAME";
+          settings->client_id = "TEST_CLIENT_ID";
+          settings->client_secret = "TEST_CLIENT_SECRET";
+          settings->api_key = "TEST_API_KEY";
+          return true;
+        }));
     EXPECT_CALL(*this, LoadSettings()).WillRepeatedly(Return(""));
     EXPECT_CALL(*this, SaveSettings(_)).WillRepeatedly(Return());
     EXPECT_CALL(*this, OnSettingsChanged(_)).WillRepeatedly(Return());
diff --git a/libweave/platform2.gyp b/libweave/platform2.gyp
index 6b1f046..41b9fd5 100644
--- a/libweave/platform2.gyp
+++ b/libweave/platform2.gyp
@@ -10,7 +10,7 @@
       ],
     },
     'include_dirs': [
-      '<(platform2_root)/../weave/libweave',
+      '<(platform2_root)/../weave/libweave/libweave',
       '<(platform2_root)/../weave/libweave/libweave/include',
       '<(platform2_root)/../weave/libweave/libweave/third_party/modp_b64/modp_b64/',
     ],
diff --git a/libweave/src/base_api_handler_unittest.cc b/libweave/src/base_api_handler_unittest.cc
index 2a3613a..44c4825 100644
--- a/libweave/src/base_api_handler_unittest.cc
+++ b/libweave/src/base_api_handler_unittest.cc
@@ -27,12 +27,6 @@
 class BaseApiHandlerTest : public ::testing::Test {
  protected:
   void SetUp() override {
-    EXPECT_CALL(config_store_, LoadDefaults(_))
-        .WillOnce(Invoke([](Settings* settings) {
-          settings->firmware_version = "123123";
-          return true;
-        }));
-
     EXPECT_CALL(mock_state_change_queue_, NotifyPropertiesUpdated(_, _))
         .WillRepeatedly(Return(true));
 
@@ -131,7 +125,7 @@
 
   auto expected = R"({
     'base': {
-      'firmwareVersion': '123123',
+      'firmwareVersion': 'TEST_FIRMWARE',
       'localAnonymousAccessMaxRole': 'none',
       'localDiscoveryEnabled': false,
       'localPairingEnabled': false,
@@ -153,7 +147,7 @@
   EXPECT_TRUE(settings.local_pairing_enabled);
   expected = R"({
     'base': {
-      'firmwareVersion': '123123',
+      'firmwareVersion': 'TEST_FIRMWARE',
       'localAnonymousAccessMaxRole': 'user',
       'localDiscoveryEnabled': true,
       'localPairingEnabled': true,
@@ -168,7 +162,7 @@
   }
   expected = R"({
     'base': {
-      'firmwareVersion': '123123',
+      'firmwareVersion': 'TEST_FIRMWARE',
       'localAnonymousAccessMaxRole': 'viewer',
       'localDiscoveryEnabled': true,
       'localPairingEnabled': true,
diff --git a/libweave/src/config.cc b/libweave/src/config.cc
index 2567f61..5370ec0 100644
--- a/libweave/src/config.cc
+++ b/libweave/src/config.cc
@@ -49,18 +49,11 @@
 
 Settings CreateDefaultSettings() {
   Settings result;
-  result.client_id = "58855907228.apps.googleusercontent.com";
-  result.client_secret = "eHSAREAHrIqPsHBxCE9zPPBi";
-  result.api_key = "AIzaSyDSq46gG-AxUnC3zoqD9COIPrjolFsMfMA";
   result.oauth_url = "https://accounts.google.com/o/oauth2/";
   result.service_url = "https://www.googleapis.com/clouddevices/v1/";
-  result.name = "Developer device";
   result.local_anonymous_access_role = "viewer";
   result.local_discovery_enabled = true;
   result.local_pairing_enabled = true;
-  result.oem_name = "Chromium";
-  result.model_name = "Brillo";
-  result.model_id = "AAAAA";
   result.polling_period = base::TimeDelta::FromSeconds(7);
   result.backup_polling_period = base::TimeDelta::FromMinutes(30);
   result.wifi_auto_setup_enabled = true;
diff --git a/libweave/src/config_unittest.cc b/libweave/src/config_unittest.cc
index 9f08b18..fd6b8d3 100644
--- a/libweave/src/config_unittest.cc
+++ b/libweave/src/config_unittest.cc
@@ -24,20 +24,20 @@
   void SetUp() override {
     EXPECT_CALL(*this, OnConfigChanged(_))
         .Times(1);  // Called from AddOnChangedCallback
-    config_.reset(new Config{&config_store_});
-    config_->AddOnChangedCallback(
+    config_.AddOnChangedCallback(
         base::Bind(&ConfigTest::OnConfigChanged, base::Unretained(this)));
+    default_.Load();
   }
 
-  const Settings& GetSettings() const { return config_->GetSettings(); }
+  const Settings& GetSettings() const { return config_.GetSettings(); }
 
   const Settings& GetDefaultSettings() const { return default_.GetSettings(); }
 
   MOCK_METHOD1(OnConfigChanged, void(const Settings&));
 
   provider::test::MockConfigStore config_store_;
-  std::unique_ptr<Config> config_;
-  const Config default_{nullptr};
+  Config config_{&config_store_};
+  Config default_{&config_store_};
 };
 
 TEST_F(ConfigTest, NoStorage) {
@@ -47,15 +47,15 @@
 }
 
 TEST_F(ConfigTest, Defaults) {
-  EXPECT_EQ("58855907228.apps.googleusercontent.com", GetSettings().client_id);
-  EXPECT_EQ("eHSAREAHrIqPsHBxCE9zPPBi", GetSettings().client_secret);
-  EXPECT_EQ("AIzaSyDSq46gG-AxUnC3zoqD9COIPrjolFsMfMA", GetSettings().api_key);
+  EXPECT_EQ("", GetSettings().client_id);
+  EXPECT_EQ("", GetSettings().client_secret);
+  EXPECT_EQ("", GetSettings().api_key);
   EXPECT_EQ("https://accounts.google.com/o/oauth2/", GetSettings().oauth_url);
   EXPECT_EQ("https://www.googleapis.com/clouddevices/v1/",
             GetSettings().service_url);
-  EXPECT_EQ("Chromium", GetSettings().oem_name);
-  EXPECT_EQ("Brillo", GetSettings().model_name);
-  EXPECT_EQ("AAAAA", GetSettings().model_id);
+  EXPECT_EQ("", GetSettings().oem_name);
+  EXPECT_EQ("", GetSettings().model_name);
+  EXPECT_EQ("", GetSettings().model_id);
   EXPECT_EQ("", GetSettings().firmware_version);
   EXPECT_EQ(base::TimeDelta::FromSeconds(7), GetSettings().polling_period);
   EXPECT_EQ(base::TimeDelta::FromMinutes(30),
@@ -65,7 +65,7 @@
   EXPECT_EQ(std::set<PairingType>{PairingType::kPinCode},
             GetSettings().pairing_modes);
   EXPECT_EQ("", GetSettings().embedded_code);
-  EXPECT_EQ("Developer device", GetSettings().name);
+  EXPECT_EQ("", GetSettings().name);
   EXPECT_EQ("", GetSettings().description);
   EXPECT_EQ("", GetSettings().location);
   EXPECT_EQ("viewer", GetSettings().local_anonymous_access_role);
@@ -100,7 +100,7 @@
   EXPECT_CALL(config_store_, LoadSettings()).WillOnce(Return(state));
 
   EXPECT_CALL(*this, OnConfigChanged(_)).Times(1);
-  config_->Load();
+  config_.Load();
 
   EXPECT_EQ("state_client_id", GetSettings().client_id);
   EXPECT_EQ("state_client_secret", GetSettings().client_secret);
@@ -133,7 +133,7 @@
 }
 
 TEST_F(ConfigTest, Setters) {
-  Config::Transaction change{config_.get()};
+  Config::Transaction change{&config_};
 
   change.set_client_id("set_client_id");
   EXPECT_EQ("set_client_id", GetSettings().client_id);
diff --git a/libweave/src/device_registration_info_unittest.cc b/libweave/src/device_registration_info_unittest.cc
index 44d432c..947ba10 100644
--- a/libweave/src/device_registration_info_unittest.cc
+++ b/libweave/src/device_registration_info_unittest.cc
@@ -135,6 +135,8 @@
           settings->client_id = test_data::kClientId;
           settings->client_secret = test_data::kClientSecret;
           settings->api_key = test_data::kApiKey;
+          settings->oem_name = "Coffee Pot Maker";
+          settings->model_name = "Pot v1";
           settings->name = "Coffee Pot";
           settings->description = "Easy to clean";
           settings->location = "Kitchen";
diff --git a/libweave/src/test/fake_task_runner.cc b/libweave/src/test/fake_task_runner.cc
index 8ba3b4c..4026880 100644
--- a/libweave/src/test/fake_task_runner.cc
+++ b/libweave/src/test/fake_task_runner.cc
@@ -34,7 +34,7 @@
 
 void FakeTaskRunner::Run() {
   break_ = false;
-  while (!break_ && RunOnce()) {
+  for (size_t i = 0; i < 1000 && !break_ && RunOnce(); ++i) {
   }
 }
 
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc
index 4361906..d42a839 100644
--- a/libweave/src/weave_unittest.cc
+++ b/libweave/src/weave_unittest.cc
@@ -93,7 +93,7 @@
   "deviceKind": "vendor",
   "modelManifestId": "ABCDE",
   "systemName": "",
-  "name": "DEVICE_NAME",
+  "name": "TEST_NAME",
   "displayName": "",
   "description": "Developer device",
   "stateValidationEnabled": true,
@@ -190,16 +190,6 @@
   }
 
   void InitConfigStore() {
-    EXPECT_CALL(config_store_, LoadDefaults(_))
-        .WillOnce(Invoke([](weave::Settings* settings) {
-          settings->api_key = "API_KEY";
-          settings->client_secret = "CLIENT_SECRET";
-          settings->client_id = "CLIENT_ID";
-          settings->firmware_version = "FIRMWARE_VERSION";
-          settings->name = "DEVICE_NAME";
-          settings->model_id = "ABCDE";
-          return true;
-        }));
     EXPECT_CALL(config_store_, SaveSettings("")).WillRepeatedly(Return());
 
     EXPECT_CALL(config_store_, LoadBaseCommandDefs())
@@ -242,7 +232,7 @@
   void InitDnsSdPublishing(bool registered, const std::string& flags) {
     std::vector<std::string> txt{{"id=TEST_ID"}, {"flags=" + flags},
                                  {"mmid=ABCDE"}, {"services=_base"},
-                                 {"txtvers=3"},  {"ty=DEVICE_NAME"}};
+                                 {"txtvers=3"},  {"ty=TEST_NAME"}};
     if (registered) {
       txt.push_back("gcd_id=DEVICE_ID");
 
@@ -281,7 +271,7 @@
   void InitDefaultExpectations() {
     InitConfigStore();
     InitNetwork();
-    EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("DEVICE_NAME.*prv")))
+    EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("TEST_NAME.*prv")))
         .WillOnce(Return());
     InitHttpServer();
     InitDnsSd();
@@ -393,7 +383,7 @@
   ExpectRequest(
       "PATCH",
       "https://www.googleapis.com/clouddevices/v1/registrationTickets/"
-      "TEST_ID?key=API_KEY",
+      "TEST_ID?key=TEST_API_KEY",
       ValueToString(*response));
 
   response = CreateDictionaryValue(kRegistrationFinalResponse);
@@ -401,7 +391,7 @@
   ExpectRequest(
       "POST",
       "https://www.googleapis.com/clouddevices/v1/registrationTickets/"
-      "TEST_ID/finalize?key=API_KEY",
+      "TEST_ID/finalize?key=TEST_API_KEY",
       ValueToString(*response));
 
   ExpectRequest("POST", "https://accounts.google.com/o/oauth2/token",
@@ -439,7 +429,7 @@
   // Long disconnect.
   NotifyNetworkChanged(Network::State::kOffline, {});
   auto offline_from = task_runner_.GetClock()->Now();
-  EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("DEVICE_NAME.*prv")))
+  EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("TEST_NAME.*prv")))
       .WillOnce(InvokeWithoutArgs([this, offline_from]() {
         EXPECT_GT(task_runner_.GetClock()->Now() - offline_from,
                   base::TimeDelta::FromMinutes(1));
@@ -461,7 +451,7 @@
   for (int i = 0; i < 5; ++i) {
     auto offline_from = task_runner_.GetClock()->Now();
     // Temporarily offline mode.
-    EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("DEVICE_NAME.*prv")))
+    EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("TEST_NAME.*prv")))
         .WillOnce(InvokeWithoutArgs([this, &offline_from]() {
           EXPECT_GT(task_runner_.GetClock()->Now() - offline_from,
                     base::TimeDelta::FromMinutes(1));
@@ -491,7 +481,7 @@
       .WillRepeatedly(Return(Network::State::kOffline));
 
   auto offline_from = task_runner_.GetClock()->Now();
-  EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("DEVICE_NAME.*prv")))
+  EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("TEST_NAME.*prv")))
       .WillOnce(InvokeWithoutArgs([this, &offline_from]() {
         EXPECT_GT(task_runner_.GetClock()->Now() - offline_from,
                   base::TimeDelta::FromMinutes(1));