OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/protocol/jingle_messages.h" | 5 #include "remoting/protocol/jingle_messages.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "testing/gmock/include/gmock/gmock.h" | 8 #include "testing/gmock/include/gmock/gmock.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 #include "third_party/webrtc/libjingle/xmllite/xmlelement.h" | 10 #include "third_party/webrtc/libjingle/xmllite/xmlelement.h" |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 TEST(JingleMessageTest, SessionInitiate) { | 98 TEST(JingleMessageTest, SessionInitiate) { |
99 const char* kTestSessionInitiateMessage = | 99 const char* kTestSessionInitiateMessage = |
100 "<iq to='user@gmail.com/chromoting016DBB07' type='set' " | 100 "<iq to='user@gmail.com/chromoting016DBB07' type='set' " |
101 "from='user@gmail.com/chromiumsy5C6A652D' " | 101 "from='user@gmail.com/chromiumsy5C6A652D' " |
102 "xmlns='jabber:client'>" | 102 "xmlns='jabber:client'>" |
103 "<jingle xmlns='urn:xmpp:jingle:1' " | 103 "<jingle xmlns='urn:xmpp:jingle:1' " |
104 "action='session-initiate' sid='2227053353' " | 104 "action='session-initiate' sid='2227053353' " |
105 "initiator='user@gmail.com/chromiumsy5C6A652D'>" | 105 "initiator='user@gmail.com/chromiumsy5C6A652D'>" |
106 "<content name='chromoting' creator='initiator'>" | 106 "<content name='chromoting' creator='initiator'>" |
107 "<description xmlns='google:remoting'>" | 107 "<description xmlns='google:remoting'>" |
| 108 "<standard-ice/>" |
108 "<control transport='stream' version='2'/>" | 109 "<control transport='stream' version='2'/>" |
109 "<event transport='stream' version='2'/>" | 110 "<event transport='stream' version='2'/>" |
110 "<video transport='stream' version='2' codec='vp8'/>" | 111 "<video transport='stream' version='2' codec='vp8'/>" |
111 "<audio transport='stream' version='2' codec='verbatim'/>" | 112 "<audio transport='stream' version='2' codec='verbatim'/>" |
112 "<initial-resolution width='640' height='480'/>" | 113 "<initial-resolution width='640' height='480'/>" |
113 "<authentication><auth-token>" | 114 "<authentication><auth-token>" |
114 "j7whCMii0Z0AAPwj7whCM/j7whCMii0Z0AAPw=" | 115 "j7whCMii0Z0AAPwj7whCM/j7whCMii0Z0AAPw=" |
115 "</auth-token></authentication>" | 116 "</auth-token></authentication>" |
116 "</description>" | 117 "</description>" |
117 "<transport xmlns='http://www.google.com/transport/p2p'/>" | 118 "<transport xmlns='http://www.google.com/transport/p2p'/>" |
(...skipping 20 matching lines...) Expand all Loading... |
138 | 139 |
139 TEST(JingleMessageTest, SessionAccept) { | 140 TEST(JingleMessageTest, SessionAccept) { |
140 const char* kTestSessionAcceptMessage = | 141 const char* kTestSessionAcceptMessage = |
141 "<cli:iq from='user@gmail.com/chromoting016DBB07' " | 142 "<cli:iq from='user@gmail.com/chromoting016DBB07' " |
142 "to='user@gmail.com/chromiumsy5C6A652D' type='set' " | 143 "to='user@gmail.com/chromiumsy5C6A652D' type='set' " |
143 "xmlns:cli='jabber:client'>" | 144 "xmlns:cli='jabber:client'>" |
144 "<jingle action='session-accept' sid='2227053353' " | 145 "<jingle action='session-accept' sid='2227053353' " |
145 "xmlns='urn:xmpp:jingle:1'>i" | 146 "xmlns='urn:xmpp:jingle:1'>i" |
146 "<content creator='initiator' name='chromoting'>" | 147 "<content creator='initiator' name='chromoting'>" |
147 "<description xmlns='google:remoting'>" | 148 "<description xmlns='google:remoting'>" |
| 149 "<standard-ice/>" |
148 "<control transport='stream' version='2'/>" | 150 "<control transport='stream' version='2'/>" |
149 "<event transport='stream' version='2'/>" | 151 "<event transport='stream' version='2'/>" |
150 "<video codec='vp8' transport='stream' version='2'/>" | 152 "<video codec='vp8' transport='stream' version='2'/>" |
151 "<audio transport='stream' version='2' codec='verbatim'/>" | 153 "<audio transport='stream' version='2' codec='verbatim'/>" |
152 "<initial-resolution height='480' width='640'/>" | 154 "<initial-resolution height='480' width='640'/>" |
153 "<authentication><certificate>" | 155 "<authentication><certificate>" |
154 "MIICpjCCAY6gW0Cert0TANBgkqhkiG9w0BAQUFA=" | 156 "MIICpjCCAY6gW0Cert0TANBgkqhkiG9w0BAQUFA=" |
155 "</certificate></authentication>" | 157 "</certificate></authentication>" |
156 "</description>" | 158 "</description>" |
157 "<transport xmlns='http://www.google.com/transport/p2p'/>" | 159 "<transport xmlns='http://www.google.com/transport/p2p'/>" |
(...skipping 12 matching lines...) Expand all Loading... |
170 EXPECT_TRUE(message.ParseXml(source_message.get(), &error)) << error; | 172 EXPECT_TRUE(message.ParseXml(source_message.get(), &error)) << error; |
171 | 173 |
172 EXPECT_EQ(message.action, JingleMessage::SESSION_ACCEPT); | 174 EXPECT_EQ(message.action, JingleMessage::SESSION_ACCEPT); |
173 | 175 |
174 scoped_ptr<XmlElement> formatted_message(message.ToXml()); | 176 scoped_ptr<XmlElement> formatted_message(message.ToXml()); |
175 ASSERT_TRUE(formatted_message.get()); | 177 ASSERT_TRUE(formatted_message.get()); |
176 EXPECT_TRUE(VerifyXml(source_message.get(), formatted_message.get(), &error)) | 178 EXPECT_TRUE(VerifyXml(source_message.get(), formatted_message.get(), &error)) |
177 << error; | 179 << error; |
178 } | 180 } |
179 | 181 |
180 TEST(JingleMessageTest, TransportInfo) { | 182 TEST(JingleMessageTest, SessionAcceptNoIce) { |
181 const char* kTestTransportInfoMessage = | 183 const char* kTestSessionAcceptMessage = |
182 "<cli:iq to='user@gmail.com/chromoting016DBB07' type='set' " | 184 "<cli:iq from='user@gmail.com/chromoting016DBB07' " |
183 "xmlns:cli='jabber:client'><jingle xmlns='urn:xmpp:jingle:1' " | 185 "to='user@gmail.com/chromiumsy5C6A652D' type='set' " |
184 "action='transport-info' sid='2227053353'><content name='chromoting' " | 186 "xmlns:cli='jabber:client'>" |
185 "creator='initiator'><transport " | 187 "<jingle action='session-accept' sid='2227053353' " |
186 "xmlns='http://www.google.com/transport/p2p'><candidate name='event' " | 188 "xmlns='urn:xmpp:jingle:1'>i" |
187 "address='172.23.164.186' port='57040' preference='1' " | 189 "<content creator='initiator' name='chromoting'>" |
188 "username='tPUyEAmQrEw3y7hi' protocol='udp' generation='0' " | 190 "<description xmlns='google:remoting'>" |
189 "password='2iRdhLfawKZC5ydJ' type='local'/><candidate name='video' " | 191 "<control transport='stream' version='2'/>" |
190 "address='172.23.164.186' port='42171' preference='1' " | 192 "<event transport='stream' version='2'/>" |
191 "username='EPK3CXo5sTLJSez0' protocol='udp' generation='0' " | 193 "<video codec='vp8' transport='stream' version='2'/>" |
192 "password='eM0VUfUkZ+1Pyi0M' type='local'/></transport></content>" | 194 "<audio transport='stream' version='2' codec='verbatim'/>" |
193 "</jingle></cli:iq>"; | 195 "<initial-resolution height='480' width='640'/>" |
| 196 "<authentication><certificate>" |
| 197 "MIICpjCCAY6gW0Cert0TANBgkqhkiG9w0BAQUFA=" |
| 198 "</certificate></authentication>" |
| 199 "</description>" |
| 200 "<transport xmlns='http://www.google.com/transport/p2p'/>" |
| 201 "</content>" |
| 202 "</jingle>" |
| 203 "</cli:iq>"; |
194 | 204 |
195 scoped_ptr<XmlElement> source_message( | 205 scoped_ptr<XmlElement> source_message( |
196 XmlElement::ForStr(kTestTransportInfoMessage)); | 206 XmlElement::ForStr(kTestSessionAcceptMessage)); |
197 ASSERT_TRUE(source_message.get()); | 207 ASSERT_TRUE(source_message.get()); |
198 | 208 |
199 EXPECT_TRUE(JingleMessage::IsJingleMessage(source_message.get())); | 209 EXPECT_TRUE(JingleMessage::IsJingleMessage(source_message.get())); |
| 210 |
| 211 JingleMessage message; |
| 212 std::string error; |
| 213 EXPECT_TRUE(message.ParseXml(source_message.get(), &error)) << error; |
| 214 |
| 215 EXPECT_EQ(message.action, JingleMessage::SESSION_ACCEPT); |
| 216 |
| 217 scoped_ptr<XmlElement> formatted_message(message.ToXml()); |
| 218 ASSERT_TRUE(formatted_message.get()); |
| 219 EXPECT_TRUE(VerifyXml(source_message.get(), formatted_message.get(), &error)) |
| 220 << error; |
| 221 } |
| 222 |
| 223 TEST(JingleMessageTest, IceTransportInfo) { |
| 224 const char* kTestIceTransportInfoMessage = |
| 225 "<cli:iq to='user@gmail.com/chromoting016DBB07' type='set' " |
| 226 "xmlns:cli='jabber:client'>" |
| 227 "<jingle xmlns='urn:xmpp:jingle:1' action='transport-info' " |
| 228 "sid='2227053353'>" |
| 229 "<content name='chromoting' creator='initiator'>" |
| 230 "<transport xmlns='google:remoting:ice'>" |
| 231 "<credentials channel='event' ufrag='tPUyEAmQrEw3y7hi' " |
| 232 "password='2iRdhLfawKZC5ydJ'/>" |
| 233 "<credentials channel='video' ufrag='EPK3CXo5sTLJSez0' " |
| 234 "password='eM0VUfUkZ+1Pyi0M'/>" |
| 235 "<candidate name='event' foundation='725747215' " |
| 236 "address='172.23.164.186' port='59089' type='local' " |
| 237 "protocol='udp' priority='2122194688' generation='0'/>" |
| 238 "<candidate name='video' foundation='3623806809' " |
| 239 "address='172.23.164.186' port='57040' type='local' " |
| 240 "protocol='udp' priority='2122194688' generation='0'/>" |
| 241 "</transport>" |
| 242 "</content>" |
| 243 "</jingle>" |
| 244 "</cli:iq>"; |
| 245 |
| 246 scoped_ptr<XmlElement> source_message( |
| 247 XmlElement::ForStr(kTestIceTransportInfoMessage)); |
| 248 ASSERT_TRUE(source_message.get()); |
| 249 |
| 250 EXPECT_TRUE(JingleMessage::IsJingleMessage(source_message.get())); |
| 251 |
| 252 JingleMessage message; |
| 253 std::string error; |
| 254 EXPECT_TRUE(message.ParseXml(source_message.get(), &error)) << error; |
| 255 |
| 256 EXPECT_EQ(message.action, JingleMessage::TRANSPORT_INFO); |
| 257 EXPECT_EQ(message.candidates.size(), 2U); |
| 258 |
| 259 scoped_ptr<XmlElement> formatted_message(message.ToXml()); |
| 260 ASSERT_TRUE(formatted_message.get()); |
| 261 EXPECT_TRUE(VerifyXml(source_message.get(), formatted_message.get(), &error)) |
| 262 << error; |
| 263 } |
| 264 |
| 265 TEST(JingleMessageTest, GiceTransportInfo) { |
| 266 const char* kTestGiceTransportInfoMessage = |
| 267 "<cli:iq to='user@gmail.com/chromoting016DBB07' type='set' " |
| 268 "xmlns:cli='jabber:client'>" |
| 269 "<jingle xmlns='urn:xmpp:jingle:1' action='transport-info' " |
| 270 "sid='2227053353'>" |
| 271 "<content name='chromoting' creator='initiator'>" |
| 272 "<transport xmlns='http://www.google.com/transport/p2p'>" |
| 273 "<candidate name='event' address='172.23.164.186' port='57040' " |
| 274 "preference='1' username='tPUyEAmQrEw3y7hi' " |
| 275 "protocol='udp' generation='0' " |
| 276 "password='2iRdhLfawKZC5ydJ' type='local'/>" |
| 277 "<candidate name='video' address='172.23.164.186' port='42171' " |
| 278 "preference='1' username='EPK3CXo5sTLJSez0' " |
| 279 "protocol='udp' generation='0' " |
| 280 "password='eM0VUfUkZ+1Pyi0M' type='local'/>" |
| 281 "</transport>" |
| 282 "</content>" |
| 283 "</jingle>" |
| 284 "</cli:iq>"; |
| 285 |
| 286 scoped_ptr<XmlElement> source_message( |
| 287 XmlElement::ForStr(kTestGiceTransportInfoMessage)); |
| 288 ASSERT_TRUE(source_message.get()); |
| 289 |
| 290 EXPECT_TRUE(JingleMessage::IsJingleMessage(source_message.get())); |
200 | 291 |
201 JingleMessage message; | 292 JingleMessage message; |
202 std::string error; | 293 std::string error; |
203 EXPECT_TRUE(message.ParseXml(source_message.get(), &error)) << error; | 294 EXPECT_TRUE(message.ParseXml(source_message.get(), &error)) << error; |
204 | 295 |
205 EXPECT_EQ(message.action, JingleMessage::TRANSPORT_INFO); | 296 EXPECT_EQ(message.action, JingleMessage::TRANSPORT_INFO); |
206 EXPECT_EQ(message.candidates.size(), 2U); | 297 EXPECT_EQ(message.candidates.size(), 2U); |
207 | 298 |
208 scoped_ptr<XmlElement> formatted_message(message.ToXml()); | 299 scoped_ptr<XmlElement> formatted_message(message.ToXml()); |
209 ASSERT_TRUE(formatted_message.get()); | 300 ASSERT_TRUE(formatted_message.get()); |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 EXPECT_FALSE(JingleMessage::IsJingleMessage(source_message.get())); | 456 EXPECT_FALSE(JingleMessage::IsJingleMessage(source_message.get())); |
366 | 457 |
367 JingleMessage message; | 458 JingleMessage message; |
368 std::string error; | 459 std::string error; |
369 EXPECT_FALSE(message.ParseXml(source_message.get(), &error)); | 460 EXPECT_FALSE(message.ParseXml(source_message.get(), &error)); |
370 EXPECT_FALSE(error.empty()); | 461 EXPECT_FALSE(error.empty()); |
371 } | 462 } |
372 | 463 |
373 } // namespace protocol | 464 } // namespace protocol |
374 } // namespace remoting | 465 } // namespace remoting |
OLD | NEW |