1aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 2aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Copyright (C) 2012 The Android Open Source Project 3aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 4aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Licensed under the Apache License, Version 2.0 (the "License"); 5aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// you may not use this file except in compliance with the License. 6aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// You may obtain a copy of the License at 7aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 8aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// http://www.apache.org/licenses/LICENSE-2.0 9aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 10aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Unless required by applicable law or agreed to in writing, software 11aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// distributed under the License is distributed on an "AS IS" BASIS, 12aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// See the License for the specific language governing permissions and 14aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// limitations under the License. 15aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 166f6ea00aa8c4cf54b6842be32ca1226854c24f78Jay Srinivasan 17cf175a098081f3f0e9ca52d997a7ce1585c14c2dGilad Arnold#ifndef UPDATE_ENGINE_MOCK_PAYLOAD_STATE_H_ 18cf175a098081f3f0e9ca52d997a7ce1585c14c2dGilad Arnold#define UPDATE_ENGINE_MOCK_PAYLOAD_STATE_H_ 196f6ea00aa8c4cf54b6842be32ca1226854c24f78Jay Srinivasan 20d2779df63aaad8b65fc5d4badee7dbc9bed7f2b6Alex Vakulenko#include <string> 21d2779df63aaad8b65fc5d4badee7dbc9bed7f2b6Alex Vakulenko 228427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo#include <gmock/gmock.h> 238427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo 242b5a0f065187fd19179e3809148dbfc376ada7a0Jay Srinivasan#include "update_engine/omaha_request_action.h" 252b5a0f065187fd19179e3809148dbfc376ada7a0Jay Srinivasan#include "update_engine/payload_state_interface.h" 266f6ea00aa8c4cf54b6842be32ca1226854c24f78Jay Srinivasan 276f6ea00aa8c4cf54b6842be32ca1226854c24f78Jay Srinivasannamespace chromeos_update_engine { 286f6ea00aa8c4cf54b6842be32ca1226854c24f78Jay Srinivasan 292b5a0f065187fd19179e3809148dbfc376ada7a0Jay Srinivasanclass MockPayloadState: public PayloadStateInterface { 306f6ea00aa8c4cf54b6842be32ca1226854c24f78Jay Srinivasan public: 3119409b74019d787100b768306e75ab3e5882898dJay Srinivasan bool Initialize(SystemState* system_state) { 322b5a0f065187fd19179e3809148dbfc376ada7a0Jay Srinivasan return true; 332b5a0f065187fd19179e3809148dbfc376ada7a0Jay Srinivasan } 342b5a0f065187fd19179e3809148dbfc376ada7a0Jay Srinivasan 35082628869ed3ee3e173c08354d3fc40cdb7df2c0Jay Srinivasan // Significant methods. 362b5a0f065187fd19179e3809148dbfc376ada7a0Jay Srinivasan MOCK_METHOD1(SetResponse, void(const OmahaResponse& response)); 372b5a0f065187fd19179e3809148dbfc376ada7a0Jay Srinivasan MOCK_METHOD0(DownloadComplete, void()); 382b5a0f065187fd19179e3809148dbfc376ada7a0Jay Srinivasan MOCK_METHOD1(DownloadProgress, void(size_t count)); 39be45bef9e283188b00e7def8967f81843669a7f1Chris Sosa MOCK_METHOD0(UpdateResumed, void()); 4019409b74019d787100b768306e75ab3e5882898dJay Srinivasan MOCK_METHOD0(UpdateRestarted, void()); 419a017f2c5ae41c04a7c7c15b5dbd08faadae7606David Zeuthen MOCK_METHOD0(UpdateSucceeded, void()); 42a99981fda75fe0b17e96c700e3ddc93eca1cebe5David Zeuthen MOCK_METHOD1(UpdateFailed, void(ErrorCode error)); 434243291a6655972fe89d4747a0089834c9e47c20Alex Deymo MOCK_METHOD0(ResetUpdateStatus, void()); 44082628869ed3ee3e173c08354d3fc40cdb7df2c0Jay Srinivasan MOCK_METHOD0(ShouldBackoffDownload, bool()); 45e4c58bf01b6ccc915c6b261007dbb75241ed69b8David Zeuthen MOCK_METHOD0(UpdateEngineStarted, void()); 46aa18e1641879f2df5993c2b02eb6f50d4443a649Chris Sosa MOCK_METHOD0(Rollback, void()); 474243291a6655972fe89d4747a0089834c9e47c20Alex Deymo MOCK_METHOD1(ExpectRebootInNewVersion, 484243291a6655972fe89d4747a0089834c9e47c20Alex Deymo void(const std::string& target_version_uid)); 49bb8bdc7dd7e54afe181045cc17d5a0dbde99739bDavid Zeuthen MOCK_METHOD0(P2PNewAttempt, void()); 50bb8bdc7dd7e54afe181045cc17d5a0dbde99739bDavid Zeuthen MOCK_METHOD0(P2PAttemptAllowed, bool()); 51cf175a098081f3f0e9ca52d997a7ce1585c14c2dGilad Arnold MOCK_METHOD1(SetUsingP2PForDownloading, void(bool value)); 5274b5f55e6ff608857664fe151f54d78bfe0b75bbGilad Arnold MOCK_METHOD1(SetUsingP2PForSharing, void(bool value)); 53519cfc71f0a2f7f01adb51acd19b5cd23d2c93a2Gilad Arnold MOCK_METHOD1(SetScatteringWaitPeriod, void(base::TimeDelta)); 5474b5f55e6ff608857664fe151f54d78bfe0b75bbGilad Arnold MOCK_METHOD1(SetP2PUrl, void(const std::string&)); 556c73668ddcd3dd905c976808bfa13609eeef00b9Sen Jiang MOCK_METHOD0(NextPayload, bool()); 56082628869ed3ee3e173c08354d3fc40cdb7df2c0Jay Srinivasan 57082628869ed3ee3e173c08354d3fc40cdb7df2c0Jay Srinivasan // Getters. 58082628869ed3ee3e173c08354d3fc40cdb7df2c0Jay Srinivasan MOCK_METHOD0(GetResponseSignature, std::string()); 59820cc706c5ef60a3be96f5487f616bfed2b1d207Alex Deymo MOCK_METHOD0(GetPayloadAttemptNumber, int()); 60820cc706c5ef60a3be96f5487f616bfed2b1d207Alex Deymo MOCK_METHOD0(GetFullPayloadAttemptNumber, int()); 6153173b964f6f43c89dbaba41875fcadd7077b2eaJay Srinivasan MOCK_METHOD0(GetCurrentUrl, std::string()); 622b5a0f065187fd19179e3809148dbfc376ada7a0Jay Srinivasan MOCK_METHOD0(GetUrlFailureCount, uint32_t()); 63cc6f99600b3354cfe3a0d212241e1ee1dc3421b6David Zeuthen MOCK_METHOD0(GetUrlSwitchCount, uint32_t()); 64a573d6fd046dc203b96bff6df8e57b35319906fdDavid Zeuthen MOCK_METHOD0(GetNumResponsesSeen, int()); 65082628869ed3ee3e173c08354d3fc40cdb7df2c0Jay Srinivasan MOCK_METHOD0(GetBackoffExpiryTime, base::Time()); 669a017f2c5ae41c04a7c7c15b5dbd08faadae7606David Zeuthen MOCK_METHOD0(GetUpdateDuration, base::TimeDelta()); 679a017f2c5ae41c04a7c7c15b5dbd08faadae7606David Zeuthen MOCK_METHOD0(GetUpdateDurationUptime, base::TimeDelta()); 6819409b74019d787100b768306e75ab3e5882898dJay Srinivasan MOCK_METHOD1(GetCurrentBytesDownloaded, uint64_t(DownloadSource source)); 6919409b74019d787100b768306e75ab3e5882898dJay Srinivasan MOCK_METHOD1(GetTotalBytesDownloaded, uint64_t(DownloadSource source)); 70be45bef9e283188b00e7def8967f81843669a7f1Chris Sosa MOCK_METHOD0(GetNumReboots, uint32_t()); 71aa18e1641879f2df5993c2b02eb6f50d4443a649Chris Sosa MOCK_METHOD0(GetRollbackVersion, std::string()); 72bb8bdc7dd7e54afe181045cc17d5a0dbde99739bDavid Zeuthen MOCK_METHOD0(GetP2PNumAttempts, int()); 73bb8bdc7dd7e54afe181045cc17d5a0dbde99739bDavid Zeuthen MOCK_METHOD0(GetP2PFirstAttemptTimestamp, base::Time()); 7474b5f55e6ff608857664fe151f54d78bfe0b75bbGilad Arnold MOCK_CONST_METHOD0(GetUsingP2PForDownloading, bool()); 7574b5f55e6ff608857664fe151f54d78bfe0b75bbGilad Arnold MOCK_CONST_METHOD0(GetUsingP2PForSharing, bool()); 76519cfc71f0a2f7f01adb51acd19b5cd23d2c93a2Gilad Arnold MOCK_METHOD0(GetScatteringWaitPeriod, base::TimeDelta()); 7774b5f55e6ff608857664fe151f54d78bfe0b75bbGilad Arnold MOCK_CONST_METHOD0(GetP2PUrl, std::string()); 7871102a2fca8d10427cda9ea8cb09e0a4bc0a8a9aAlex Deymo MOCK_CONST_METHOD0(GetAttemptErrorCode, ErrorCode()); 796f6ea00aa8c4cf54b6842be32ca1226854c24f78Jay Srinivasan}; 806f6ea00aa8c4cf54b6842be32ca1226854c24f78Jay Srinivasan 816f6ea00aa8c4cf54b6842be32ca1226854c24f78Jay Srinivasan} // namespace chromeos_update_engine 826f6ea00aa8c4cf54b6842be32ca1226854c24f78Jay Srinivasan 83cf175a098081f3f0e9ca52d997a7ce1585c14c2dGilad Arnold#endif // UPDATE_ENGINE_MOCK_PAYLOAD_STATE_H_ 84