// Copyright (c) 2011 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/base/auth_token_util.h"
#include "remoting/base/constants.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace remoting {
namespace {

TEST(AuthTokenUtilTest, ParseAuthTokenWithService) {
  std::string auth_token;
  std::string auth_service;

  ParseAuthTokenWithService("service:token", &auth_token, &auth_service);
  EXPECT_EQ("token", auth_token);
  EXPECT_EQ("service", auth_service);

  // Check for legacy support.
  ParseAuthTokenWithService("token2", &auth_token, &auth_service);
  EXPECT_EQ("token2", auth_token);
  EXPECT_EQ(std::string(kChromotingTokenDefaultServiceName), auth_service);

  ParseAuthTokenWithService("just_service:", &auth_token, &auth_service);
  EXPECT_EQ("", auth_token);
  EXPECT_EQ("just_service", auth_service);

  ParseAuthTokenWithService("yay:token:has:colons", &auth_token, &auth_service);
  EXPECT_EQ("token:has:colons", auth_token);
  EXPECT_EQ("yay", auth_service);
}

}  // namespace

}  // namespace remoting