blob: 048c9bff25b7ac548a6cce371c22dbdb8ccbaa7f [file] [log] [blame]
// Copyright 2017 The Chromium OS 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 "ippusb_manager/usb.h"
#include <gtest/gtest.h>
namespace ippusb_manager {
TEST(UsbTest, GetUsbInfoValidInput) {
uint16_t vid = 0;
uint16_t pid = 0;
EXPECT_EQ(true, GetUsbInfo("03f0_7c12", &vid, &pid));
EXPECT_EQ(0x03f0, vid);
EXPECT_EQ(0x7c12, pid);
EXPECT_EQ(true, GetUsbInfo("03f_7c12", &vid, &pid));
EXPECT_EQ(0x03f, vid);
EXPECT_EQ(0x7c12, pid);
EXPECT_EQ(true, GetUsbInfo("03f0_7c1", &vid, &pid));
EXPECT_EQ(0x03f0, vid);
EXPECT_EQ(0x7c1, pid);
}
TEST(UsbTest, GetUsbInfoInvalidInput) {
uint16_t vid = 0;
uint16_t pid = 0;
EXPECT_EQ(false, GetUsbInfo("123g_1111", &vid, &pid));
EXPECT_EQ(0, vid);
EXPECT_EQ(0, pid);
}
TEST(UsbTest, GetUsbInfoEmptyInfo) {
uint16_t vid = 0;
uint16_t pid = 0;
EXPECT_EQ(false, GetUsbInfo("", &vid, &pid));
EXPECT_EQ(0, vid);
EXPECT_EQ(0, pid);
}
TEST(UsbTest, GetUsbInfoSingleValue) {
uint16_t vid = 0;
uint16_t pid = 0;
EXPECT_EQ(false, GetUsbInfo("03f0", &vid, &pid));
EXPECT_EQ(0, vid);
EXPECT_EQ(0, pid);
}
TEST(UsbTest, GetUsbInfoTooManyValues) {
uint16_t vid = 0;
uint16_t pid = 0;
EXPECT_EQ(false, GetUsbInfo("03f0_7c12_1234", &vid, &pid));
EXPECT_EQ(0, vid);
EXPECT_EQ(0, pid);
}
} // namespace ippusb_manager