• 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 #include "content/shell/renderer/test_runner/mock_web_push_client.h"
6 
7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "third_party/WebKit/public/platform/WebPushError.h"
10 #include "third_party/WebKit/public/platform/WebPushRegistration.h"
11 #include "third_party/WebKit/public/platform/WebString.h"
12 
13 using blink::WebString;
14 
15 namespace content {
16 
MockWebPushClient()17 MockWebPushClient::MockWebPushClient()
18   // The default state should be be an error with "Registration failed." message
19   // because LayoutTests are currently depending on that.
20   : error_message_("Registration failed.") {
21 }
22 
~MockWebPushClient()23 MockWebPushClient::~MockWebPushClient() {}
24 
SetMockSuccessValues(const std::string & end_point,const std::string & registration_id)25 void MockWebPushClient::SetMockSuccessValues(
26     const std::string& end_point, const std::string& registration_id) {
27   end_point_ = end_point;
28   registration_id_ = registration_id;
29   error_message_ = "";
30 }
31 
SetMockErrorValues(const std::string & message)32 void MockWebPushClient::SetMockErrorValues(const std::string& message) {
33   end_point_ = "";
34   registration_id_ = "";
35   error_message_ = message;
36 }
37 
registerPushMessaging(const WebString & sender_id,blink::WebPushRegistrationCallbacks * callbacks)38 void MockWebPushClient::registerPushMessaging(
39     const WebString& sender_id,
40     blink::WebPushRegistrationCallbacks* callbacks) {
41   DCHECK(callbacks);
42 
43   if (!error_message_.empty()) {
44     scoped_ptr<blink::WebPushError> error(
45         new blink::WebPushError(blink::WebPushError::ErrorTypeAbort,
46                                 WebString::fromUTF8(error_message_)));
47     callbacks->onError(error.release());
48   } else {
49     DCHECK(!end_point_.empty() && !registration_id_.empty());
50 
51     scoped_ptr<blink::WebPushRegistration> registration(
52         new blink::WebPushRegistration(WebString::fromUTF8(end_point_),
53                                        WebString::fromUTF8(registration_id_)));
54     callbacks->onSuccess(registration.release());
55   }
56 
57   delete callbacks;
58 }
59 
60 }  // namespace content
61