• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include <gtest/gtest.h>
18 #include <unordered_map>
19 
20 #include "utils.h"
21 
22 namespace {
23 
24 using ::android::bluetooth::audio::utils::FrameCount;
25 using ::android::bluetooth::audio::utils::ParseAudioParams;
26 
27 class UtilsTest : public testing::Test {
28  protected:
SetUp()29   void SetUp() override {}
TearDown()30   void TearDown() override { map_.clear(); }
31 
32   std::unordered_map<std::string, std::string> map_;
33 };
34 
TEST_F(UtilsTest,HashMapEmptyParams)35 TEST_F(UtilsTest, HashMapEmptyParams) {
36   std::string params = "";
37   map_ = ParseAudioParams(params);
38   // map = {}
39   EXPECT_TRUE(map_.empty());
40 }
41 
TEST_F(UtilsTest,HashMapDelimitOnly)42 TEST_F(UtilsTest, HashMapDelimitOnly) {
43   std::string params = ";";
44   map_ = ParseAudioParams(params);
45   // map = {}
46   EXPECT_TRUE(map_.empty());
47 }
48 
TEST_F(UtilsTest,HashMapNotKeyValuePair)49 TEST_F(UtilsTest, HashMapNotKeyValuePair) {
50   std::string params = "key0";
51   map_ = ParseAudioParams(params);
52   // map = {[key0]=""}
53   EXPECT_EQ(map_.size(), 1);
54   EXPECT_NE(map_.find("key0"), map_.end());
55   EXPECT_EQ(map_["key0"].length(), 0);
56 }
57 
TEST_F(UtilsTest,HashMapEmptyValue)58 TEST_F(UtilsTest, HashMapEmptyValue) {
59   std::string params = "key0=";
60   map_ = ParseAudioParams(params);
61   // map = {[key0]=""}
62   EXPECT_EQ(map_.size(), 1);
63   EXPECT_NE(map_.find("key0"), map_.end());
64   EXPECT_EQ(map_["key0"].length(), 0);
65 }
66 
TEST_F(UtilsTest,HashMapEmptyValueWithDelimit)67 TEST_F(UtilsTest, HashMapEmptyValueWithDelimit) {
68   std::string params = "key0=;";
69   map_ = ParseAudioParams(params);
70   // map = {[key0]=""}
71   EXPECT_EQ(map_.size(), 1);
72   EXPECT_NE(map_.find("key0"), map_.end());
73   EXPECT_EQ(map_["key0"].length(), 0);
74 }
75 
TEST_F(UtilsTest,HashMapOneKeyValuePair)76 TEST_F(UtilsTest, HashMapOneKeyValuePair) {
77   std::string params = "key0=value0";
78   map_ = ParseAudioParams(params);
79   // map = {[key0]="value0"}
80   EXPECT_EQ(map_.size(), 1);
81   EXPECT_EQ(map_["key0"], "value0");
82 }
83 
TEST_F(UtilsTest,HashMapOneKeyValuePairWithDelimit)84 TEST_F(UtilsTest, HashMapOneKeyValuePairWithDelimit) {
85   std::string params = "key0=value0;";
86   map_ = ParseAudioParams(params);
87   // map = {[key0]="value0"}
88   EXPECT_EQ(map_.size(), 1);
89   EXPECT_EQ(map_["key0"], "value0");
90 }
91 
TEST_F(UtilsTest,HashMapTwoKeyValuePairs)92 TEST_F(UtilsTest, HashMapTwoKeyValuePairs) {
93   std::string params = "key0=value0;key1=value1";
94   map_ = ParseAudioParams(params);
95   // map = {[key0]="value0", [key1]="value1"}
96   EXPECT_EQ(map_.size(), 2);
97   EXPECT_EQ(map_["key0"], "value0");
98   EXPECT_EQ(map_["key1"], "value1");
99 }
100 
TEST_F(UtilsTest,HashMapEmptyKey)101 TEST_F(UtilsTest, HashMapEmptyKey) {
102   std::string params = "=value";
103   map_ = ParseAudioParams(params);
104   // map = {}
105   EXPECT_TRUE(map_.empty());
106 }
107 
TEST_F(UtilsTest,HashMapEmptyKeyWithDelimit)108 TEST_F(UtilsTest, HashMapEmptyKeyWithDelimit) {
109   std::string params = "=value;";
110   map_ = ParseAudioParams(params);
111   // map = {}
112   EXPECT_TRUE(map_.empty());
113 }
114 
TEST_F(UtilsTest,HashMapEquivalentOnly)115 TEST_F(UtilsTest, HashMapEquivalentOnly) {
116   std::string params = "=";
117   map_ = ParseAudioParams(params);
118   // map = {}
119   EXPECT_TRUE(map_.empty());
120 }
121 
TEST_F(UtilsTest,HashMapNoKeyValuePair)122 TEST_F(UtilsTest, HashMapNoKeyValuePair) {
123   std::string params = "=;";
124   map_ = ParseAudioParams(params);
125   // map = {}
126   EXPECT_TRUE(map_.empty());
127 }
128 
TEST_F(UtilsTest,HashMapTwoPairsWithFirstKeyEmpty)129 TEST_F(UtilsTest, HashMapTwoPairsWithFirstKeyEmpty) {
130   std::string params = "=value0;key1=value1";
131   map_ = ParseAudioParams(params);
132   // map = {[key1]="value1"}
133   EXPECT_EQ(map_.size(), 1);
134   EXPECT_EQ(map_["key1"], "value1");
135 }
136 
TEST_F(UtilsTest,FrameCountTest)137 TEST_F(UtilsTest, FrameCountTest) {
138   EXPECT_EQ(FrameCount(120000, 44100), 5292);
139   EXPECT_EQ(FrameCount(7500, 32000), 240);
140 }
141 
142 }  // namespace
143