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 MOCK_METHOD0(GetType, PrivacyCAType()); 50 51 private: 52 FakeServerProxy fake_; 53}; 54 55// This class can be used to mock AttestationFlow callbacks. 56class MockObserver { 57 public: 58 MockObserver(); 59 virtual ~MockObserver(); 60 61 MOCK_METHOD2(MockCertificateCallback, void(bool, const std::string&)); 62}; 63 64class MockAttestationFlow : public AttestationFlow { 65 public: 66 MockAttestationFlow(); 67 virtual ~MockAttestationFlow(); 68 69 MOCK_METHOD5(GetCertificate, void(AttestationCertificateProfile, 70 const std::string&, 71 const std::string&, 72 bool, 73 const CertificateCallback&)); 74}; 75 76} // namespace attestation 77} // namespace chromeos 78 79#endif // CHROMEOS_ATTESTATION_MOCK_ATTESTATION_FLOW_H_ 80