Commit 0a1c1f34 authored by Yuwei Huang's avatar Yuwei Huang Committed by Commit Bot

[remoting] Refactor jid_util

This CL renames jid_util.* to signaling_id_util.* and renames its
functions from Jid to SignalingId.

Bug: 983282
Change-Id: I94b50afc6b9c33031905e17c5c55ada3d846e9a0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1853868Reviewed-by: default avatarJamie Walch <jamiewalch@chromium.org>
Commit-Queue: Yuwei Huang <yuweih@chromium.org>
Cr-Commit-Position: refs/heads/master@{#704827}
parent 12948a14
...@@ -20,8 +20,8 @@ ...@@ -20,8 +20,8 @@
#include "remoting/protocol/transport_context.h" #include "remoting/protocol/transport_context.h"
#include "remoting/protocol/video_renderer.h" #include "remoting/protocol/video_renderer.h"
#include "remoting/protocol/webrtc_connection_to_host.h" #include "remoting/protocol/webrtc_connection_to_host.h"
#include "remoting/signaling/jid_util.h"
#include "remoting/signaling/signaling_address.h" #include "remoting/signaling/signaling_address.h"
#include "remoting/signaling/signaling_id_util.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h" #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
namespace remoting { namespace remoting {
...@@ -73,7 +73,7 @@ void ChromotingClient::Start( ...@@ -73,7 +73,7 @@ void ChromotingClient::Start(
DCHECK(thread_checker_.CalledOnValidThread()); DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!session_manager_); // Start must not be called more than once. DCHECK(!session_manager_); // Start must not be called more than once.
host_jid_ = NormalizeJid(host_jid); host_jid_ = NormalizeSignalingId(host_jid);
local_capabilities_ = capabilities; local_capabilities_ = capabilities;
if (!protocol_config_) { if (!protocol_config_) {
......
...@@ -37,8 +37,8 @@ ...@@ -37,8 +37,8 @@
#include "remoting/protocol/network_settings.h" #include "remoting/protocol/network_settings.h"
#include "remoting/protocol/transport_context.h" #include "remoting/protocol/transport_context.h"
#include "remoting/protocol/validating_authenticator.h" #include "remoting/protocol/validating_authenticator.h"
#include "remoting/signaling/jid_util.h"
#include "remoting/signaling/log_to_server.h" #include "remoting/signaling/log_to_server.h"
#include "remoting/signaling/signaling_id_util.h"
#include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/shared_url_loader_factory.h"
namespace remoting { namespace remoting {
...@@ -224,7 +224,7 @@ void It2MeHost::OnAccessDenied(const std::string& jid) { ...@@ -224,7 +224,7 @@ void It2MeHost::OnAccessDenied(const std::string& jid) {
++failed_login_attempts_; ++failed_login_attempts_;
if (failed_login_attempts_ == kMaxLoginAttempts) { if (failed_login_attempts_ == kMaxLoginAttempts) {
DisconnectOnNetworkThread(); DisconnectOnNetworkThread();
} else if (connecting_jid_ == NormalizeJid(jid)) { } else if (connecting_jid_ == NormalizeSignalingId(jid)) {
DCHECK_EQ(state_, kConnecting); DCHECK_EQ(state_, kConnecting);
connecting_jid_.clear(); connecting_jid_.clear();
confirmation_dialog_proxy_.reset(); confirmation_dialog_proxy_.reset();
...@@ -240,7 +240,7 @@ void It2MeHost::OnClientConnected(const std::string& jid) { ...@@ -240,7 +240,7 @@ void It2MeHost::OnClientConnected(const std::string& jid) {
CHECK_NE(state_, kConnected); CHECK_NE(state_, kConnected);
std::string client_username; std::string client_username;
if (!SplitJidResource(jid, &client_username, /*resource=*/nullptr)) { if (!SplitSignalingIdResource(jid, &client_username, /*resource=*/nullptr)) {
LOG(WARNING) << "Incorrectly formatted JID received: " << jid; LOG(WARNING) << "Incorrectly formatted JID received: " << jid;
client_username = jid; client_username = jid;
} }
...@@ -501,7 +501,7 @@ void It2MeHost::ValidateConnectionDetails( ...@@ -501,7 +501,7 @@ void It2MeHost::ValidateConnectionDetails(
// First ensure the JID we received is valid. // First ensure the JID we received is valid.
std::string client_username; std::string client_username;
if (!SplitJidResource(original_remote_jid, &client_username, if (!SplitSignalingIdResource(original_remote_jid, &client_username,
/*resource=*/nullptr)) { /*resource=*/nullptr)) {
LOG(ERROR) << "Rejecting incoming connection from " << original_remote_jid LOG(ERROR) << "Rejecting incoming connection from " << original_remote_jid
<< ": Invalid JID."; << ": Invalid JID.";
...@@ -510,7 +510,7 @@ void It2MeHost::ValidateConnectionDetails( ...@@ -510,7 +510,7 @@ void It2MeHost::ValidateConnectionDetails(
DisconnectOnNetworkThread(); DisconnectOnNetworkThread();
return; return;
} }
std::string remote_jid = NormalizeJid(original_remote_jid); std::string remote_jid = NormalizeSignalingId(original_remote_jid);
if (client_username.empty()) { if (client_username.empty()) {
LOG(ERROR) << "Invalid user name passed in: " << remote_jid; LOG(ERROR) << "Invalid user name passed in: " << remote_jid;
......
...@@ -18,9 +18,9 @@ ...@@ -18,9 +18,9 @@
#include "remoting/host/host_details.h" #include "remoting/host/host_details.h"
#include "remoting/protocol/errors.h" #include "remoting/protocol/errors.h"
#include "remoting/signaling/iq_sender.h" #include "remoting/signaling/iq_sender.h"
#include "remoting/signaling/jid_util.h"
#include "remoting/signaling/signal_strategy.h" #include "remoting/signaling/signal_strategy.h"
#include "remoting/signaling/signaling_address.h" #include "remoting/signaling/signaling_address.h"
#include "remoting/signaling/signaling_id_util.h"
#include "third_party/libjingle_xmpp/xmllite/xmlelement.h" #include "third_party/libjingle_xmpp/xmllite/xmlelement.h"
#include "third_party/libjingle_xmpp/xmpp/constants.h" #include "third_party/libjingle_xmpp/xmpp/constants.h"
...@@ -152,7 +152,7 @@ std::unique_ptr<XmlElement> XmppRegisterSupportHostRequest::CreateSignature( ...@@ -152,7 +152,7 @@ std::unique_ptr<XmlElement> XmppRegisterSupportHostRequest::CreateSignature(
signature_tag->AddAttr(QName(kChromotingXmlNamespace, kSignatureTimeAttr), signature_tag->AddAttr(QName(kChromotingXmlNamespace, kSignatureTimeAttr),
time_str); time_str);
std::string message = NormalizeJid(jid) + ' ' + time_str; std::string message = NormalizeSignalingId(jid) + ' ' + time_str;
std::string signature(key_pair_->SignMessage(message)); std::string signature(key_pair_->SignMessage(message));
signature_tag->AddText(signature); signature_tag->AddText(signature);
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
#include "remoting/protocol/negotiating_host_authenticator.h" #include "remoting/protocol/negotiating_host_authenticator.h"
#include "remoting/protocol/rejecting_authenticator.h" #include "remoting/protocol/rejecting_authenticator.h"
#include "remoting/protocol/token_validator.h" #include "remoting/protocol/token_validator.h"
#include "remoting/signaling/jid_util.h"
#include "remoting/signaling/signaling_address.h" #include "remoting/signaling/signaling_address.h"
#include "remoting/signaling/signaling_id_util.h"
#include "third_party/libjingle_xmpp/xmllite/xmlelement.h" #include "third_party/libjingle_xmpp/xmllite/xmlelement.h"
namespace remoting { namespace remoting {
...@@ -71,8 +71,8 @@ std::unique_ptr<Authenticator> ...@@ -71,8 +71,8 @@ std::unique_ptr<Authenticator>
Me2MeHostAuthenticatorFactory::CreateAuthenticator( Me2MeHostAuthenticatorFactory::CreateAuthenticator(
const std::string& original_local_jid, const std::string& original_local_jid,
const std::string& original_remote_jid) { const std::string& original_remote_jid) {
std::string local_jid = NormalizeJid(original_local_jid); std::string local_jid = NormalizeSignalingId(original_local_jid);
std::string remote_jid = NormalizeJid(original_remote_jid); std::string remote_jid = NormalizeSignalingId(original_remote_jid);
std::string remote_jid_prefix; std::string remote_jid_prefix;
...@@ -81,7 +81,7 @@ Me2MeHostAuthenticatorFactory::CreateAuthenticator( ...@@ -81,7 +81,7 @@ Me2MeHostAuthenticatorFactory::CreateAuthenticator(
// where the host owner account does not have an email associated with it. // where the host owner account does not have an email associated with it.
// In those cases, the only guarantee we have is that JIDs for the same // In those cases, the only guarantee we have is that JIDs for the same
// account will have the same prefix. // account will have the same prefix.
if (!SplitJidResource(local_jid, &remote_jid_prefix, nullptr)) { if (!SplitSignalingIdResource(local_jid, &remote_jid_prefix, nullptr)) {
LOG(DFATAL) << "Invalid local JID:" << local_jid; LOG(DFATAL) << "Invalid local JID:" << local_jid;
return base::WrapUnique( return base::WrapUnique(
new RejectingAuthenticator(Authenticator::INVALID_CREDENTIALS)); new RejectingAuthenticator(Authenticator::INVALID_CREDENTIALS));
...@@ -125,8 +125,8 @@ Me2MeHostAuthenticatorFactory::CreateAuthenticator( ...@@ -125,8 +125,8 @@ Me2MeHostAuthenticatorFactory::CreateAuthenticator(
} }
if (!local_cert_.empty() && key_pair_.get()) { if (!local_cert_.empty() && key_pair_.get()) {
std::string normalized_local_jid = NormalizeJid(local_jid); std::string normalized_local_jid = NormalizeSignalingId(local_jid);
std::string normalized_remote_jid = NormalizeJid(remote_jid); std::string normalized_remote_jid = NormalizeSignalingId(remote_jid);
if (token_validator_factory_) { if (token_validator_factory_) {
return NegotiatingHostAuthenticator::CreateWithThirdPartyAuth( return NegotiatingHostAuthenticator::CreateWithThirdPartyAuth(
......
...@@ -23,8 +23,6 @@ static_library("signaling") { ...@@ -23,8 +23,6 @@ static_library("signaling") {
"ftl_signal_strategy.h", "ftl_signal_strategy.h",
"iq_sender.cc", "iq_sender.cc",
"iq_sender.h", "iq_sender.h",
"jid_util.cc",
"jid_util.h",
"message_reception_channel.h", "message_reception_channel.h",
"message_tracker.cc", "message_tracker.cc",
"message_tracker.h", "message_tracker.h",
...@@ -40,6 +38,8 @@ static_library("signaling") { ...@@ -40,6 +38,8 @@ static_library("signaling") {
"signal_strategy.h", "signal_strategy.h",
"signaling_address.cc", "signaling_address.cc",
"signaling_address.h", "signaling_address.h",
"signaling_id_util.cc",
"signaling_id_util.h",
"xmpp_log_to_server.cc", "xmpp_log_to_server.cc",
"xmpp_log_to_server.h", "xmpp_log_to_server.h",
] ]
...@@ -128,13 +128,13 @@ source_set("unit_tests") { ...@@ -128,13 +128,13 @@ source_set("unit_tests") {
"ftl_registration_manager_unittest.cc", "ftl_registration_manager_unittest.cc",
"ftl_signal_strategy_unittest.cc", "ftl_signal_strategy_unittest.cc",
"iq_sender_unittest.cc", "iq_sender_unittest.cc",
"jid_util_unittest.cc",
"message_tracker_unittest.cc", "message_tracker_unittest.cc",
"push_notification_subscriber_unittest.cc", "push_notification_subscriber_unittest.cc",
"remoting_log_to_server_unittest.cc", "remoting_log_to_server_unittest.cc",
"server_log_entry_unittest.cc", "server_log_entry_unittest.cc",
"server_log_entry_unittest.h", "server_log_entry_unittest.h",
"signaling_address_unittest.cc", "signaling_address_unittest.cc",
"signaling_id_util_unittest.cc",
"xmpp_log_to_server_unittest.cc", "xmpp_log_to_server_unittest.cc",
] ]
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include "base/stl_util.h" #include "base/stl_util.h"
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "remoting/signaling/jid_util.h" #include "remoting/signaling/signaling_id_util.h"
#include "third_party/libjingle_xmpp/xmllite/xmlelement.h" #include "third_party/libjingle_xmpp/xmllite/xmlelement.h"
#include "third_party/libjingle_xmpp/xmpp/constants.h" #include "third_party/libjingle_xmpp/xmpp/constants.h"
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "remoting/signaling/jid_util.h"
#include "remoting/signaling/signal_strategy.h" #include "remoting/signaling/signal_strategy.h"
#include "remoting/signaling/signaling_id_util.h"
#include "third_party/libjingle_xmpp/xmllite/xmlelement.h" #include "third_party/libjingle_xmpp/xmllite/xmlelement.h"
#include "third_party/libjingle_xmpp/xmpp/constants.h" #include "third_party/libjingle_xmpp/xmpp/constants.h"
...@@ -116,7 +116,7 @@ bool IqSender::OnSignalStrategyIncomingStanza(const jingle_xmpp::XmlElement* sta ...@@ -116,7 +116,7 @@ bool IqSender::OnSignalStrategyIncomingStanza(const jingle_xmpp::XmlElement* sta
IqRequest* request = it->second; IqRequest* request = it->second;
if (NormalizeJid(request->addressee_) != NormalizeJid(from)) { if (NormalizeSignalingId(request->addressee_) != NormalizeSignalingId(from)) {
LOG(ERROR) << "Received IQ response from an invalid JID. Ignoring it." LOG(ERROR) << "Received IQ response from an invalid JID. Ignoring it."
<< " Message received from: " << from << " Message received from: " << from
<< " Original JID: " << request->addressee_; << " Original JID: " << request->addressee_;
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "remoting/base/logging.h" #include "remoting/base/logging.h"
#include "remoting/signaling/iq_sender.h" #include "remoting/signaling/iq_sender.h"
#include "remoting/signaling/jid_util.h"
#include "remoting/signaling/signaling_address.h" #include "remoting/signaling/signaling_address.h"
#include "remoting/signaling/signaling_id_util.h"
#include "third_party/libjingle_xmpp/xmllite/xmlelement.h" #include "third_party/libjingle_xmpp/xmllite/xmlelement.h"
namespace remoting { namespace remoting {
...@@ -56,7 +56,7 @@ void PushNotificationSubscriber::Subscribe(const Subscription& subscription) { ...@@ -56,7 +56,7 @@ void PushNotificationSubscriber::Subscribe(const Subscription& subscription) {
<< subscription.channel << "."; << subscription.channel << ".";
std::string bare_jid; std::string bare_jid;
SplitJidResource(signal_strategy_->GetLocalAddress().id(), &bare_jid, SplitSignalingIdResource(signal_strategy_->GetLocalAddress().id(), &bare_jid,
nullptr); nullptr);
// Build a subscription request. // Build a subscription request.
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "base/strings/stringprintf.h" #include "base/strings/stringprintf.h"
#include "remoting/base/name_value_map.h" #include "remoting/base/name_value_map.h"
#include "remoting/signaling/jid_util.h" #include "remoting/signaling/signaling_id_util.h"
#include "third_party/libjingle_xmpp/xmllite/xmlelement.h" #include "third_party/libjingle_xmpp/xmllite/xmlelement.h"
namespace remoting { namespace remoting {
...@@ -31,7 +31,7 @@ jingle_xmpp::QName GetIdQName(SignalingAddress::Direction direction) { ...@@ -31,7 +31,7 @@ jingle_xmpp::QName GetIdQName(SignalingAddress::Direction direction) {
SignalingAddress::Channel GetChannelType(std::string address) { SignalingAddress::Channel GetChannelType(std::string address) {
std::string email; std::string email;
std::string resource; std::string resource;
bool has_resource = SplitJidResource(address, &email, &resource); bool has_resource = SplitSignalingIdResource(address, &email, &resource);
if (has_resource) { if (has_resource) {
if (resource.find(kFtlResourcePrefix) == 0) { if (resource.find(kFtlResourcePrefix) == 0) {
return SignalingAddress::Channel::FTL; return SignalingAddress::Channel::FTL;
...@@ -50,7 +50,7 @@ SignalingAddress::SignalingAddress(const std::string& address) { ...@@ -50,7 +50,7 @@ SignalingAddress::SignalingAddress(const std::string& address) {
switch (channel_) { switch (channel_) {
case Channel::XMPP: case Channel::XMPP:
case Channel::FTL: case Channel::FTL:
id_ = NormalizeJid(address); id_ = NormalizeSignalingId(address);
DCHECK(!id_.empty()) << "Missing signaling ID."; DCHECK(!id_.empty()) << "Missing signaling ID.";
break; break;
default: default:
...@@ -98,7 +98,7 @@ bool SignalingAddress::GetFtlInfo(std::string* username, ...@@ -98,7 +98,7 @@ bool SignalingAddress::GetFtlInfo(std::string* username,
return false; return false;
} }
std::string resource; std::string resource;
bool has_resource = SplitJidResource(id_, username, &resource); bool has_resource = SplitSignalingIdResource(id_, username, &resource);
DCHECK(has_resource); DCHECK(has_resource);
size_t ftl_resource_prefix_length = strlen(kFtlResourcePrefix); size_t ftl_resource_prefix_length = strlen(kFtlResourcePrefix);
DCHECK_LT(ftl_resource_prefix_length, resource.length()); DCHECK_LT(ftl_resource_prefix_length, resource.length());
......
// Copyright 2015 The Chromium Authors. All rights reserved. // Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "remoting/signaling/jid_util.h" #include "remoting/signaling/signaling_id_util.h"
#include <stddef.h> #include <stddef.h>
...@@ -18,21 +18,21 @@ constexpr char kGooglemailDomain[] = "googlemail.com"; ...@@ -18,21 +18,21 @@ constexpr char kGooglemailDomain[] = "googlemail.com";
} // namespace } // namespace
std::string NormalizeJid(const std::string& jid) { std::string NormalizeSignalingId(const std::string& id) {
std::string bare_jid; std::string email;
std::string resource; std::string resource;
if (SplitJidResource(jid, &bare_jid, &resource)) { if (SplitSignalingIdResource(id, &email, &resource)) {
std::string normalized_bare_jid = resource.find(kFtlResourcePrefix) == 0 std::string normalized_email = resource.find(kFtlResourcePrefix) == 0
? GetCanonicalEmail(bare_jid) ? GetCanonicalEmail(email)
: base::ToLowerASCII(bare_jid); : base::ToLowerASCII(email);
return normalized_bare_jid + "/" + resource; return normalized_email + "/" + resource;
} }
return base::ToLowerASCII(bare_jid); return base::ToLowerASCII(email);
} }
std::string GetCanonicalEmail(std::string email) { std::string GetCanonicalEmail(std::string email) {
DCHECK(email.find('/') == std::string::npos) DCHECK(email.find('/') == std::string::npos)
<< "You seemed to pass in a full JID. You should only pass in an email " << "You seemed to pass in a full ID. You should only pass in an email "
<< "address."; << "address.";
email = base::ToLowerASCII(email); email = base::ToLowerASCII(email);
base::TrimString(email, base::kWhitespaceASCII, &email); base::TrimString(email, base::kWhitespaceASCII, &email);
...@@ -54,13 +54,13 @@ std::string GetCanonicalEmail(std::string email) { ...@@ -54,13 +54,13 @@ std::string GetCanonicalEmail(std::string email) {
return email; return email;
} }
bool SplitJidResource(const std::string& full_jid, bool SplitSignalingIdResource(const std::string& full_id,
std::string* bare_jid, std::string* email,
std::string* resource) { std::string* resource) {
size_t slash_index = full_jid.find('/'); size_t slash_index = full_id.find('/');
if (slash_index == std::string::npos) { if (slash_index == std::string::npos) {
if (bare_jid) { if (email) {
*bare_jid = full_jid; *email = full_id;
} }
if (resource) { if (resource) {
resource->clear(); resource->clear();
...@@ -68,11 +68,11 @@ bool SplitJidResource(const std::string& full_jid, ...@@ -68,11 +68,11 @@ bool SplitJidResource(const std::string& full_jid,
return false; return false;
} }
if (bare_jid) { if (email) {
*bare_jid = full_jid.substr(0, slash_index); *email = full_id.substr(0, slash_index);
} }
if (resource) { if (resource) {
*resource = full_jid.substr(slash_index + 1); *resource = full_id.substr(slash_index + 1);
} }
return true; return true;
} }
......
// Copyright 2015 The Chromium Authors. All rights reserved. // Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef REMOTING_SIGNALING_JID_UTIL_H_ #ifndef REMOTING_SIGNALING_SIGNALING_ID_UTIL_H_
#define REMOTING_SIGNALING_JID_UTIL_H_ #define REMOTING_SIGNALING_SIGNALING_ID_UTIL_H_
#include <string> #include <string>
namespace remoting { namespace remoting {
// Normalizes the |jid|. If |jid| is an FTL ID then the email part will be // Normalizes |id|. If |id| is an FTL ID then the email part will be
// canonicalized. Otherwise it will simply convert case-insensitive parts (node // canonicalized. Otherwise it will simply convert case-insensitive parts (node
// and domain) to lower-case. // and domain) to lower-case.
std::string NormalizeJid(const std::string& jid); std::string NormalizeSignalingId(const std::string& id);
// Returns the canonical email for the given email. Note that this only works // Returns the canonical email for the given email. Note that this only works
// for email address (bare JID) and does not work for full JID. // for email address and does not work for full signaling ID.
// //
// Canonicalizes by: // Canonicalizes by:
// * changing to lowercase // * changing to lowercase
...@@ -23,17 +23,17 @@ std::string NormalizeJid(const std::string& jid); ...@@ -23,17 +23,17 @@ std::string NormalizeJid(const std::string& jid);
// * normalize email domain googlemail.com to gmail.com // * normalize email domain googlemail.com to gmail.com
std::string GetCanonicalEmail(std::string email); std::string GetCanonicalEmail(std::string email);
// Splits a JID into a bare JID and a resource suffix. Either |full_jid|, // Splits a signaling ID into a the email and a resource suffix. Either
// |resource|, or both may be null. If |full_jid| is already // |full_id|, |resource|, or both may be null. If |full_id| is already an email
// a bare JID, |resource| is set to the empty string. Returns true if // address, |resource| is set to the empty string. Returns true if |full_id|
// |full_jid| has a resource, false if not. // has a resource, false if not.
// //
// e.g. "user@domain/resource" -> "user@domain", "resource", true // e.g. "user@domain/resource" -> "user@domain", "resource", true
// "user@domain" -> "user@domain", "", false // "user@domain" -> "user@domain", "", false
bool SplitJidResource(const std::string& full_jid, bool SplitSignalingIdResource(const std::string& full_id,
std::string* bare_jid, std::string* email,
std::string* resource); std::string* resource);
} // namespace remoting } // namespace remoting
#endif // REMOTING_SIGNALING_JID_UTIL_H_ #endif // REMOTING_SIGNALING_SIGNALING_ID_UTIL_H_
// Copyright 2015 The Chromium Authors. All rights reserved. // Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "remoting/signaling/jid_util.h" #include "remoting/signaling/signaling_id_util.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
namespace remoting { namespace remoting {
TEST(JidUtilTest, NormalizeJid) { TEST(SignalingIdUtilTest, NormalizeSignalingId) {
EXPECT_EQ(NormalizeJid("USER@DOMAIN.com"), "user@domain.com"); EXPECT_EQ(NormalizeSignalingId("USER@DOMAIN.com"), "user@domain.com");
EXPECT_EQ(NormalizeJid("user@domain.com"), "user@domain.com"); EXPECT_EQ(NormalizeSignalingId("user@domain.com"), "user@domain.com");
EXPECT_EQ(NormalizeJid("USER@DOMAIN.com/RESOURCE"), EXPECT_EQ(NormalizeSignalingId("USER@DOMAIN.com/RESOURCE"),
"user@domain.com/RESOURCE"); "user@domain.com/RESOURCE");
EXPECT_EQ(NormalizeJid("USER@DOMAIN.com/"), "user@domain.com/"); EXPECT_EQ(NormalizeSignalingId("USER@DOMAIN.com/"), "user@domain.com/");
// Jabber ID normalization // Jabber ID normalization
EXPECT_EQ("user.mixed.case@googlemail.com/RESOURCE", EXPECT_EQ("user.mixed.case@googlemail.com/RESOURCE",
NormalizeJid("User.Mixed.Case@GOOGLEMAIL.com/RESOURCE")); NormalizeSignalingId("User.Mixed.Case@GOOGLEMAIL.com/RESOURCE"));
// FTL ID normalization // FTL ID normalization
EXPECT_EQ("user@domain.com/chromoting_ftl_abc123", EXPECT_EQ("user@domain.com/chromoting_ftl_abc123",
NormalizeJid("USER@DOMAIN.com/chromoting_ftl_abc123")); NormalizeSignalingId("USER@DOMAIN.com/chromoting_ftl_abc123"));
EXPECT_EQ("user@domain.com/chromoting_ftl_abc123", EXPECT_EQ("user@domain.com/chromoting_ftl_abc123",
NormalizeJid(" USER@DOMAIN.com/chromoting_ftl_abc123")); NormalizeSignalingId(" USER@DOMAIN.com/chromoting_ftl_abc123"));
EXPECT_EQ("usermixedcase@gmail.com/chromoting_ftl_abc123",
NormalizeJid("User.Mixed.Case@GMAIL.com/chromoting_ftl_abc123"));
EXPECT_EQ( EXPECT_EQ(
"usermixedcase@gmail.com/chromoting_ftl_abc123", "usermixedcase@gmail.com/chromoting_ftl_abc123",
NormalizeJid("User.Mixed.Case@GOOGLEMAIL.com/chromoting_ftl_abc123")); NormalizeSignalingId("User.Mixed.Case@GMAIL.com/chromoting_ftl_abc123"));
EXPECT_EQ("user.mixed.case@domain.com/chromoting_ftl_abc123", EXPECT_EQ("usermixedcase@gmail.com/chromoting_ftl_abc123",
NormalizeJid("User.Mixed.Case@DOMAIN.com/chromoting_ftl_abc123")); NormalizeSignalingId(
"User.Mixed.Case@GOOGLEMAIL.com/chromoting_ftl_abc123"));
EXPECT_EQ(
"user.mixed.case@domain.com/chromoting_ftl_abc123",
NormalizeSignalingId("User.Mixed.Case@DOMAIN.com/chromoting_ftl_abc123"));
EXPECT_EQ("invalid.user/chromoting_ftl_abc123", EXPECT_EQ("invalid.user/chromoting_ftl_abc123",
NormalizeJid(" Invalid.User/chromoting_ftl_abc123")); NormalizeSignalingId(" Invalid.User/chromoting_ftl_abc123"));
EXPECT_EQ("invalid.user@/chromoting_ftl_abc123", EXPECT_EQ("invalid.user@/chromoting_ftl_abc123",
NormalizeJid(" Invalid.User@/chromoting_ftl_abc123")); NormalizeSignalingId(" Invalid.User@/chromoting_ftl_abc123"));
EXPECT_EQ("@gmail.com/chromoting_ftl_abc123", EXPECT_EQ("@gmail.com/chromoting_ftl_abc123",
NormalizeJid("@googlemail.com/chromoting_ftl_abc123")); NormalizeSignalingId("@googlemail.com/chromoting_ftl_abc123"));
} }
TEST(JidUtilTest, SplitJidResource) { TEST(SignalingIdUtilTest, SplitSignalingIdResource) {
std::string bare_jid; std::string email;
std::string resource_suffix; std::string resource_suffix;
EXPECT_TRUE(SplitJidResource("user@domain/resource", nullptr, nullptr));
EXPECT_TRUE( EXPECT_TRUE(
SplitJidResource("user@domain/resource", &bare_jid, &resource_suffix)); SplitSignalingIdResource("user@domain/resource", nullptr, nullptr));
EXPECT_EQ(bare_jid, "user@domain"); EXPECT_TRUE(SplitSignalingIdResource("user@domain/resource", &email,
&resource_suffix));
EXPECT_EQ(email, "user@domain");
EXPECT_EQ(resource_suffix, "resource"); EXPECT_EQ(resource_suffix, "resource");
EXPECT_FALSE(SplitJidResource("user@domain", nullptr, nullptr)); EXPECT_FALSE(SplitSignalingIdResource("user@domain", nullptr, nullptr));
EXPECT_FALSE(SplitJidResource("user@domain", &bare_jid, &resource_suffix)); EXPECT_FALSE(
EXPECT_EQ(bare_jid, "user@domain"); SplitSignalingIdResource("user@domain", &email, &resource_suffix));
EXPECT_EQ(email, "user@domain");
EXPECT_EQ(resource_suffix, ""); EXPECT_EQ(resource_suffix, "");
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment