| // Copyright 2019 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_id_util.h" |
| |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace remoting { |
| |
| TEST(SignalingIdUtilTest, NormalizeSignalingId) { |
| EXPECT_EQ(NormalizeSignalingId("USER@DOMAIN.com"), "user@domain.com"); |
| EXPECT_EQ(NormalizeSignalingId("user@domain.com"), "user@domain.com"); |
| EXPECT_EQ(NormalizeSignalingId("USER@DOMAIN.com/RESOURCE"), |
| "user@domain.com/RESOURCE"); |
| EXPECT_EQ(NormalizeSignalingId("USER@DOMAIN.com/"), "user@domain.com/"); |
| |
| // Jabber ID normalization |
| EXPECT_EQ("user.mixed.case@googlemail.com/RESOURCE", |
| NormalizeSignalingId("User.Mixed.Case@GOOGLEMAIL.com/RESOURCE")); |
| |
| // FTL ID normalization |
| EXPECT_EQ("user@domain.com/chromoting_ftl_abc123", |
| NormalizeSignalingId("USER@DOMAIN.com/chromoting_ftl_abc123")); |
| EXPECT_EQ("user@domain.com/chromoting_ftl_abc123", |
| NormalizeSignalingId(" USER@DOMAIN.com/chromoting_ftl_abc123")); |
| EXPECT_EQ( |
| "usermixedcase@gmail.com/chromoting_ftl_abc123", |
| NormalizeSignalingId("User.Mixed.Case@GMAIL.com/chromoting_ftl_abc123")); |
| EXPECT_EQ("usermixedcase@gmail.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", |
| NormalizeSignalingId(" Invalid.User/chromoting_ftl_abc123")); |
| EXPECT_EQ("invalid.user@/chromoting_ftl_abc123", |
| NormalizeSignalingId(" Invalid.User@/chromoting_ftl_abc123")); |
| EXPECT_EQ("@gmail.com/chromoting_ftl_abc123", |
| NormalizeSignalingId("@googlemail.com/chromoting_ftl_abc123")); |
| } |
| |
| TEST(SignalingIdUtilTest, SplitSignalingIdResource) { |
| std::string email; |
| std::string resource_suffix; |
| |
| EXPECT_TRUE( |
| SplitSignalingIdResource("user@domain/resource", nullptr, nullptr)); |
| EXPECT_TRUE(SplitSignalingIdResource("user@domain/resource", &email, |
| &resource_suffix)); |
| EXPECT_EQ(email, "user@domain"); |
| EXPECT_EQ(resource_suffix, "resource"); |
| |
| EXPECT_FALSE(SplitSignalingIdResource("user@domain", nullptr, nullptr)); |
| EXPECT_FALSE( |
| SplitSignalingIdResource("user@domain", &email, &resource_suffix)); |
| EXPECT_EQ(email, "user@domain"); |
| EXPECT_EQ(resource_suffix, ""); |
| } |
| |
| } // namespace remoting |