1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// found in the LICENSE file. 4f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "content/shell/renderer/test_runner/mock_web_push_client.h" 6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/logging.h" 8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebPushError.h" 10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebPushRegistration.h" 11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebString.h" 12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)using blink::WebString; 14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace content { 16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)MockWebPushClient::MockWebPushClient() 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch : error_message_( 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch "Registration failed (default mock client error message)") { 20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)MockWebPushClient::~MockWebPushClient() {} 23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void MockWebPushClient::SetMockSuccessValues( 25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const std::string& end_point, const std::string& registration_id) { 26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) end_point_ = end_point; 27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) registration_id_ = registration_id; 28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) error_message_ = ""; 29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void MockWebPushClient::SetMockErrorValues(const std::string& message) { 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) end_point_ = ""; 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) registration_id_ = ""; 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) error_message_ = message; 35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void MockWebPushClient::registerPushMessaging( 38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const WebString& sender_id, 39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) blink::WebPushRegistrationCallbacks* callbacks) { 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch registerPushMessaging(sender_id, callbacks, NULL); 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid MockWebPushClient::registerPushMessaging( 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const WebString& sender_id, 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch blink::WebPushRegistrationCallbacks* callbacks, 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch blink::WebServiceWorkerProvider* service_worker_provider) { 47f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) DCHECK(callbacks); 48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 49f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) if (!error_message_.empty()) { 50f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) scoped_ptr<blink::WebPushError> error( 51f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) new blink::WebPushError(blink::WebPushError::ErrorTypeAbort, 52f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) WebString::fromUTF8(error_message_))); 53f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) callbacks->onError(error.release()); 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } else { 55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) DCHECK(!end_point_.empty() && !registration_id_.empty()); 56f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 57f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) scoped_ptr<blink::WebPushRegistration> registration( 58f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) new blink::WebPushRegistration(WebString::fromUTF8(end_point_), 59f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) WebString::fromUTF8(registration_id_))); 60f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) callbacks->onSuccess(registration.release()); 61f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) } 62f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 63f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) delete callbacks; 64f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 65f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 66f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} // namespace content 67