blob: 4221e2dffa3b89c52216e83ef8d32dd3019b1574 [file] [log] [blame]
// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "lorgnette/test_util.h"
#include <string>
#include <gtest/gtest.h>
using ::testing::HasSubstr;
using ::testing::Not;
namespace lorgnette {
TEST(TestUtils, PrintTo) {
DocumentSource ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
std::stringstream ss;
PrintTo(ds, &ss);
std::string result = ss.str();
EXPECT_THAT(result, HasSubstr("name = TestName"));
EXPECT_THAT(result, HasSubstr("type = SOURCE_UNSPECIFIED"));
EXPECT_THAT(result, HasSubstr("area.width = 1"));
EXPECT_THAT(result, HasSubstr("area.height = 1"));
EXPECT_THAT(result, HasSubstr("resolution = 120"));
EXPECT_THAT(result, HasSubstr("color_mode = 0"));
}
TEST(TestUtils, EqualsDocumentSourceTrue) {
DocumentSource expected_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
DocumentSource test_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
EXPECT_THAT(test_ds, EqualsDocumentSource(expected_ds));
}
TEST(TestUtils, EqualsDocumentSourceFalseWrongName) {
DocumentSource expected_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
DocumentSource test_ds =
CreateDocumentSource("TestNameWrong", SourceType::SOURCE_UNSPECIFIED, 1.0,
1.0, {120}, {ColorMode::MODE_UNSPECIFIED});
EXPECT_THAT(test_ds, Not(EqualsDocumentSource(expected_ds)));
}
TEST(TestUtils, EqualsDocumentSourceFalseWrongType) {
DocumentSource expected_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
DocumentSource test_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_PLATEN, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
EXPECT_THAT(test_ds, Not(EqualsDocumentSource(expected_ds)));
}
TEST(TestUtils, EqualsDocumentSourceFalseAreaOnlyOnExpected) {
DocumentSource expected_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
DocumentSource test_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
test_ds.clear_area();
EXPECT_THAT(test_ds, Not(EqualsDocumentSource(expected_ds)));
}
TEST(TestUtils, EqualsDocumentSourceFalseAreaOnlyOnTest) {
DocumentSource expected_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
DocumentSource test_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
expected_ds.clear_area();
EXPECT_THAT(test_ds, Not(EqualsDocumentSource(expected_ds)));
}
TEST(TestUtils, EqualsDocumentSourceFalseWrongWidth) {
DocumentSource expected_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
DocumentSource test_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 2.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
EXPECT_THAT(test_ds, Not(EqualsDocumentSource(expected_ds)));
}
TEST(TestUtils, EqualsDocumentSourceFalseWrongHeight) {
DocumentSource expected_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
DocumentSource test_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 2.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
EXPECT_THAT(test_ds, Not(EqualsDocumentSource(expected_ds)));
}
TEST(TestUtils, EqualsDocumentSourceFalseWrongResolutions) {
DocumentSource expected_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
DocumentSource test_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{240}, {ColorMode::MODE_UNSPECIFIED});
EXPECT_THAT(test_ds, Not(EqualsDocumentSource(expected_ds)));
}
TEST(TestUtils, EqualsDocumentSourceFalseWrongColorModes) {
DocumentSource expected_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_UNSPECIFIED});
DocumentSource test_ds =
CreateDocumentSource("TestName", SourceType::SOURCE_UNSPECIFIED, 1.0, 1.0,
{120}, {ColorMode::MODE_LINEART});
EXPECT_THAT(test_ds, Not(EqualsDocumentSource(expected_ds)));
}
TEST(TestUtils, MakeMinimalDeviceDescriptor) {
auto descriptor = MakeMinimalDeviceDescriptor();
EXPECT_EQ(descriptor.bLength, sizeof(descriptor));
EXPECT_EQ(descriptor.bDescriptorType, LIBUSB_DT_DEVICE);
EXPECT_EQ(descriptor.idVendor, 0x1234);
EXPECT_EQ(descriptor.idProduct, 0x4321);
}
TEST(TestUtils, MakeIppUsbInterfaceDescriptor) {
auto descriptor = MakeIppUsbInterfaceDescriptor();
EXPECT_EQ(descriptor->bLength, sizeof(libusb_interface_descriptor));
EXPECT_EQ(descriptor->bDescriptorType, LIBUSB_DT_INTERFACE);
EXPECT_EQ(descriptor->bInterfaceClass, LIBUSB_CLASS_PRINTER);
EXPECT_EQ(descriptor->bInterfaceProtocol, 0x04);
}
} // namespace lorgnette