#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "services/device/usb/usb_descriptors.h"
#include <stdint.h>
#include <algorithm>
#include <memory>
#include <string>
#include <utility>
#include "base/functional/bind.h"
#include "base/strings/utf_string_conversions.h"
#include "services/device/usb/mock_usb_device_handle.h"
#include "testing/gtest/include/gtest/gtest.h"
_;
namespace device {
UsbControlTransferRecipient;
UsbControlTransferType;
UsbSynchronizationType;
UsbTransferDirection;
UsbTransferStatus;
UsbTransferType;
UsbUsageType;
namespace {
ACTION_P2(InvokeCallback, data, length) { … }
void ExpectStringDescriptors(
std::unique_ptr<std::map<uint8_t, std::u16string>> string_map) { … }
const uint8_t kDeviceDescriptor[] = …;
const uint8_t kConfig1Descriptor[] = …;
const uint8_t kConfig2Descriptor[] = …;
void ExpectConfig1Info(const mojom::UsbConfigurationInfo& config) { … }
void ExpectConfig2Info(const mojom::UsbConfigurationInfo& config) { … }
void ExpectDeviceDescriptor(const UsbDeviceDescriptor& descriptor) { … }
void OnReadDescriptors(std::unique_ptr<UsbDeviceDescriptor> descriptor) { … }
class UsbDescriptorsTest : public ::testing::Test { … };
TEST_F(UsbDescriptorsTest, ParseDescriptor) { … }
TEST_F(UsbDescriptorsTest, ReadDescriptors) { … }
TEST_F(UsbDescriptorsTest, NoInterfaceAssociations) { … }
TEST_F(UsbDescriptorsTest, InterfaceAssociations) { … }
TEST_F(UsbDescriptorsTest, CorruptInterfaceAssociations) { … }
TEST_F(UsbDescriptorsTest, StringDescriptor) { … }
TEST_F(UsbDescriptorsTest, ShortStringDescriptorHeader) { … }
TEST_F(UsbDescriptorsTest, ShortStringDescriptor) { … }
TEST_F(UsbDescriptorsTest, OddLengthStringDescriptor) { … }
TEST_F(UsbDescriptorsTest, EmptyStringDescriptor) { … }
TEST_F(UsbDescriptorsTest, OneByteStringDescriptor) { … }
TEST_F(UsbDescriptorsTest, ReadStringDescriptors) { … }
}
}