1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chromeos/dbus/fake_update_engine_client.h" 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace chromeos { 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 9b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)FakeUpdateEngineClient::FakeUpdateEngineClient() 10424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) : update_check_result_(UpdateEngineClient::UPDATE_RESULT_SUCCESS), 11c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch can_rollback_stub_result_(false), 12c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch reboot_after_update_call_count_(0), 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci request_update_check_call_count_(0), 14c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch rollback_call_count_(0), 15c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch can_rollback_call_count_(0) { 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeUpdateEngineClient::~FakeUpdateEngineClient() { 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 21424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)void FakeUpdateEngineClient::Init(dbus::Bus* bus) { 22424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 23424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeUpdateEngineClient::AddObserver(Observer* observer) { 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) observers_.AddObserver(observer); 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeUpdateEngineClient::RemoveObserver(Observer* observer) { 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) observers_.RemoveObserver(observer); 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeUpdateEngineClient::HasObserver(Observer* observer) { 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return observers_.HasObserver(observer); 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeUpdateEngineClient::RequestUpdateCheck( 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const UpdateCheckCallback& callback) { 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci request_update_check_call_count_++; 39b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) callback.Run(update_check_result_); 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid FakeUpdateEngineClient::Rollback() { 43c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch rollback_call_count_++; 44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid FakeUpdateEngineClient::CanRollbackCheck( 47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch const RollbackCheckCallback& callback) { 48c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch can_rollback_call_count_++; 49c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch callback.Run(can_rollback_stub_result_); 50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeUpdateEngineClient::RebootAfterUpdate() { 53b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) reboot_after_update_call_count_++; 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)UpdateEngineClient::Status FakeUpdateEngineClient::GetLastStatus() { 5790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) if (status_queue_.empty()) 5890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return default_status_; 5990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 6090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) UpdateEngineClient::Status last_status = status_queue_.front(); 6190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) status_queue_.pop(); 6290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return last_status; 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 65010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void FakeUpdateEngineClient::NotifyObserversThatStatusChanged( 66010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const UpdateEngineClient::Status& status) { 67010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) FOR_EACH_OBSERVER(Observer, observers_, UpdateStatusChanged(status)); 68010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 69010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 70eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid FakeUpdateEngineClient::SetChannel(const std::string& target_channel, 71eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch bool is_powerwash_allowed) { 72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 73eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 74eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid FakeUpdateEngineClient::GetChannel(bool get_current_channel, 75eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const GetChannelCallback& callback) { 76eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 77eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 7890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void FakeUpdateEngineClient::set_default_status( 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const UpdateEngineClient::Status& status) { 8090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) default_status_ = status; 81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 83b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)void FakeUpdateEngineClient::set_update_check_result( 84b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) const UpdateEngineClient::UpdateCheckResult& result) { 85b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) update_check_result_ = result; 86b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)} 87b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 88c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace chromeos 89