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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/signaling/signaling_address.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/signaling/signaling_address_unittest.cc
diff --git a/remoting/signaling/signaling_address_unittest.cc b/remoting/signaling/signaling_address_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..92e2f872f9292cd21cb6b61535fb1ff1ea164236
--- /dev/null
+++ b/remoting/signaling/signaling_address_unittest.cc
@@ -0,0 +1,191 @@
+// Copyright 2017 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 "remoting/signaling/signaling_address.h"
+
+#include <memory>
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/libjingle_xmpp/xmllite/xmlelement.h"
+
+using buzz::QName;
+
+namespace remoting {
+
+namespace {
+
+std::unique_ptr<buzz::XmlElement> GetEmptyJingleMessage() {
+ return std::unique_ptr<buzz::XmlElement>(buzz::XmlElement::ForStr(
+ "<iq xmlns='jabber:client'><jingle xmlns='urn:xmpp:jingle:1'/></iq>"));
+}
+
+} // namespace
+
+TEST(SignalingAddressTest, ParseAddress) {
+ const char kTestMessage[] =
+ "<cli:iq from='remoting@bot.talk.google.com' "
+ " to='user@gmail.com/chromiumsy5C6A652D' type='set' "
+ " xmlns:cli='jabber:client'>"
+ " <jingle action='session-info' "
+ " sid='2227053353' xmlns='urn:xmpp:jingle:1' "
+ " from-channel='lcs' "
+ " from-endpoint-id='user@gmail.com/xBrnereror='>"
+ " </jingle>"
+ "</cli:iq>";
+
+ std::unique_ptr<buzz::XmlElement> message(
+ buzz::XmlElement::ForStr(kTestMessage));
+ std::string error;
+
+ SignalingAddress from =
+ SignalingAddress::Parse(message.get(), SignalingAddress::FROM, &error);
+ EXPECT_FALSE(from.empty());
+ EXPECT_TRUE(error.empty());
+
+ EXPECT_EQ("remoting@bot.talk.google.com", from.jid());
+ EXPECT_EQ(SignalingAddress::Channel::LCS, from.channel());
+ EXPECT_EQ("user@gmail.com/xBrnereror=", from.endpoint_id());
+ EXPECT_EQ("user@gmail.com/xBrnereror=", from.id());
+
+ SignalingAddress to =
+ SignalingAddress::Parse(message.get(), SignalingAddress::TO, &error);
+ EXPECT_FALSE(to.empty());
+ EXPECT_TRUE(error.empty());
+
+ EXPECT_EQ("user@gmail.com/chromiumsy5C6A652D", to.jid());
+ EXPECT_EQ(SignalingAddress::Channel::XMPP, to.channel());
+ EXPECT_EQ("", to.endpoint_id());
+ EXPECT_EQ("user@gmail.com/chromiumsy5C6A652D", to.id());
+}
+
+TEST(SignalingAddressTest, ParseErrorAddress) {
+ const char kTestMessage[] =
+ "<cli:iq from='remoting@bot.talk.google.com' "
+ "to='user@gmail.com/chromiumsy5C6A652D' type='error' "
+ " xmlns:cli='jabber:client'>"
+ " <jingle action='session-info' "
+ " sid='2227053353' xmlns='urn:xmpp:jingle:1' "
+ " to-channel='lcs' "
+ " to-endpoint-id='user@gmail.com/xBrnereror='>"
+ " </jingle>"
+ "<error/>"
+ "</cli:iq>";
+
+ std::unique_ptr<buzz::XmlElement> message(
+ buzz::XmlElement::ForStr(kTestMessage));
+ std::string error;
+
+ SignalingAddress from =
+ SignalingAddress::Parse(message.get(), SignalingAddress::FROM, &error);
+ EXPECT_FALSE(from.empty());
+
+ EXPECT_EQ("remoting@bot.talk.google.com", from.jid());
+ EXPECT_EQ(SignalingAddress::Channel::LCS, from.channel());
+ EXPECT_EQ("user@gmail.com/xBrnereror=", from.endpoint_id());
+ EXPECT_EQ("user@gmail.com/xBrnereror=", from.id());
+
+ SignalingAddress to =
+ SignalingAddress::Parse(message.get(), SignalingAddress::TO, &error);
+ EXPECT_FALSE(to.empty());
+
+ EXPECT_EQ("user@gmail.com/chromiumsy5C6A652D", to.jid());
+ EXPECT_EQ(SignalingAddress::Channel::XMPP, to.channel());
+ EXPECT_EQ("", to.endpoint_id());
+ EXPECT_EQ("user@gmail.com/chromiumsy5C6A652D", to.id());
+}
+
+TEST(SignalingAddressTest, ParseInvalidBotAddress) {
+ // Parse a message with LCS address and invalid from field.
+ const char kTestMessage[] =
+ "<cli:iq from='invalid_address@google.com' "
+ "to='user@gmail.com/chromiumsy5C6A652D' type='result' "
+ " xmlns:cli='jabber:client'>"
+ " <jingle action='session-info' "
+ " sid='2227053353' xmlns='urn:xmpp:jingle:1' "
+ " from-channel='lcs' "
+ " from-endpoint-id='user@gmail.com/xBrnereror='>"
+ " </jingle>"
+ "</cli:iq>";
+
+ std::unique_ptr<buzz::XmlElement> message(
+ buzz::XmlElement::ForStr(kTestMessage));
+ std::string error;
+
+ SignalingAddress from =
+ SignalingAddress::Parse(message.get(), SignalingAddress::FROM, &error);
+ EXPECT_TRUE(from.empty());
+ EXPECT_FALSE(error.empty());
+}
+
+TEST(SignalingAddressTest, ParseMissingEndpointId) {
+ // Parse a message with a missing endpoint-id field.
+ const char kTestMessage[] =
+ "<cli:iq from='invalid_address@google.com' "
+ " to='user@gmail.com/chromiumsy5C6A652D' type='set' "
+ " xmlns:cli='jabber:client'>"
+ " <jingle action='session-info' "
+ " sid='2227053353' xmlns='urn:xmpp:jingle:1' "
+ " from-channel='lcs'>"
+ " </jingle>"
+ "</cli:iq>";
+
+ std::unique_ptr<buzz::XmlElement> message(
+ buzz::XmlElement::ForStr(kTestMessage));
+ std::string error;
+
+ SignalingAddress from =
+ SignalingAddress::Parse(message.get(), SignalingAddress::FROM, &error);
+ EXPECT_TRUE(from.empty());
+ EXPECT_FALSE(error.empty());
+}
+
+TEST(SignalingAddressTest, FormatToDirect) {
+ std::unique_ptr<buzz::XmlElement> message = GetEmptyJingleMessage();
+ SignalingAddress addr("user@domain.com/resource");
+ addr.SetInMessage(message.get(), SignalingAddress::TO);
+ EXPECT_EQ("user@domain.com/resource", message->Attr(QName("", "to")));
+ buzz::XmlElement* jingle =
+ message->FirstNamed(buzz::QName("urn:xmpp:jingle:1", "jingle"));
+ EXPECT_EQ("", jingle->Attr(QName("", "to-channel")));
+ EXPECT_EQ("", jingle->Attr(QName("", "to-endpoint-id")));
+}
+
+TEST(SignalingAddressTest, FormatToLcs) {
+ std::unique_ptr<buzz::XmlElement> message = GetEmptyJingleMessage();
+ SignalingAddress addr("remoting@bot.server.com", "user_id",
+ SignalingAddress::Channel::LCS);
+
+ addr.SetInMessage(message.get(), SignalingAddress::TO);
+ EXPECT_EQ("remoting@bot.server.com", message->Attr(QName("", "to")));
+ buzz::XmlElement* jingle =
+ message->FirstNamed(buzz::QName("urn:xmpp:jingle:1", "jingle"));
+ EXPECT_EQ("lcs", jingle->Attr(QName("", "to-channel")));
+ EXPECT_EQ("user_id", jingle->Attr(QName("", "to-endpoint-id")));
+}
+
+TEST(SignalingAddressTest, FormatFromDirect) {
+ std::unique_ptr<buzz::XmlElement> message = GetEmptyJingleMessage();
+ SignalingAddress addr("user@domain.com/resource");
+ addr.SetInMessage(message.get(), SignalingAddress::FROM);
+ EXPECT_EQ("user@domain.com/resource", message->Attr(QName("", "from")));
+ buzz::XmlElement* jingle =
+ message->FirstNamed(buzz::QName("urn:xmpp:jingle:1", "jingle"));
+ EXPECT_EQ("", jingle->Attr(QName("", "from-channel")));
+ EXPECT_EQ("", jingle->Attr(QName("", "from-endpoint-id")));
+}
+
+TEST(SignalingAddressTest, FormatFromLcs) {
+ std::unique_ptr<buzz::XmlElement> message = GetEmptyJingleMessage();
+ SignalingAddress addr("remoting@bot.server.com", "user_id",
+ SignalingAddress::Channel::LCS);
+
+ addr.SetInMessage(message.get(), SignalingAddress::FROM);
+ EXPECT_EQ("remoting@bot.server.com", message->Attr(QName("", "from")));
+ buzz::XmlElement* jingle =
+ message->FirstNamed(buzz::QName("urn:xmpp:jingle:1", "jingle"));
+ EXPECT_EQ("lcs", jingle->Attr(QName("", "from-channel")));
+ EXPECT_EQ("user_id", jingle->Attr(QName("", "from-endpoint-id")));
+}
+
+} // namespace remoting
« 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