• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCK_WEB_PUSH_CLIENT_H_
6 #define CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCK_WEB_PUSH_CLIENT_H_
7 
8 #include <string>
9 
10 #include "third_party/WebKit/public/platform/WebPushClient.h"
11 
12 namespace blink {
13 class WebString;
14 }  // namespace blink
15 
16 namespace content {
17 
18 // MockWebPushClient is a mock implementation of WebPushClient to be able to
19 // test the Push Message API in Blink without depending on the content layer.
20 // The mock, for legacy reasons, automatically fails if it wasn't set to another
21 // state. Consumers can set its success values and error values by calling
22 // respectively SetMockSuccessValues and SetMockErrorValues. When
23 // SetMockSuccessValues is called, the mock will always succeed until
24 // SetMockErrorValues is called at which point it will always fail.
25 class MockWebPushClient : public blink::WebPushClient {
26  public:
27   MockWebPushClient();
28   virtual ~MockWebPushClient();
29 
30   void SetMockSuccessValues(const std::string& end_point,
31                             const std::string& registration_id);
32 
33   void SetMockErrorValues(const std::string& message);
34 
35  private:
36   // WebPushClient implementation.
37   virtual void registerPushMessaging(
38       const blink::WebString& sender_id,
39       blink::WebPushRegistrationCallbacks* callbacks);
40 
41   std::string end_point_;
42   std::string registration_id_;
43   std::string error_message_;
44 
45   DISALLOW_COPY_AND_ASSIGN(MockWebPushClient);
46 };
47 
48 }  // namespace content
49 
50 #endif  // CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCK_WEB_PUSH_CLIENT_H_
51