1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_FRAME_TEST_PROXY_FACTORY_MOCK_H_
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_FRAME_TEST_PROXY_FACTORY_MOCK_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <windows.h>
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "gmock/gmock.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome_frame/chrome_frame_automation.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct LaunchDelegateMock : public LaunchDelegate {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD2(LaunchComplete, void(ChromeFrameAutomationProxy*,
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      AutomationLaunchResult));
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD0(AutomationServerDied, void());
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockProxyFactory : public ProxyFactory {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD3(GetAutomationServer,
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      void (LaunchDelegate*,  // NOLINT
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            ChromeFrameLaunchParams* params,
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            void** automation_server_id));
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MOCK_METHOD2(ReleaseAutomationServer, bool(void* server_id,
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                             LaunchDelegate* delegate));
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MockProxyFactory() : thread_("mock factory worker") {
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    thread_.Start();
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    loop_ = thread_.message_loop();
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Fake implementation
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void GetServerImpl(ChromeFrameAutomationProxy* pxy,
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     void* proxy_id,
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     AutomationLaunchResult result,
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     LaunchDelegate* d,
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     ChromeFrameLaunchParams* params,
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     void** automation_server_id);
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  base::Thread thread_;
42868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  base::MessageLoop* loop_;
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CHROME_FRAME_TEST_PROXY_FACTORY_MOCK_H_
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47