blob: ccd40e2dacba47e66eba8365b1de6807a6817df8 [file] [log] [blame]
// Copyright 2020 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 "chrome/browser/chromeos/printing/print_management/print_job_info_mojom_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
#include "chrome/browser/chromeos/printing/history/print_job_info.pb.h"
#include "chromeos/components/print_management/mojom/printing_manager.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace chromeos {
namespace proto = printing::proto;
namespace mojom = printing::printing_manager::mojom;
namespace {
constexpr char kName[] = "name";
constexpr char kUri[] = "ipp://192.168.1.5";
constexpr char kTitle[] = "title";
constexpr char kId[] = "id";
constexpr int64_t kJobCreationTime = 0;
constexpr uint32_t kPagesNumber = 3;
proto::PrintJobInfo CreatePrintJobInfoProto() {
// Create Printer proto.
proto::Printer printer;
printer.set_name(kName);
printer.set_uri(kUri);
// Create PrintJobInfo proto.
proto::PrintJobInfo print_job_info;
print_job_info.set_id(kId);
print_job_info.set_title(kTitle);
print_job_info.set_status(
printing::proto::PrintJobInfo_PrintJobStatus_PRINTED);
print_job_info.set_creation_time(
static_cast<int64_t>(base::Time::UnixEpoch().ToJsTime()));
print_job_info.set_number_of_pages(kPagesNumber);
*print_job_info.mutable_printer() = printer;
return print_job_info;
}
} // namespace
TEST(PrintJobInfoMojomConversionsTest, PrintJobProtoToMojom) {
mojom::PrintJobInfoPtr print_job_mojo =
printing::print_management::PrintJobProtoToMojom(
CreatePrintJobInfoProto());
EXPECT_EQ(kId, print_job_mojo->id);
EXPECT_EQ(base::UTF8ToUTF16(kTitle), print_job_mojo->title);
EXPECT_EQ(mojom::PrintJobCompletionStatus::kPrinted,
print_job_mojo->completion_status);
EXPECT_EQ(base::Time::FromJsTime(kJobCreationTime),
print_job_mojo->creation_time);
EXPECT_EQ(base::UTF8ToUTF16(kName), print_job_mojo->printer_name);
EXPECT_EQ(kUri, print_job_mojo->printer_uri.spec());
EXPECT_EQ(kPagesNumber, print_job_mojo->number_of_pages);
}
} // namespace chromeos