1// Copyright (c) 2012 The Chromium 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#ifndef CHROMEOS_ATTESTATION_MOCK_ATTESTATION_FLOW_H_ 6#define CHROMEOS_ATTESTATION_MOCK_ATTESTATION_FLOW_H_ 7 8#include "chromeos/attestation/attestation_flow.h" 9 10#include "base/basictypes.h" 11#include "base/callback.h" 12#include "testing/gmock/include/gmock/gmock.h" 13 14namespace chromeos { 15namespace attestation { 16 17// A fake server proxy which just appends "_response" to every request. 18class FakeServerProxy : public ServerProxy { 19 public: 20 FakeServerProxy(); 21 virtual ~FakeServerProxy(); 22 23 void set_result(bool result) { 24 result_ = result; 25 } 26 27 virtual void SendEnrollRequest(const std::string& request, 28 const DataCallback& callback) OVERRIDE; 29 30 virtual void SendCertificateRequest(const std::string& request, 31 const DataCallback& callback) OVERRIDE; 32 33 private: 34 bool result_; 35 36 DISALLOW_COPY_AND_ASSIGN(FakeServerProxy); 37}; 38 39class MockServerProxy : public ServerProxy { 40 public: 41 MockServerProxy(); 42 virtual ~MockServerProxy(); 43 44 void DeferToFake(bool result); 45 MOCK_METHOD2(SendEnrollRequest, 46 void(const std::string&, const DataCallback&)); 47 MOCK_METHOD2(SendCertificateRequest, 48 void(const std::string&, const DataCallback&)); 49 50 private: 51 FakeServerProxy fake_; 52}; 53 54// This class can be used to mock AttestationFlow callbacks. 55class MockObserver { 56 public: 57 MockObserver(); 58 virtual ~MockObserver(); 59 60 MOCK_METHOD2(MockCertificateCallback, void(bool, const std::string&)); 61}; 62 63class MockAttestationFlow : public AttestationFlow { 64 public: 65 MockAttestationFlow(); 66 virtual ~MockAttestationFlow(); 67 68 MOCK_METHOD3(GetCertificate, void(AttestationCertificateProfile, 69 bool, 70 const CertificateCallback&)); 71}; 72 73} // namespace attestation 74} // namespace chromeos 75 76#endif // CHROMEOS_ATTESTATION_MOCK_ATTESTATION_FLOW_H_ 77