libweave: Pass firmware using weave::Settings Also removed unused weave::Options fields. BUG=brillo:1257 TEST=`FEATURES=test emerge-gizmo libweave buffet` Change-Id: I9299e3d2f58e9b8f2965cb2198107e865dabb953 Reviewed-on: https://chromium-review.googlesource.com/293927 Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Tested-by: Vitaly Buka <vitalybuka@chromium.org> Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/libweave/include/weave/config_store.h b/libweave/include/weave/config_store.h index f13ec8f..e2bb710 100644 --- a/libweave/include/weave/config_store.h +++ b/libweave/include/weave/config_store.h
@@ -27,6 +27,7 @@ std::string local_anonymous_access_role; bool local_discovery_enabled{true}; bool local_pairing_enabled{true}; + std::string firmware_version; std::string oem_name; std::string model_name; std::string model_id;
diff --git a/libweave/include/weave/device.h b/libweave/include/weave/device.h index 25f18c0..47e854c 100644 --- a/libweave/include/weave/device.h +++ b/libweave/include/weave/device.h
@@ -27,9 +27,6 @@ class Device { public: struct Options { - std::string firmware_version; // TODO: Move into weave::Settings - base::FilePath config_path; - base::FilePath state_path; base::FilePath definitions_path; base::FilePath test_definitions_path; bool xmpp_enabled = true;
diff --git a/libweave/src/base_api_handler.cc b/libweave/src/base_api_handler.cc index 655983b..3e641d7 100644 --- a/libweave/src/base_api_handler.cc +++ b/libweave/src/base_api_handler.cc
@@ -20,16 +20,16 @@ BaseApiHandler::BaseApiHandler( DeviceRegistrationInfo* device_info, - const std::string& firmware_version, const std::shared_ptr<StateManager>& state_manager, const std::shared_ptr<CommandManager>& command_manager) : device_info_{device_info}, state_manager_{state_manager} { device_info_->AddOnConfigChangedCallback(base::Bind( &BaseApiHandler::OnConfigChanged, weak_ptr_factory_.GetWeakPtr())); + const Config& config{device_info_->GetConfig()}; base::DictionaryValue state; state.SetStringWithoutPathExpansion(kBaseStateFirmwareVersion, - firmware_version); + config.firmware_version()); CHECK(state_manager_->SetProperties(state, nullptr)); command_manager->AddOnCommandAddedCallback(base::Bind(
diff --git a/libweave/src/base_api_handler.h b/libweave/src/base_api_handler.h index abb60b1..c1a5f2e 100644 --- a/libweave/src/base_api_handler.h +++ b/libweave/src/base_api_handler.h
@@ -27,7 +27,6 @@ class BaseApiHandler final { public: BaseApiHandler(DeviceRegistrationInfo* device_info, - const std::string& firmware_version, const std::shared_ptr<StateManager>& state_manager, const std::shared_ptr<CommandManager>& command_manager);
diff --git a/libweave/src/base_api_handler_unittest.cc b/libweave/src/base_api_handler_unittest.cc index 9b22ef8..7ffc3d9 100644 --- a/libweave/src/base_api_handler_unittest.cc +++ b/libweave/src/base_api_handler_unittest.cc
@@ -18,14 +18,21 @@ #include "libweave/src/states/state_manager.h" using testing::_; -using testing::StrictMock; +using testing::Invoke; using testing::Return; +using testing::StrictMock; namespace weave { 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)); @@ -55,12 +62,13 @@ ASSERT_TRUE(state_manager_->LoadStateDefinition(*state_definition, "base", nullptr)); ASSERT_TRUE(state_manager_->LoadStateDefaults(*state_defaults, nullptr)); - dev_reg_.reset(new DeviceRegistrationInfo( - command_manager_, state_manager_, - std::unique_ptr<Config>{new Config{&config_store_}}, nullptr, - &http_client_, true, nullptr)); - handler_.reset(new BaseApiHandler{dev_reg_.get(), "123123", state_manager_, - command_manager_}); + std::unique_ptr<Config> config{new Config{&config_store_}}; + config->Load(); + dev_reg_.reset(new DeviceRegistrationInfo(command_manager_, state_manager_, + std::move(config), nullptr, + &http_client_, true, nullptr)); + handler_.reset( + new BaseApiHandler{dev_reg_.get(), state_manager_, command_manager_}); } void LoadCommands(const std::string& command_definitions) {
diff --git a/libweave/src/config.h b/libweave/src/config.h index 55d7d09..a54e018 100644 --- a/libweave/src/config.h +++ b/libweave/src/config.h
@@ -97,6 +97,9 @@ const std::string& oem_name() const { return settings_.oem_name; } const std::string& model_name() const { return settings_.model_name; } const std::string& model_id() const { return settings_.model_id; } + const std::string& firmware_version() const { + return settings_.firmware_version; + } base::TimeDelta polling_period() const { return settings_.polling_period; } base::TimeDelta backup_polling_period() const { return settings_.backup_polling_period;
diff --git a/libweave/src/config_unittest.cc b/libweave/src/config_unittest.cc index be24e00..794f5cb 100644 --- a/libweave/src/config_unittest.cc +++ b/libweave/src/config_unittest.cc
@@ -51,6 +51,7 @@ EXPECT_EQ("Chromium", config_->oem_name()); EXPECT_EQ("Brillo", config_->model_name()); EXPECT_EQ("AAAAA", config_->model_id()); + EXPECT_EQ("", config_->firmware_version()); EXPECT_EQ(base::TimeDelta::FromSeconds(7), config_->polling_period()); EXPECT_EQ(base::TimeDelta::FromMinutes(30), config_->backup_polling_period()); EXPECT_TRUE(config_->wifi_auto_setup_enabled());
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc index 846298a..e5710d4 100644 --- a/libweave/src/device_manager.cc +++ b/libweave/src/device_manager.cc
@@ -49,9 +49,8 @@ device_info_.reset(new DeviceRegistrationInfo( command_manager_, state_manager_, std::move(config), task_runner, http_client, options.xmpp_enabled, network)); - base_api_handler_.reset(new BaseApiHandler{device_info_.get(), - options.firmware_version, - state_manager_, command_manager_}); + base_api_handler_.reset( + new BaseApiHandler{device_info_.get(), state_manager_, command_manager_}); device_info_->Start();