OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "remoting/signaling/push_notification_subscriber.h" | 5 #include "remoting/signaling/push_notification_subscriber.h" |
6 | 6 |
7 #include "remoting/signaling/mock_signal_strategy.h" | 7 #include "remoting/signaling/mock_signal_strategy.h" |
| 8 #include "remoting/signaling/signaling_address.h" |
8 #include "testing/gmock/include/gmock/gmock.h" | 9 #include "testing/gmock/include/gmock/gmock.h" |
9 | 10 |
10 using testing::_; | 11 using testing::_; |
11 using testing::AtLeast; | 12 using testing::AtLeast; |
12 using testing::DoAll; | 13 using testing::DoAll; |
13 using testing::Return; | 14 using testing::Return; |
14 using testing::SaveArg; | 15 using testing::SaveArg; |
15 | 16 |
16 namespace remoting { | 17 namespace remoting { |
17 | 18 |
18 TEST(PushNotificationSubscriberTest, Create) { | 19 TEST(PushNotificationSubscriberTest, Create) { |
19 MockSignalStrategy signal_strategy; | 20 MockSignalStrategy signal_strategy(SignalingAddress("user@domain/resource")); |
20 EXPECT_CALL(signal_strategy, AddListener(_)); | 21 EXPECT_CALL(signal_strategy, AddListener(_)); |
21 EXPECT_CALL(signal_strategy, RemoveListener(_)); | 22 EXPECT_CALL(signal_strategy, RemoveListener(_)); |
22 | 23 |
23 PushNotificationSubscriber::SubscriptionList subscriptions; | 24 PushNotificationSubscriber::SubscriptionList subscriptions; |
24 PushNotificationSubscriber subscriber(&signal_strategy, subscriptions); | 25 PushNotificationSubscriber subscriber(&signal_strategy, subscriptions); |
25 } | 26 } |
26 | 27 |
27 TEST(PushNotificationSubscriberTest, Subscribe) { | 28 TEST(PushNotificationSubscriberTest, Subscribe) { |
28 MockSignalStrategy signal_strategy; | 29 MockSignalStrategy signal_strategy(SignalingAddress("user@domain/resource")); |
29 EXPECT_CALL(signal_strategy, GetLocalJid()) | |
30 .WillRepeatedly(Return("user@domain/resource")); | |
31 EXPECT_CALL(signal_strategy, GetNextId()).WillOnce(Return("next_id")); | 30 EXPECT_CALL(signal_strategy, GetNextId()).WillOnce(Return("next_id")); |
32 EXPECT_CALL(signal_strategy, AddListener(_)).Times(AtLeast(1)); | 31 EXPECT_CALL(signal_strategy, AddListener(_)).Times(AtLeast(1)); |
33 EXPECT_CALL(signal_strategy, RemoveListener(_)).Times(AtLeast(1)); | 32 EXPECT_CALL(signal_strategy, RemoveListener(_)).Times(AtLeast(1)); |
34 buzz::XmlElement* sent_stanza; | 33 buzz::XmlElement* sent_stanza; |
35 EXPECT_CALL(signal_strategy, SendStanzaPtr(_)) | 34 EXPECT_CALL(signal_strategy, SendStanzaPtr(_)) |
36 .WillOnce(DoAll(SaveArg<0>(&sent_stanza), Return(true))); | 35 .WillOnce(DoAll(SaveArg<0>(&sent_stanza), Return(true))); |
37 | 36 |
38 PushNotificationSubscriber::Subscription subscription; | 37 PushNotificationSubscriber::Subscription subscription; |
39 subscription.channel = "sub_channel"; | 38 subscription.channel = "sub_channel"; |
40 subscription.from = "sub_from"; | 39 subscription.from = "sub_from"; |
41 PushNotificationSubscriber::SubscriptionList subscriptions; | 40 PushNotificationSubscriber::SubscriptionList subscriptions; |
42 subscriptions.push_back(subscription); | 41 subscriptions.push_back(subscription); |
43 PushNotificationSubscriber subscriber(&signal_strategy, subscriptions); | 42 PushNotificationSubscriber subscriber(&signal_strategy, subscriptions); |
44 SignalStrategy::Listener* listener = &subscriber; | 43 SignalStrategy::Listener* listener = &subscriber; |
45 listener->OnSignalStrategyStateChange(SignalStrategy::CONNECTED); | 44 listener->OnSignalStrategyStateChange(SignalStrategy::CONNECTED); |
46 | 45 |
47 EXPECT_EQ( | 46 EXPECT_EQ( |
48 "<cli:iq type=\"set\" to=\"user@domain\" id=\"next_id\"" | 47 "<cli:iq type=\"set\" to=\"user@domain\" id=\"next_id\"" |
49 " xmlns:cli=\"jabber:client\">" | 48 " xmlns:cli=\"jabber:client\">" |
50 "<push:subscribe xmlns:push=\"google:push\">" | 49 "<push:subscribe xmlns:push=\"google:push\">" |
51 "<push:item channel=\"sub_channel\" from=\"sub_from\"/>" | 50 "<push:item channel=\"sub_channel\" from=\"sub_from\"/>" |
52 "</push:subscribe>" | 51 "</push:subscribe>" |
53 "</cli:iq>", | 52 "</cli:iq>", |
54 sent_stanza->Str()); | 53 sent_stanza->Str()); |
55 | 54 |
56 delete sent_stanza; | 55 delete sent_stanza; |
57 } | 56 } |
58 | 57 |
59 } // namespace remoting | 58 } // namespace remoting |
OLD | NEW |