Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: components/proximity_auth/ble/bluetooth_low_energy_weave_packet_generator_unittest.cc

Issue 2096103003: Move weave packet to common location b/t generator and receiver (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moved common enums to a namespace Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/proximity_auth/ble/bluetooth_low_energy_weave_packet_genera tor.h" 5 #include "components/proximity_auth/ble/bluetooth_low_energy_weave_packet_genera tor.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "testing/gmock/include/gmock/gmock.h" 12 #include "testing/gmock/include/gmock/gmock.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 using proximity_auth::BluetoothLowEnergyWeavePacketGenerator;
16
17 namespace {
18 typedef BluetoothLowEnergyWeavePacketGenerator::ReasonForClose ReasonForClose;
19 typedef BluetoothLowEnergyWeavePacketGenerator::Packet Packet;
20
21 const uint8_t kDefaultPacketSize = 20;
22 const uint8_t kWeaveVersion = 1;
23 const uint8_t kMaxCounter = 8;
24 const uint8_t kEmptyUpperByte = 0;
25 const uint8_t kSelectDefaultPacketSize = 0;
26 const uint8_t kDataType = 0;
27
28 } // namespace
29
30 namespace proximity_auth { 15 namespace proximity_auth {
16 namespace weave {
31 17
32 class ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest 18 class ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest
33 : public testing::Test { 19 : public testing::Test {
34 protected: 20 protected:
35 ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest() {} 21 ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest() {}
36 22
37 void TestConnectionCloseWithReason(ReasonForClose reason_for_close, 23 void TestConnectionCloseWithReason(ReasonForClose reason_for_close,
38 uint8_t expected_reason_for_close) { 24 uint8_t expected_reason_for_close) {
39 std::unique_ptr<BluetoothLowEnergyWeavePacketGenerator> generator = 25 std::unique_ptr<BluetoothLowEnergyWeavePacketGenerator> generator =
40 BluetoothLowEnergyWeavePacketGenerator::Factory::NewInstance(); 26 BluetoothLowEnergyWeavePacketGenerator::Factory::NewInstance();
(...skipping 28 matching lines...) Expand all
69 55
70 Packet packet = generator->CreateConnectionRequest(); 56 Packet packet = generator->CreateConnectionRequest();
71 57
72 const uint16_t kRequestSize = 7; 58 const uint16_t kRequestSize = 7;
73 Packet expected(kRequestSize, 0); 59 Packet expected(kRequestSize, 0);
74 // uWeave Header: 60 // uWeave Header:
75 // 1--- ---- : type = 1 (control packet) 61 // 1--- ---- : type = 1 (control packet)
76 // -000 ---- : counter = 0 62 // -000 ---- : counter = 0
77 // ---- 0000 : command = 0 (request) 63 // ---- 0000 : command = 0 (request)
78 // 1000 0000 = 0x80 64 // 1000 0000 = 0x80
79 expected = { 65 expected = {0x80,
80 0x80, kEmptyUpperByte, kWeaveVersion, kEmptyUpperByte, 66 kEmptyUpperByte,
81 kWeaveVersion, kEmptyUpperByte, kSelectDefaultPacketSize}; 67 kByteWeaveVersion,
68 kEmptyUpperByte,
69 kByteWeaveVersion,
70 kEmptyUpperByte,
71 kByteSelectMaxPacketSize};
82 72
83 EXPECT_EQ(expected, packet); 73 EXPECT_EQ(expected, packet);
84 } 74 }
85 75
86 TEST_F(ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest, 76 TEST_F(ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest,
87 CreateConnectionResponseWithDefaultPacketSizeTest) { 77 CreateConnectionResponseWithDefaultPacketSizeTest) {
88 std::unique_ptr<BluetoothLowEnergyWeavePacketGenerator> generator = 78 std::unique_ptr<BluetoothLowEnergyWeavePacketGenerator> generator =
89 BluetoothLowEnergyWeavePacketGenerator::Factory::NewInstance(); 79 BluetoothLowEnergyWeavePacketGenerator::Factory::NewInstance();
90 80
91 Packet packet = generator->CreateConnectionResponse(); 81 Packet packet = generator->CreateConnectionResponse();
92 82
93 const uint16_t kResponseSize = 5; 83 const uint16_t kResponseSize = 5;
94 Packet expected_default(kResponseSize, 0); 84 Packet expected_default(kResponseSize, 0);
95 // uWeave Header: 85 // uWeave Header:
96 // 1--- ---- : type = 1 (control packet) 86 // 1--- ---- : type = 1 (control packet)
97 // -000 ---- : counter = 0 87 // -000 ---- : counter = 0
98 // ---- 0001 : command = 1 (response) 88 // ---- 0001 : command = 1 (response)
99 // 1000 0001 = 0x81 89 // 1000 0001 = 0x81
100 expected_default = {0x81, kEmptyUpperByte, kWeaveVersion, kEmptyUpperByte, 90 expected_default = {0x81, kEmptyUpperByte, kByteWeaveVersion, kEmptyUpperByte,
101 kDefaultPacketSize}; 91 kByteDefaultMaxPacketSize};
102 92
103 EXPECT_EQ(expected_default, packet); 93 EXPECT_EQ(expected_default, packet);
104 } 94 }
105 95
106 TEST_F(ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest, 96 TEST_F(ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest,
107 CreateConnectionResponseWithSelectedPacketSizeTest) { 97 CreateConnectionResponseWithSelectedPacketSizeTest) {
108 std::unique_ptr<BluetoothLowEnergyWeavePacketGenerator> generator = 98 std::unique_ptr<BluetoothLowEnergyWeavePacketGenerator> generator =
109 BluetoothLowEnergyWeavePacketGenerator::Factory::NewInstance(); 99 BluetoothLowEnergyWeavePacketGenerator::Factory::NewInstance();
110 100
111 const uint8_t kSelectedPacketSize = 30; 101 const uint8_t kSelectedPacketSize = 30;
112 const uint16_t kResponseSize = 5; 102 const uint16_t kResponseSize = 5;
113 103
114 generator->SetMaxPacketSize(kSelectedPacketSize); 104 generator->SetMaxPacketSize(kSelectedPacketSize);
115 105
116 Packet packet = generator->CreateConnectionResponse(); 106 Packet packet = generator->CreateConnectionResponse();
117 107
118 Packet expected_selected(kResponseSize, 0); 108 Packet expected_selected(kResponseSize, 0);
119 // uWeave Header: 109 // uWeave Header:
120 // 1--- ---- : type = 1 (control packet) 110 // 1--- ---- : type = 1 (control packet)
121 // -000 ---- : counter = 0 111 // -000 ---- : counter = 0
122 // ---- 0001 : command = 1 (response) 112 // ---- 0001 : command = 1 (response)
123 // 1000 0001 = 0x81 113 // 1000 0001 = 0x81
124 expected_selected = {0x81, kEmptyUpperByte, kWeaveVersion, kEmptyUpperByte, 114 expected_selected = {0x81, kEmptyUpperByte, kByteWeaveVersion,
125 kSelectedPacketSize}; 115 kEmptyUpperByte, kSelectedPacketSize};
126 EXPECT_EQ(expected_selected, packet); 116 EXPECT_EQ(expected_selected, packet);
127 } 117 }
128 118
129 TEST_F(ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest, 119 TEST_F(ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest,
130 CreateConnectionCloseTest) { 120 CreateConnectionCloseTest) {
131 // Reason for close spec of uWeave. 121 // Reason for close spec of uWeave.
132 // 0x00: Close without error 122 // 0x00: Close without error
133 // 0x01: Unknown error 123 // 0x01: Unknown error
134 // 0x02: No common version supported 124 // 0x02: No common version supported
135 // 0x03: Received packet out of sequence 125 // 0x03: Received packet out of sequence
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 237
248 EXPECT_EQ(2, GetCounterFromHeader(packet[0])); 238 EXPECT_EQ(2, GetCounterFromHeader(packet[0]));
249 } 239 }
250 240
251 TEST_F(ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest, 241 TEST_F(ProximityAuthBluetoothLowEnergyWeavePacketGeneratorTest,
252 PacketCounterWrappedAroundTest) { 242 PacketCounterWrappedAroundTest) {
253 std::unique_ptr<BluetoothLowEnergyWeavePacketGenerator> generator = 243 std::unique_ptr<BluetoothLowEnergyWeavePacketGenerator> generator =
254 BluetoothLowEnergyWeavePacketGenerator::Factory::NewInstance(); 244 BluetoothLowEnergyWeavePacketGenerator::Factory::NewInstance();
255 245
256 const uint8_t kNumPackets = 100; 246 const uint8_t kNumPackets = 100;
257 std::string data(kNumPackets * kDefaultPacketSize, 'a'); 247 std::string data(kNumPackets * kByteDefaultMaxPacketSize, 'a');
258 248
259 std::vector<Packet> packets = generator->EncodeDataMessage(data); 249 std::vector<Packet> packets = generator->EncodeDataMessage(data);
260 250
261 std::vector<Packet> expected(kNumPackets); 251 std::vector<Packet> expected(kNumPackets);
262 252
253 const uint8_t kDataType = 0;
254
263 for (uint8_t i = 0; i < kNumPackets; ++i) { 255 for (uint8_t i = 0; i < kNumPackets; ++i) {
264 uint8_t header = packets[i][0]; 256 uint8_t header = packets[i][0];
265 EXPECT_EQ(i % kMaxCounter, GetCounterFromHeader(header)); 257 EXPECT_EQ(i % kMaxPacketCounter, GetCounterFromHeader(header));
266 EXPECT_EQ(kDataType, GetPacketType(header)); 258 EXPECT_EQ(kDataType, GetPacketType(header));
267 } 259 }
268 } 260 }
269 261
262 } // namespace weave
270 } // namespace proximity_auth 263 } // namespace proximity_auth
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698