fake_messaging_interface.h revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
1// Copyright 2014 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 TESTS_NACL_IO_TEST_FAKE_MESSAGING_INTERFACE_H_
6#define TESTS_NACL_IO_TEST_FAKE_MESSAGING_INTERFACE_H_
7
8#include <string>
9#include <vector>
10
11#include "nacl_io/pepper_interface.h"
12#include "sdk_util/macros.h"
13
14class FakeVarManager;
15
16// Fake version of the MessagingInterface which simply records any
17// messages sent to it via PostMessage and makes them available as
18// a std::vector of PP_Var.
19class FakeMessagingInterface : public nacl_io::MessagingInterface {
20 public:
21  FakeMessagingInterface(FakeVarManager* manager,
22                         nacl_io::VarInterface* var_interface);
23  ~FakeMessagingInterface();
24
25  virtual void PostMessage(PP_Instance instance, PP_Var message);
26
27  std::vector<PP_Var> messages;
28 private:
29  FakeVarManager* manager_;
30  nacl_io::VarInterface* var_interface_;
31  DISALLOW_COPY_AND_ASSIGN(FakeMessagingInterface);
32};
33
34#endif  // TESTS_NACL_IO_TEST_FAKE_MESSAGING_INTERFACE_H_
35