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