1 // Copyright (c) 2013 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 CHROME_TEST_CHROMEDRIVER_CHROME_STUB_DEVTOOLS_CLIENT_H_
6 #define CHROME_TEST_CHROMEDRIVER_CHROME_STUB_DEVTOOLS_CLIENT_H_
7 
8 #include <list>
9 #include <memory>
10 #include <string>
11 
12 #include "base/compiler_specific.h"
13 #include "chrome/test/chromedriver/chrome/devtools_client.h"
14 
15 namespace base {
16 class DictionaryValue;
17 }
18 
19 class Status;
20 
21 class StubDevToolsClient : public DevToolsClient {
22  public:
23   explicit StubDevToolsClient(const std::string& id);
24   StubDevToolsClient();
25   ~StubDevToolsClient() override;
26 
27   // Overridden from DevToolsClient:
28   const std::string& GetId() override;
29   bool WasCrashed() override;
30   Status ConnectIfNecessary() override;
31   Status SetUpDevTools() override;
32   Status SendCommand(
33       const std::string& method,
34       const base::DictionaryValue& params) override;
35   Status SendCommandFromWebSocket(const std::string& method,
36                                   const base::DictionaryValue& params,
37                                   const int client_command_id) override;
38   Status SendCommandWithTimeout(
39       const std::string& method,
40       const base::DictionaryValue& params,
41       const Timeout* timeout) override;
42   Status SendAsyncCommand(
43       const std::string& method,
44       const base::DictionaryValue& params) override;
45   Status SendCommandAndGetResult(
46       const std::string& method,
47       const base::DictionaryValue& params,
48       std::unique_ptr<base::DictionaryValue>* result) override;
49   Status SendCommandAndGetResultWithTimeout(
50       const std::string& method,
51       const base::DictionaryValue& params,
52       const Timeout* timeout,
53       std::unique_ptr<base::DictionaryValue>* result) override;
54   Status SendCommandAndIgnoreResponse(
55       const std::string& method,
56       const base::DictionaryValue& params) override;
57   void AddListener(DevToolsEventListener* listener) override;
58   Status HandleEventsUntil(const ConditionalFunc& conditional_func,
59                            const Timeout& timeout) override;
60   Status HandleReceivedEvents() override;
61   void SetDetached() override;
62   void SetOwner(WebViewImpl* owner) override;
63   DevToolsClient* GetRootClient() override;
64 
65  protected:
66   const std::string id_;
67   std::list<DevToolsEventListener*> listeners_;
68 };
69 
70 #endif  // CHROME_TEST_CHROMEDRIVER_CHROME_STUB_DEVTOOLS_CLIENT_H_
71