123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- // 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 "chromeos/printing/cups_printer_status.h"
- #include <string>
- #include <vector>
- #include "base/test/scoped_mock_clock_override.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
- namespace chromeos {
- using CupsPrinterStatusReason = CupsPrinterStatus::CupsPrinterStatusReason;
- using CupsReason = CupsPrinterStatus::CupsPrinterStatusReason::Reason;
- using CupsSeverity = CupsPrinterStatus::CupsPrinterStatusReason::Severity;
- class CupsPrinterStatusTest : public testing::Test {
- public:
- CupsPrinterStatusTest() = default;
- ~CupsPrinterStatusTest() override = default;
- protected:
- base::ScopedMockClockOverride clock_;
- };
- // Baseline test for creating a chromeos::CupsPrinterStatus.
- TEST_F(CupsPrinterStatusTest, CreateCupsPrinterStatus) {
- CupsPrinterStatus cups_printer_status("id");
- EXPECT_EQ("id", cups_printer_status.GetPrinterId());
- EXPECT_EQ(clock_.Now(), cups_printer_status.GetTimestamp());
- }
- TEST_F(CupsPrinterStatusTest, AddStatusReasons) {
- CupsPrinterStatus cups_printer_status("id");
- cups_printer_status.AddStatusReason(
- CupsPrinterStatusReason::Reason::kNoError,
- CupsPrinterStatusReason::Severity::kReport);
- cups_printer_status.AddStatusReason(
- CupsPrinterStatusReason::Reason::kDoorOpen,
- CupsPrinterStatusReason::Severity::kWarning);
- EXPECT_EQ(2u, cups_printer_status.GetStatusReasons().size());
- EXPECT_EQ("id", cups_printer_status.GetPrinterId());
- EXPECT_EQ(clock_.Now(), cups_printer_status.GetTimestamp());
- std::vector<CupsPrinterStatus::CupsPrinterStatusReason> expected_reasons{
- CupsPrinterStatus::CupsPrinterStatusReason(CupsReason::kNoError,
- CupsSeverity::kReport),
- CupsPrinterStatus::CupsPrinterStatusReason(CupsReason::kDoorOpen,
- CupsSeverity::kWarning)};
- EXPECT_THAT(cups_printer_status.GetStatusReasons(), expected_reasons);
- }
- // Ensure that if printer returns two of the same status but each with different
- // severities, make sure both are saved.
- TEST_F(CupsPrinterStatusTest, SameReasonDifferentSeverity) {
- CupsPrinterStatus cups_printer_status("id");
- cups_printer_status.AddStatusReason(
- CupsPrinterStatusReason::Reason::kDeviceError,
- CupsPrinterStatusReason::Severity::kReport);
- cups_printer_status.AddStatusReason(
- CupsPrinterStatusReason::Reason::kDeviceError,
- CupsPrinterStatusReason::Severity::kWarning);
- EXPECT_EQ(2u, cups_printer_status.GetStatusReasons().size());
- EXPECT_EQ("id", cups_printer_status.GetPrinterId());
- EXPECT_EQ(clock_.Now(), cups_printer_status.GetTimestamp());
- std::vector<CupsPrinterStatus::CupsPrinterStatusReason> expected_reasons{
- CupsPrinterStatus::CupsPrinterStatusReason(CupsReason::kDeviceError,
- CupsSeverity::kReport),
- CupsPrinterStatus::CupsPrinterStatusReason(CupsReason::kDeviceError,
- CupsSeverity::kWarning)};
- EXPECT_THAT(cups_printer_status.GetStatusReasons(), expected_reasons);
- }
- // Ensure if printer returns the same status and severity twice, duplicates are
- // not added to CupsPrinterStatus.
- TEST_F(CupsPrinterStatusTest, SameReasonSameSeverity) {
- CupsPrinterStatus cups_printer_status("id");
- cups_printer_status.AddStatusReason(
- CupsPrinterStatusReason::Reason::kPaused,
- CupsPrinterStatusReason::Severity::kError);
- cups_printer_status.AddStatusReason(
- CupsPrinterStatusReason::Reason::kPaused,
- CupsPrinterStatusReason::Severity::kError);
- EXPECT_EQ(1u, cups_printer_status.GetStatusReasons().size());
- EXPECT_EQ("id", cups_printer_status.GetPrinterId());
- EXPECT_EQ(clock_.Now(), cups_printer_status.GetTimestamp());
- std::vector<CupsPrinterStatus::CupsPrinterStatusReason> expected_reasons{
- CupsPrinterStatus::CupsPrinterStatusReason(CupsReason::kPaused,
- CupsSeverity::kError)};
- EXPECT_THAT(cups_printer_status.GetStatusReasons(), expected_reasons);
- }
- } // namespace chromeos
|