1 // Copyright 2014 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.
5 #include "device/bluetooth/bluetooth_uuid.h"
6 #include "testing/gtest/include/gtest/gtest.h"
10 TEST(BluetoothUUIDTest
, MainTest
) {
11 const char kValid128Bit0
[] = "12345678-1234-5678-9abc-def123456789";
12 const char kValid128Bit1
[] = "00001101-0000-1000-8000-00805f9b34fb";
13 const char kInvalid36Char0
[] = "1234567-1234-5678-9abc-def123456789";
14 const char kInvalid36Char1
[] = "0x00001101-0000-1000-8000-00805f9b34fb";
15 const char kInvalid4Char
[] = "Z101";
16 const char kValid16Bit
[] = "0x1101";
17 const char kValid32Bit
[] = "00001101";
19 // Valid 128-bit custom UUID.
20 BluetoothUUID
uuid0(kValid128Bit0
);
21 EXPECT_TRUE(uuid0
.IsValid());
22 EXPECT_EQ(BluetoothUUID::kFormat128Bit
, uuid0
.format());
23 EXPECT_EQ(uuid0
.value(), uuid0
.canonical_value());
25 // Valid 128-bit UUID.
26 BluetoothUUID
uuid1(kValid128Bit1
);
27 EXPECT_TRUE(uuid1
.IsValid());
28 EXPECT_EQ(BluetoothUUID::kFormat128Bit
, uuid1
.format());
29 EXPECT_EQ(uuid1
.value(), uuid1
.canonical_value());
31 EXPECT_NE(uuid0
, uuid1
);
33 // Invalid 128-bit UUID.
34 BluetoothUUID
uuid2(kInvalid36Char0
);
35 EXPECT_FALSE(uuid2
.IsValid());
36 EXPECT_EQ(BluetoothUUID::kFormatInvalid
, uuid2
.format());
37 EXPECT_TRUE(uuid2
.value().empty());
38 EXPECT_TRUE(uuid2
.canonical_value().empty());
40 // Invalid 128-bit UUID.
41 BluetoothUUID
uuid3(kInvalid36Char1
);
42 EXPECT_FALSE(uuid3
.IsValid());
43 EXPECT_EQ(BluetoothUUID::kFormatInvalid
, uuid3
.format());
44 EXPECT_TRUE(uuid3
.value().empty());
45 EXPECT_TRUE(uuid3
.canonical_value().empty());
47 // Invalid 16-bit UUID.
48 BluetoothUUID
uuid4(kInvalid4Char
);
49 EXPECT_FALSE(uuid4
.IsValid());
50 EXPECT_EQ(BluetoothUUID::kFormatInvalid
, uuid4
.format());
51 EXPECT_TRUE(uuid4
.value().empty());
52 EXPECT_TRUE(uuid4
.canonical_value().empty());
55 BluetoothUUID
uuid5(kValid16Bit
);
56 EXPECT_TRUE(uuid5
.IsValid());
57 EXPECT_EQ(BluetoothUUID::kFormat16Bit
, uuid5
.format());
58 EXPECT_NE(uuid5
.value(), uuid5
.canonical_value());
59 EXPECT_EQ("1101", uuid5
.value());
60 EXPECT_EQ(kValid128Bit1
, uuid5
.canonical_value());
63 BluetoothUUID
uuid6(kValid32Bit
);
64 EXPECT_TRUE(uuid6
.IsValid());
65 EXPECT_EQ(BluetoothUUID::kFormat32Bit
, uuid6
.format());
66 EXPECT_NE(uuid6
.value(), uuid6
.canonical_value());
67 EXPECT_EQ("00001101", uuid6
.value());
68 EXPECT_EQ(kValid128Bit1
, uuid6
.canonical_value());
70 // uuid5, uuid6, and uuid1 are equivalent.
71 EXPECT_EQ(uuid5
, uuid6
);
72 EXPECT_EQ(uuid1
, uuid5
);
73 EXPECT_EQ(uuid1
, uuid6
);