| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/compiler_specific.h" |
| 5 #include "jingle/notifier/base/fake_base_task.h" | 6 #include "jingle/notifier/base/fake_base_task.h" |
| 6 #include "jingle/notifier/base/weak_xmpp_client.h" | 7 #include "jingle/notifier/base/weak_xmpp_client.h" |
| 7 #include "talk/xmpp/asyncsocket.h" | 8 #include "talk/xmpp/asyncsocket.h" |
| 8 #include "testing/gmock/include/gmock/gmock.h" | 9 #include "testing/gmock/include/gmock/gmock.h" |
| 9 | 10 |
| 10 namespace notifier { | 11 namespace notifier { |
| 11 | 12 |
| 12 using ::testing::_; | 13 using ::testing::_; |
| 13 using ::testing::Return; | 14 using ::testing::Return; |
| 14 | 15 |
| 15 class MockAsyncSocket : public buzz::AsyncSocket { | 16 class MockAsyncSocket : public buzz::AsyncSocket { |
| 16 public: | 17 public: |
| 17 virtual ~MockAsyncSocket() {} | 18 virtual ~MockAsyncSocket() {} |
| 18 | 19 |
| 19 MOCK_METHOD0(state, State()); | 20 MOCK_METHOD0(state, State()); |
| 20 MOCK_METHOD0(error, Error()); | 21 MOCK_METHOD0(error, Error()); |
| 21 MOCK_METHOD0(GetError, int()); | 22 MOCK_METHOD0(GetError, int()); |
| 22 MOCK_METHOD1(Connect, bool(const talk_base::SocketAddress&)); | 23 MOCK_METHOD1(Connect, bool(const talk_base::SocketAddress&)); |
| 23 MOCK_METHOD3(Read, bool(char*, size_t, size_t*)); | 24 MOCK_METHOD3(Read, bool(char*, size_t, size_t*)); |
| 24 MOCK_METHOD2(Write, bool(const char*, size_t)); | 25 MOCK_METHOD2(Write, bool(const char*, size_t)); |
| 25 MOCK_METHOD0(Close, bool()); | 26 MOCK_METHOD0(Close, bool()); |
| 26 MOCK_METHOD1(StartTls, bool(const std::string&)); | 27 MOCK_METHOD1(StartTls, bool(const std::string&)); |
| 27 }; | 28 }; |
| 28 | 29 |
| 30 } // namespace notifier |
| 31 |
| 32 namespace { |
| 33 |
| 34 // Extends WeakXmppClient to make jid() return a full jid, as required by |
| 35 // PushNotificationsSubscribeTask. |
| 36 class FakeWeakXmppClient : public notifier::WeakXmppClient { |
| 37 public: |
| 38 explicit FakeWeakXmppClient(talk_base::TaskParent* parent) |
| 39 : notifier::WeakXmppClient(parent), |
| 40 jid_("test@example.com/testresource") {} |
| 41 |
| 42 virtual ~FakeWeakXmppClient() {} |
| 43 |
| 44 virtual const buzz::Jid& jid() const OVERRIDE { |
| 45 return jid_; |
| 46 } |
| 47 |
| 48 private: |
| 49 buzz::Jid jid_; |
| 50 }; |
| 51 |
| 52 } // namespace |
| 53 |
| 54 namespace notifier { |
| 55 |
| 29 FakeBaseTask::FakeBaseTask() { | 56 FakeBaseTask::FakeBaseTask() { |
| 30 // Owned by |task_pump_|. | 57 // Owned by |task_pump_|. |
| 31 notifier::WeakXmppClient* weak_xmpp_client = | 58 FakeWeakXmppClient* weak_xmpp_client = |
| 32 new notifier::WeakXmppClient(&task_pump_); | 59 new FakeWeakXmppClient(&task_pump_); |
| 33 | 60 |
| 34 weak_xmpp_client->Start(); | 61 weak_xmpp_client->Start(); |
| 35 buzz::XmppClientSettings settings; | 62 buzz::XmppClientSettings settings; |
| 36 // Owned by |weak_xmpp_client|. | 63 // Owned by |weak_xmpp_client|. |
| 37 MockAsyncSocket* mock_async_socket = new MockAsyncSocket(); | 64 MockAsyncSocket* mock_async_socket = new MockAsyncSocket(); |
| 38 EXPECT_CALL(*mock_async_socket, Connect(_)).WillOnce(Return(true)); | 65 EXPECT_CALL(*mock_async_socket, Connect(_)).WillOnce(Return(true)); |
| 39 weak_xmpp_client->Connect(settings, "en", mock_async_socket, NULL); | 66 weak_xmpp_client->Connect(settings, "en", mock_async_socket, NULL); |
| 40 // Initialize the XMPP client. | 67 // Initialize the XMPP client. |
| 41 task_pump_.RunTasks(); | 68 task_pump_.RunTasks(); |
| 42 | 69 |
| 43 base_task_ = weak_xmpp_client->AsWeakPtr(); | 70 base_task_ = weak_xmpp_client->AsWeakPtr(); |
| 44 } | 71 } |
| 45 | 72 |
| 46 FakeBaseTask::~FakeBaseTask() {} | 73 FakeBaseTask::~FakeBaseTask() {} |
| 47 | 74 |
| 48 base::WeakPtr<buzz::XmppTaskParentInterface> FakeBaseTask::AsWeakPtr() { | 75 base::WeakPtr<buzz::XmppTaskParentInterface> FakeBaseTask::AsWeakPtr() { |
| 49 return base_task_; | 76 return base_task_; |
| 50 } | 77 } |
| 51 | 78 |
| 52 } // namespace notifier | 79 } // namespace notifier |
| OLD | NEW |