Index: jingle/notifier/listener/talk_mediator_unittest.cc |
diff --git a/jingle/notifier/listener/talk_mediator_unittest.cc b/jingle/notifier/listener/talk_mediator_unittest.cc |
deleted file mode 100644 |
index c72e0e9c489918b0fd9d774513f07bb9692561c0..0000000000000000000000000000000000000000 |
--- a/jingle/notifier/listener/talk_mediator_unittest.cc |
+++ /dev/null |
@@ -1,171 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include <string> |
- |
-#include "base/basictypes.h" |
-#include "base/message_loop.h" |
-#include "jingle/notifier/base/notifier_options.h" |
-#include "jingle/notifier/listener/mediator_thread_mock.h" |
-#include "jingle/notifier/listener/mediator_thread_impl.h" |
-#include "jingle/notifier/listener/talk_mediator_impl.h" |
-#include "talk/xmpp/xmppengine.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace notifier { |
- |
-using ::testing::_; |
- |
-class MockTalkMediatorDelegate : public TalkMediator::Delegate { |
- public: |
- MockTalkMediatorDelegate() {} |
- virtual ~MockTalkMediatorDelegate() {} |
- |
- MOCK_METHOD1(OnNotificationStateChange, |
- void(bool notification_changed)); |
- MOCK_METHOD1(OnIncomingNotification, |
- void(const Notification& data)); |
- MOCK_METHOD0(OnOutgoingNotification, void()); |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(MockTalkMediatorDelegate); |
-}; |
- |
-class TalkMediatorImplTest : public testing::Test { |
- protected: |
- TalkMediatorImplTest() {} |
- virtual ~TalkMediatorImplTest() {} |
- |
- TalkMediatorImpl* NewMockedTalkMediator( |
- MockMediatorThread* mock_mediator_thread) { |
- return new TalkMediatorImpl(mock_mediator_thread, |
- NotifierOptions()); |
- } |
- |
- int last_message_; |
- |
- private: |
- // TalkMediatorImpl expects a message loop. |
- MessageLoop message_loop_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TalkMediatorImplTest); |
-}; |
- |
-TEST_F(TalkMediatorImplTest, SetAuthToken) { |
- scoped_ptr<TalkMediatorImpl> talk1( |
- NewMockedTalkMediator(new MockMediatorThread())); |
- talk1->SetAuthToken("chromium@gmail.com", "token", "fake_service"); |
- EXPECT_TRUE(talk1->state_.initialized); |
- talk1->Logout(); |
- |
- scoped_ptr<TalkMediatorImpl> talk2( |
- NewMockedTalkMediator(new MockMediatorThread())); |
- talk2->SetAuthToken("chromium@mail.google.com", "token", "fake_service"); |
- EXPECT_TRUE(talk2->state_.initialized); |
- talk2->Logout(); |
- |
- scoped_ptr<TalkMediatorImpl> talk3( |
- NewMockedTalkMediator(new MockMediatorThread())); |
- talk3->SetAuthToken("chromium@mail.google.com", "token", "fake_service"); |
- EXPECT_TRUE(talk3->state_.initialized); |
- talk3->Logout(); |
-} |
- |
-TEST_F(TalkMediatorImplTest, LoginWiring) { |
- // The TalkMediatorImpl owns the mock. |
- MockMediatorThread* mock = new MockMediatorThread(); |
- scoped_ptr<TalkMediatorImpl> talk1(NewMockedTalkMediator(mock)); |
- |
- // Login checks states for initialization. |
- EXPECT_FALSE(talk1->Login()); |
- EXPECT_EQ(0, mock->login_calls); |
- |
- talk1->SetAuthToken("chromium@gmail.com", "token", "fake_service"); |
- EXPECT_EQ(0, mock->update_settings_calls); |
- |
- EXPECT_TRUE(talk1->Login()); |
- EXPECT_EQ(1, mock->login_calls); |
- |
- // We call SetAuthToken again to update the settings after an update. |
- talk1->SetAuthToken("chromium@gmail.com", "token", "fake_service"); |
- EXPECT_EQ(1, mock->update_settings_calls); |
- |
- // Successive calls to login will fail. One needs to create a new talk |
- // mediator object. |
- EXPECT_FALSE(talk1->Login()); |
- EXPECT_EQ(1, mock->login_calls); |
- |
- EXPECT_TRUE(talk1->Logout()); |
- EXPECT_EQ(1, mock->logout_calls); |
- |
- // Successive logout calls do nothing. |
- EXPECT_FALSE(talk1->Logout()); |
- EXPECT_EQ(1, mock->logout_calls); |
-} |
- |
-TEST_F(TalkMediatorImplTest, SendNotification) { |
- // The TalkMediatorImpl owns the mock. |
- MockMediatorThread* mock = new MockMediatorThread(); |
- scoped_ptr<TalkMediatorImpl> talk1(NewMockedTalkMediator(mock)); |
- |
- Notification data; |
- talk1->SendNotification(data); |
- EXPECT_EQ(1, mock->send_calls); |
- |
- talk1->SetAuthToken("chromium@gmail.com", "token", "fake_service"); |
- EXPECT_TRUE(talk1->Login()); |
- talk1->OnConnectionStateChange(true); |
- EXPECT_EQ(1, mock->login_calls); |
- |
- talk1->SendNotification(data); |
- EXPECT_EQ(2, mock->send_calls); |
- talk1->SendNotification(data); |
- EXPECT_EQ(3, mock->send_calls); |
- |
- EXPECT_TRUE(talk1->Logout()); |
- EXPECT_EQ(1, mock->logout_calls); |
- |
- talk1->SendNotification(data); |
- EXPECT_EQ(4, mock->send_calls); |
-} |
- |
-TEST_F(TalkMediatorImplTest, MediatorThreadCallbacks) { |
- // The TalkMediatorImpl owns the mock. |
- MockMediatorThread* mock = new MockMediatorThread(); |
- scoped_ptr<TalkMediatorImpl> talk1(NewMockedTalkMediator(mock)); |
- |
- MockTalkMediatorDelegate mock_delegate; |
- EXPECT_CALL(mock_delegate, OnNotificationStateChange(true)); |
- EXPECT_CALL(mock_delegate, OnIncomingNotification(_)); |
- EXPECT_CALL(mock_delegate, OnOutgoingNotification()); |
- |
- talk1->SetDelegate(&mock_delegate); |
- |
- talk1->SetAuthToken("chromium@gmail.com", "token", "fake_service"); |
- EXPECT_TRUE(talk1->Login()); |
- EXPECT_EQ(1, mock->login_calls); |
- |
- // The message triggers calls to listen and subscribe. |
- EXPECT_EQ(1, mock->listen_calls); |
- EXPECT_EQ(1, mock->subscribe_calls); |
- |
- // After subscription success is receieved, the talk mediator will allow |
- // sending of notifications. |
- Notification outgoing_data; |
- talk1->SendNotification(outgoing_data); |
- EXPECT_EQ(1, mock->send_calls); |
- |
- Notification incoming_data; |
- incoming_data.channel = "service_url"; |
- incoming_data.data = "service_data"; |
- mock->ReceiveNotification(incoming_data); |
- |
- // Shouldn't trigger a call to the delegate since we disconnect |
- // it before we logout the mediator thread. |
- talk1->Logout(); |
- talk1.reset(); |
-} |
- |
-} // namespace notifier |