chromium/chrome/browser/ash/printing/oauth2/log_entry_unittest.cc

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ash/printing/oauth2/log_entry.h"

#include <string>

#include "chrome/browser/ash/printing/oauth2/status_code.h"
#include "chromeos/printing/uri.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"

namespace ash::printing::oauth2 {
namespace {

TEST(PrintingOAuth2LogEntryTest, LogEntry) {
  const std::string log_entry = LogEntry(
      "message", "method", GURL("http://abc.de:123/fgh?ij=kl#mn"),
      StatusCode::kServerError, chromeos::Uri("http://opq.rs:456/tu?vq=x#yz"));
  EXPECT_EQ(log_entry,
            "oauth method;server=http://abc.de:123/fgh?ij=kl#mn;"
            "endpoint=http://opq.rs:456/tu?vq=x#yz;status=ServerError:"
            " message");
}

TEST(PrintingOAuth2LogEntryTest, LogEntryMessageAndMethodOnly) {
  const std::string log_entry = LogEntry("message", "method", GURL());
  EXPECT_EQ(log_entry, "oauth method: message");
}

TEST(PrintingOAuth2LogEntryTest, LogEntryEmptyMessageAndStatus) {
  const std::string log_entry =
      LogEntry("", "method", GURL("http://abc.de:123/fgh?ij=kl#mn"),
               std::nullopt, chromeos::Uri("http://opq.rs:456/tu?vq=x#yz"));
  EXPECT_EQ(log_entry,
            "oauth method;server=http://abc.de:123/fgh?ij=kl#mn;"
            "endpoint=http://opq.rs:456/tu?vq=x#yz");
}

}  // namespace
}  // namespace ash::printing::oauth2