1 // Copyright (c) 2013 The Chromium 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 <set> 6 #include <string> 7 8 #include "base/memory/scoped_ptr.h" 9 #include "base/pickle.h" 10 #include "base/strings/utf_string_conversions.h" 11 #include "base/values.h" 12 #include "extensions/common/permissions/api_permission.h" 13 #include "extensions/common/permissions/permissions_info.h" 14 #include "extensions/common/permissions/usb_device_permission.h" 15 #include "extensions/common/permissions/usb_device_permission_data.h" 16 #include "ipc/ipc_message.h" 17 #include "testing/gtest/include/gtest/gtest.h" 18 19 namespace extensions { 20 21 TEST(USBDevicePermissionTest, PermissionDataOrder) { 22 EXPECT_LT(UsbDevicePermissionData(0x02ad, 0x138c, -1), 23 UsbDevicePermissionData(0x02ad, 0x138d, -1)); 24 ASSERT_LT(UsbDevicePermissionData(0x02ad, 0x138d, -1), 25 UsbDevicePermissionData(0x02ae, 0x138c, -1)); 26 EXPECT_LT(UsbDevicePermissionData(0x02ad, 0x138c, -1), 27 UsbDevicePermissionData(0x02ad, 0x138c, 0)); 28 } 29 30 #if defined(ENABLE_EXTENSIONS) 31 #define MAYBE_PermissionMessage PermissionMessage 32 #else 33 #define MAYBE_PermissionMessage DISABLED_PermissionMessage 34 #endif // defined(ENABLE_EXTENSIONS) 35 36 TEST(USBDevicePermissionTest, MAYBE_PermissionMessage) { 37 const char* const kMessages[] = { 38 "Access the USB device PVR Mass Storage from HUMAX Co., Ltd.", 39 "Access the USB device from HUMAX Co., Ltd.", 40 "Access the USB device", 41 }; 42 43 // Prepare data set 44 scoped_ptr<base::ListValue> permission_list(new base::ListValue()); 45 permission_list->Append( 46 UsbDevicePermissionData(0x02ad, 0x138c, -1).ToValue()->DeepCopy()); 47 permission_list->Append( 48 UsbDevicePermissionData(0x02ad, 0x138d, -1).ToValue()->DeepCopy()); 49 permission_list->Append( 50 UsbDevicePermissionData(0x02ae, 0x138d, -1).ToValue()->DeepCopy()); 51 52 UsbDevicePermission permission( 53 PermissionsInfo::GetInstance()->GetByID(APIPermission::kUsbDevice)); 54 ASSERT_TRUE(permission.FromValue(permission_list.get(), NULL, NULL)); 55 56 PermissionMessages messages = permission.GetMessages(); 57 ASSERT_EQ(3U, messages.size()); 58 EXPECT_EQ(base::ASCIIToUTF16(kMessages[0]), messages.at(0).message()); 59 EXPECT_EQ(base::ASCIIToUTF16(kMessages[1]), messages.at(1).message()); 60 EXPECT_EQ(base::ASCIIToUTF16(kMessages[2]), messages.at(2).message()); 61 } 62 63 } // namespace extensions 64