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