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

Side by Side Diff: remoting/signaling/signaling_address_unittest.cc

Issue 2805173005: Move SignalingAddress to remoting/signaling (Closed)
Patch Set: fix compilation on windows Created 3 years, 8 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
« no previous file with comments | « remoting/signaling/signaling_address.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2017 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 "remoting/signaling/signaling_address.h"
6
7 #include <memory>
8
9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "third_party/libjingle_xmpp/xmllite/xmlelement.h"
11
12 using buzz::QName;
13
14 namespace remoting {
15
16 namespace {
17
18 std::unique_ptr<buzz::XmlElement> GetEmptyJingleMessage() {
19 return std::unique_ptr<buzz::XmlElement>(buzz::XmlElement::ForStr(
20 "<iq xmlns='jabber:client'><jingle xmlns='urn:xmpp:jingle:1'/></iq>"));
21 }
22
23 } // namespace
24
25 TEST(SignalingAddressTest, ParseAddress) {
26 const char kTestMessage[] =
27 "<cli:iq from='remoting@bot.talk.google.com' "
28 " to='user@gmail.com/chromiumsy5C6A652D' type='set' "
29 " xmlns:cli='jabber:client'>"
30 " <jingle action='session-info' "
31 " sid='2227053353' xmlns='urn:xmpp:jingle:1' "
32 " from-channel='lcs' "
33 " from-endpoint-id='user@gmail.com/xBrnereror='>"
34 " </jingle>"
35 "</cli:iq>";
36
37 std::unique_ptr<buzz::XmlElement> message(
38 buzz::XmlElement::ForStr(kTestMessage));
39 std::string error;
40
41 SignalingAddress from =
42 SignalingAddress::Parse(message.get(), SignalingAddress::FROM, &error);
43 EXPECT_FALSE(from.empty());
44 EXPECT_TRUE(error.empty());
45
46 EXPECT_EQ("remoting@bot.talk.google.com", from.jid());
47 EXPECT_EQ(SignalingAddress::Channel::LCS, from.channel());
48 EXPECT_EQ("user@gmail.com/xBrnereror=", from.endpoint_id());
49 EXPECT_EQ("user@gmail.com/xBrnereror=", from.id());
50
51 SignalingAddress to =
52 SignalingAddress::Parse(message.get(), SignalingAddress::TO, &error);
53 EXPECT_FALSE(to.empty());
54 EXPECT_TRUE(error.empty());
55
56 EXPECT_EQ("user@gmail.com/chromiumsy5C6A652D", to.jid());
57 EXPECT_EQ(SignalingAddress::Channel::XMPP, to.channel());
58 EXPECT_EQ("", to.endpoint_id());
59 EXPECT_EQ("user@gmail.com/chromiumsy5C6A652D", to.id());
60 }
61
62 TEST(SignalingAddressTest, ParseErrorAddress) {
63 const char kTestMessage[] =
64 "<cli:iq from='remoting@bot.talk.google.com' "
65 "to='user@gmail.com/chromiumsy5C6A652D' type='error' "
66 " xmlns:cli='jabber:client'>"
67 " <jingle action='session-info' "
68 " sid='2227053353' xmlns='urn:xmpp:jingle:1' "
69 " to-channel='lcs' "
70 " to-endpoint-id='user@gmail.com/xBrnereror='>"
71 " </jingle>"
72 "<error/>"
73 "</cli:iq>";
74
75 std::unique_ptr<buzz::XmlElement> message(
76 buzz::XmlElement::ForStr(kTestMessage));
77 std::string error;
78
79 SignalingAddress from =
80 SignalingAddress::Parse(message.get(), SignalingAddress::FROM, &error);
81 EXPECT_FALSE(from.empty());
82
83 EXPECT_EQ("remoting@bot.talk.google.com", from.jid());
84 EXPECT_EQ(SignalingAddress::Channel::LCS, from.channel());
85 EXPECT_EQ("user@gmail.com/xBrnereror=", from.endpoint_id());
86 EXPECT_EQ("user@gmail.com/xBrnereror=", from.id());
87
88 SignalingAddress to =
89 SignalingAddress::Parse(message.get(), SignalingAddress::TO, &error);
90 EXPECT_FALSE(to.empty());
91
92 EXPECT_EQ("user@gmail.com/chromiumsy5C6A652D", to.jid());
93 EXPECT_EQ(SignalingAddress::Channel::XMPP, to.channel());
94 EXPECT_EQ("", to.endpoint_id());
95 EXPECT_EQ("user@gmail.com/chromiumsy5C6A652D", to.id());
96 }
97
98 TEST(SignalingAddressTest, ParseInvalidBotAddress) {
99 // Parse a message with LCS address and invalid from field.
100 const char kTestMessage[] =
101 "<cli:iq from='invalid_address@google.com' "
102 "to='user@gmail.com/chromiumsy5C6A652D' type='result' "
103 " xmlns:cli='jabber:client'>"
104 " <jingle action='session-info' "
105 " sid='2227053353' xmlns='urn:xmpp:jingle:1' "
106 " from-channel='lcs' "
107 " from-endpoint-id='user@gmail.com/xBrnereror='>"
108 " </jingle>"
109 "</cli:iq>";
110
111 std::unique_ptr<buzz::XmlElement> message(
112 buzz::XmlElement::ForStr(kTestMessage));
113 std::string error;
114
115 SignalingAddress from =
116 SignalingAddress::Parse(message.get(), SignalingAddress::FROM, &error);
117 EXPECT_TRUE(from.empty());
118 EXPECT_FALSE(error.empty());
119 }
120
121 TEST(SignalingAddressTest, ParseMissingEndpointId) {
122 // Parse a message with a missing endpoint-id field.
123 const char kTestMessage[] =
124 "<cli:iq from='invalid_address@google.com' "
125 " to='user@gmail.com/chromiumsy5C6A652D' type='set' "
126 " xmlns:cli='jabber:client'>"
127 " <jingle action='session-info' "
128 " sid='2227053353' xmlns='urn:xmpp:jingle:1' "
129 " from-channel='lcs'>"
130 " </jingle>"
131 "</cli:iq>";
132
133 std::unique_ptr<buzz::XmlElement> message(
134 buzz::XmlElement::ForStr(kTestMessage));
135 std::string error;
136
137 SignalingAddress from =
138 SignalingAddress::Parse(message.get(), SignalingAddress::FROM, &error);
139 EXPECT_TRUE(from.empty());
140 EXPECT_FALSE(error.empty());
141 }
142
143 TEST(SignalingAddressTest, FormatToDirect) {
144 std::unique_ptr<buzz::XmlElement> message = GetEmptyJingleMessage();
145 SignalingAddress addr("user@domain.com/resource");
146 addr.SetInMessage(message.get(), SignalingAddress::TO);
147 EXPECT_EQ("user@domain.com/resource", message->Attr(QName("", "to")));
148 buzz::XmlElement* jingle =
149 message->FirstNamed(buzz::QName("urn:xmpp:jingle:1", "jingle"));
150 EXPECT_EQ("", jingle->Attr(QName("", "to-channel")));
151 EXPECT_EQ("", jingle->Attr(QName("", "to-endpoint-id")));
152 }
153
154 TEST(SignalingAddressTest, FormatToLcs) {
155 std::unique_ptr<buzz::XmlElement> message = GetEmptyJingleMessage();
156 SignalingAddress addr("remoting@bot.server.com", "user_id",
157 SignalingAddress::Channel::LCS);
158
159 addr.SetInMessage(message.get(), SignalingAddress::TO);
160 EXPECT_EQ("remoting@bot.server.com", message->Attr(QName("", "to")));
161 buzz::XmlElement* jingle =
162 message->FirstNamed(buzz::QName("urn:xmpp:jingle:1", "jingle"));
163 EXPECT_EQ("lcs", jingle->Attr(QName("", "to-channel")));
164 EXPECT_EQ("user_id", jingle->Attr(QName("", "to-endpoint-id")));
165 }
166
167 TEST(SignalingAddressTest, FormatFromDirect) {
168 std::unique_ptr<buzz::XmlElement> message = GetEmptyJingleMessage();
169 SignalingAddress addr("user@domain.com/resource");
170 addr.SetInMessage(message.get(), SignalingAddress::FROM);
171 EXPECT_EQ("user@domain.com/resource", message->Attr(QName("", "from")));
172 buzz::XmlElement* jingle =
173 message->FirstNamed(buzz::QName("urn:xmpp:jingle:1", "jingle"));
174 EXPECT_EQ("", jingle->Attr(QName("", "from-channel")));
175 EXPECT_EQ("", jingle->Attr(QName("", "from-endpoint-id")));
176 }
177
178 TEST(SignalingAddressTest, FormatFromLcs) {
179 std::unique_ptr<buzz::XmlElement> message = GetEmptyJingleMessage();
180 SignalingAddress addr("remoting@bot.server.com", "user_id",
181 SignalingAddress::Channel::LCS);
182
183 addr.SetInMessage(message.get(), SignalingAddress::FROM);
184 EXPECT_EQ("remoting@bot.server.com", message->Attr(QName("", "from")));
185 buzz::XmlElement* jingle =
186 message->FirstNamed(buzz::QName("urn:xmpp:jingle:1", "jingle"));
187 EXPECT_EQ("lcs", jingle->Attr(QName("", "from-channel")));
188 EXPECT_EQ("user_id", jingle->Attr(QName("", "from-endpoint-id")));
189 }
190
191 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/signaling/signaling_address.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698