blob: 687c7f30a353051a6a7a00e539380650d9ba7fb9 [file] [log] [blame]
Ben Chanb6ce1782013-05-27 01:00:02 -07001// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "mist/usb_error.h"
6
7#include <gtest/gtest.h>
8
9namespace mist {
10
11TEST(UsbErrorTest, DefaultConstructor) {
12 UsbError error;
13 EXPECT_TRUE(error.IsSuccess());
14 EXPECT_EQ(UsbError::kSuccess, error.type());
15}
16
17TEST(UsbErrorTest, ConstructorWithType) {
18 UsbError error(UsbError::kErrorInvalidParameter);
19 EXPECT_FALSE(error.IsSuccess());
20 EXPECT_EQ(UsbError::kErrorInvalidParameter, error.type());
21}
22
23TEST(UsbErrorTest, ConstructorWithLibUsbError) {
24 UsbError error(LIBUSB_ERROR_INVALID_PARAM);
25 EXPECT_FALSE(error.IsSuccess());
26 EXPECT_EQ(UsbError::kErrorInvalidParameter, error.type());
27}
28
29TEST(UsbErrorTest, IsSuccess) {
30 UsbError error;
31 EXPECT_TRUE(error.IsSuccess());
32
33 error.set_type(UsbError::kErrorIO);
34 EXPECT_FALSE(error.IsSuccess());
35
36 error.set_type(UsbError::kSuccess);
37 EXPECT_TRUE(error.IsSuccess());
38}
39
40TEST(UsbErrorTest, Clear) {
41 UsbError error(UsbError::kErrorIO);
42 EXPECT_EQ(UsbError::kErrorIO, error.type());
43 EXPECT_FALSE(error.IsSuccess());
44
45 error.Clear();
46 EXPECT_EQ(UsbError::kSuccess, error.type());
47 EXPECT_TRUE(error.IsSuccess());
48}
49
50TEST(UsbError, SetFromLibUsbError) {
51 UsbError error;
52
Ben Chanf9759462013-05-27 21:50:30 -070053 EXPECT_TRUE(error.SetFromLibUsbError(LIBUSB_SUCCESS));
Ben Chanb6ce1782013-05-27 01:00:02 -070054 EXPECT_EQ(UsbError::kSuccess, error.type());
55
Ben Chanf9759462013-05-27 21:50:30 -070056 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_IO));
Ben Chanb6ce1782013-05-27 01:00:02 -070057 EXPECT_EQ(UsbError::kErrorIO, error.type());
58
Ben Chanf9759462013-05-27 21:50:30 -070059 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_INVALID_PARAM));
Ben Chanb6ce1782013-05-27 01:00:02 -070060 EXPECT_EQ(UsbError::kErrorInvalidParameter, error.type());
61
Ben Chanf9759462013-05-27 21:50:30 -070062 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_ACCESS));
Ben Chanb6ce1782013-05-27 01:00:02 -070063 EXPECT_EQ(UsbError::kErrorAccess, error.type());
64
Ben Chanf9759462013-05-27 21:50:30 -070065 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_NO_DEVICE));
Ben Chanb6ce1782013-05-27 01:00:02 -070066 EXPECT_EQ(UsbError::kErrorNoDevice, error.type());
67
Ben Chanf9759462013-05-27 21:50:30 -070068 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_NOT_FOUND));
Ben Chanb6ce1782013-05-27 01:00:02 -070069 EXPECT_EQ(UsbError::kErrorNotFound, error.type());
70
Ben Chanf9759462013-05-27 21:50:30 -070071 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_BUSY));
Ben Chanb6ce1782013-05-27 01:00:02 -070072 EXPECT_EQ(UsbError::kErrorBusy, error.type());
73
Ben Chanf9759462013-05-27 21:50:30 -070074 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_TIMEOUT));
Ben Chanb6ce1782013-05-27 01:00:02 -070075 EXPECT_EQ(UsbError::kErrorTimeout, error.type());
76
Ben Chanf9759462013-05-27 21:50:30 -070077 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_OVERFLOW));
Ben Chanb6ce1782013-05-27 01:00:02 -070078 EXPECT_EQ(UsbError::kErrorOverflow, error.type());
79
Ben Chanf9759462013-05-27 21:50:30 -070080 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_PIPE));
Ben Chanb6ce1782013-05-27 01:00:02 -070081 EXPECT_EQ(UsbError::kErrorPipe, error.type());
82
Ben Chanf9759462013-05-27 21:50:30 -070083 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_INTERRUPTED));
Ben Chanb6ce1782013-05-27 01:00:02 -070084 EXPECT_EQ(UsbError::kErrorInterrupted, error.type());
85
Ben Chanf9759462013-05-27 21:50:30 -070086 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_NO_MEM));
Ben Chanb6ce1782013-05-27 01:00:02 -070087 EXPECT_EQ(UsbError::kErrorNoMemory, error.type());
88
Ben Chanf9759462013-05-27 21:50:30 -070089 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_NOT_SUPPORTED));
Ben Chanb6ce1782013-05-27 01:00:02 -070090 EXPECT_EQ(UsbError::kErrorNotSupported, error.type());
91
Ben Chanf9759462013-05-27 21:50:30 -070092 EXPECT_FALSE(error.SetFromLibUsbError(LIBUSB_ERROR_OTHER));
Ben Chanb6ce1782013-05-27 01:00:02 -070093 EXPECT_EQ(UsbError::kErrorOther, error.type());
94}
95
96} // namespace mist