Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(698)

Side by Side Diff: webrtc/libjingle/xmpp/mucroomdiscoverytask_unittest.cc

Issue 2617443003: Remove webrtc/libjingle/{xmllite,xmpp} (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright 2011 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #include <string>
12 #include <vector>
13
14 #include "webrtc/libjingle/xmllite/xmlelement.h"
15 #include "webrtc/libjingle/xmpp/constants.h"
16 #include "webrtc/libjingle/xmpp/fakexmppclient.h"
17 #include "webrtc/libjingle/xmpp/mucroomdiscoverytask.h"
18 #include "webrtc/base/faketaskrunner.h"
19 #include "webrtc/base/gunit.h"
20 #include "webrtc/base/sigslot.h"
21
22 class MucRoomDiscoveryListener : public sigslot::has_slots<> {
23 public:
24 MucRoomDiscoveryListener() : error_count(0) {}
25
26 void OnResult(buzz::MucRoomDiscoveryTask* task,
27 bool exists,
28 const std::string& name,
29 const std::string& conversation_id,
30 const std::set<std::string>& features,
31 const std::map<std::string, std::string>& extended_info) {
32 last_exists = exists;
33 last_name = name;
34 last_conversation_id = conversation_id;
35 last_features = features;
36 last_extended_info = extended_info;
37 }
38
39 void OnError(buzz::IqTask* task,
40 const buzz::XmlElement* error) {
41 ++error_count;
42 }
43
44 bool last_exists;
45 std::string last_name;
46 std::string last_conversation_id;
47 std::set<std::string> last_features;
48 std::map<std::string, std::string> last_extended_info;
49 int error_count;
50 };
51
52 class MucRoomDiscoveryTaskTest : public testing::Test {
53 public:
54 MucRoomDiscoveryTaskTest() :
55 room_jid("muc-jid-ponies@domain.com"),
56 room_name("ponies"),
57 conversation_id("test_conversation_id") {
58 }
59
60 virtual void SetUp() {
61 runner = new rtc::FakeTaskRunner();
62 xmpp_client = new buzz::FakeXmppClient(runner);
63 listener = new MucRoomDiscoveryListener();
64 }
65
66 virtual void TearDown() {
67 delete listener;
68 // delete xmpp_client; Deleted by deleting runner.
69 delete runner;
70 }
71
72 rtc::FakeTaskRunner* runner;
73 buzz::FakeXmppClient* xmpp_client;
74 MucRoomDiscoveryListener* listener;
75 buzz::Jid room_jid;
76 std::string room_name;
77 std::string conversation_id;
78 };
79
80 TEST_F(MucRoomDiscoveryTaskTest, TestDiscovery) {
81 ASSERT_EQ(0U, xmpp_client->sent_stanzas().size());
82
83 buzz::MucRoomDiscoveryTask* task = new buzz::MucRoomDiscoveryTask(
84 xmpp_client, room_jid);
85 task->SignalResult.connect(listener, &MucRoomDiscoveryListener::OnResult);
86 task->Start();
87
88 std::string expected_iq =
89 "<cli:iq type=\"get\" to=\"muc-jid-ponies@domain.com\" id=\"0\" "
90 "xmlns:cli=\"jabber:client\">"
91 "<info:query xmlns:info=\"http://jabber.org/protocol/disco#info\"/>"
92 "</cli:iq>";
93
94 ASSERT_EQ(1U, xmpp_client->sent_stanzas().size());
95 EXPECT_EQ(expected_iq, xmpp_client->sent_stanzas()[0]->Str());
96
97 EXPECT_EQ("", listener->last_name);
98 EXPECT_EQ("", listener->last_conversation_id);
99
100 std::string response_iq =
101 "<iq xmlns='jabber:client'"
102 " from='muc-jid-ponies@domain.com' id='0' type='result'>"
103 " <info:query xmlns:info='http://jabber.org/protocol/disco#info'>"
104 " <info:identity name='ponies'>"
105 " <han:conversation-id xmlns:han='google:muc#hangout'>"
106 "test_conversation_id</han:conversation-id>"
107 " </info:identity>"
108 " <info:feature var='feature1'/>"
109 " <info:feature var='feature2'/>"
110 " <data:x xmlns:data='jabber:x:data'>"
111 " <data:field var='var1' data:value='value1' />"
112 " <data:field var='var2' data:value='value2' />"
113 " </data:x>"
114 " </info:query>"
115 "</iq>";
116
117 xmpp_client->HandleStanza(buzz::XmlElement::ForStr(response_iq));
118
119 EXPECT_EQ(true, listener->last_exists);
120 EXPECT_EQ(room_name, listener->last_name);
121 EXPECT_EQ(conversation_id, listener->last_conversation_id);
122 EXPECT_EQ(2U, listener->last_features.size());
123 EXPECT_EQ(1U, listener->last_features.count("feature1"));
124 EXPECT_EQ(2U, listener->last_extended_info.size());
125 EXPECT_EQ("value1", listener->last_extended_info["var1"]);
126 EXPECT_EQ(0, listener->error_count);
127 }
128
129 TEST_F(MucRoomDiscoveryTaskTest, TestMissingName) {
130 buzz::MucRoomDiscoveryTask* task = new buzz::MucRoomDiscoveryTask(
131 xmpp_client, room_jid);
132 task->SignalError.connect(listener, &MucRoomDiscoveryListener::OnError);
133 task->Start();
134
135 std::string error_iq =
136 "<iq xmlns='jabber:client'"
137 " from='muc-jid-ponies@domain.com' id='0' type='result'>"
138 " <info:query xmlns:info='http://jabber.org/protocol/disco#info'>"
139 " <info:identity />"
140 " </info:query>"
141 "</iq>";
142 EXPECT_EQ(0, listener->error_count);
143 xmpp_client->HandleStanza(buzz::XmlElement::ForStr(error_iq));
144 EXPECT_EQ(0, listener->error_count);
145 }
OLDNEW
« no previous file with comments | « webrtc/libjingle/xmpp/mucroomdiscoverytask.cc ('k') | webrtc/libjingle/xmpp/mucroomlookuptask.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698