| Index: content/browser/bluetooth/bluetooth_blacklist_unittest.cc
|
| diff --git a/content/browser/bluetooth/bluetooth_blacklist_unittest.cc b/content/browser/bluetooth/bluetooth_blacklist_unittest.cc
|
| index b0ed9c2c6a183d3adbddbcd62e1ed33800e76ae8..a62a3fed549f63b9e4599da43545f1affb3092a6 100644
|
| --- a/content/browser/bluetooth/bluetooth_blacklist_unittest.cc
|
| +++ b/content/browser/bluetooth/bluetooth_blacklist_unittest.cc
|
| @@ -4,7 +4,6 @@
|
|
|
| #include "content/browser/bluetooth/bluetooth_blacklist.h"
|
|
|
| -#include "content/common/bluetooth/bluetooth_scan_filter.h"
|
| #include "device/bluetooth/bluetooth_uuid.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -12,6 +11,14 @@ using device::BluetoothUUID;
|
|
|
| namespace content {
|
|
|
| +namespace {
|
| +
|
| +std::string Canonicalize(const std::string& string) {
|
| + return device::BluetoothUUID(string).canonical_value();
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| class BluetoothBlacklistTest : public ::testing::Test {
|
| public:
|
| BluetoothBlacklistTest() : list_(BluetoothBlacklist::Get()) {
|
| @@ -218,92 +225,139 @@ TEST_F(BluetoothBlacklistTest, IsExcluded_BluetoothScanFilter_ReturnsFalse) {
|
| list_.Add(BluetoothUUID("ee01"), BluetoothBlacklist::Value::EXCLUDE_READS);
|
| list_.Add(BluetoothUUID("ee02"), BluetoothBlacklist::Value::EXCLUDE_WRITES);
|
| {
|
| - std::vector<BluetoothScanFilter> empty_filters;
|
| + mojo::Array<blink::mojom::WebBluetoothScanFilterPtr> empty_filters;
|
| EXPECT_FALSE(list_.IsExcluded(empty_filters));
|
| }
|
| {
|
| - std::vector<BluetoothScanFilter> single_empty_filter(1);
|
| - EXPECT_EQ(0u, single_empty_filter[0].services.size());
|
| + mojo::Array<blink::mojom::WebBluetoothScanFilterPtr> single_empty_filter(1);
|
| +
|
| + single_empty_filter[0] = blink::mojom::WebBluetoothScanFilter::New();
|
| + single_empty_filter[0]->services = mojo::Array<mojo::String>();
|
| +
|
| + EXPECT_EQ(0u, single_empty_filter[0]->services.size());
|
| EXPECT_FALSE(list_.IsExcluded(single_empty_filter));
|
| }
|
| {
|
| - std::vector<BluetoothScanFilter> single_non_matching_filter(1);
|
| - single_non_matching_filter[0].services.push_back(BluetoothUUID("0000"));
|
| + mojo::Array<blink::mojom::WebBluetoothScanFilterPtr>
|
| + single_non_matching_filter(1);
|
| +
|
| + single_non_matching_filter[0] = blink::mojom::WebBluetoothScanFilter::New();
|
| + single_non_matching_filter[0]->services.push_back(Canonicalize("0000"));
|
| +
|
| EXPECT_FALSE(list_.IsExcluded(single_non_matching_filter));
|
| }
|
| {
|
| - std::vector<BluetoothScanFilter> multiple_non_matching_filter(2);
|
| - multiple_non_matching_filter[0].services.push_back(BluetoothUUID("0000"));
|
| - multiple_non_matching_filter[0].services.push_back(BluetoothUUID("ee01"));
|
| - multiple_non_matching_filter[1].services.push_back(BluetoothUUID("ee02"));
|
| - multiple_non_matching_filter[1].services.push_back(BluetoothUUID("0003"));
|
| - EXPECT_FALSE(list_.IsExcluded(multiple_non_matching_filter));
|
| + mojo::Array<blink::mojom::WebBluetoothScanFilterPtr>
|
| + multiple_non_matching_filters(2);
|
| +
|
| + multiple_non_matching_filters[0] =
|
| + blink::mojom::WebBluetoothScanFilter::New();
|
| + multiple_non_matching_filters[0]->services.push_back(Canonicalize("0000"));
|
| + multiple_non_matching_filters[0]->services.push_back(Canonicalize("ee01"));
|
| +
|
| + multiple_non_matching_filters[1] =
|
| + blink::mojom::WebBluetoothScanFilter::New();
|
| + multiple_non_matching_filters[1]->services.push_back(Canonicalize("ee02"));
|
| + multiple_non_matching_filters[1]->services.push_back(Canonicalize("0003"));
|
| +
|
| + EXPECT_FALSE(list_.IsExcluded(multiple_non_matching_filters));
|
| }
|
| }
|
|
|
| TEST_F(BluetoothBlacklistTest, IsExcluded_BluetoothScanFilter_ReturnsTrue) {
|
| list_.Add(BluetoothUUID("eeee"), BluetoothBlacklist::Value::EXCLUDE);
|
| {
|
| - std::vector<BluetoothScanFilter> single_matching_filter(1);
|
| - single_matching_filter[0].services.push_back(BluetoothUUID("eeee"));
|
| + mojo::Array<blink::mojom::WebBluetoothScanFilterPtr> single_matching_filter(
|
| + 1);
|
| +
|
| + single_matching_filter[0] = blink::mojom::WebBluetoothScanFilter::New();
|
| + single_matching_filter[0]->services.push_back(Canonicalize("eeee"));
|
| +
|
| EXPECT_TRUE(list_.IsExcluded(single_matching_filter));
|
| }
|
| {
|
| - std::vector<BluetoothScanFilter> first_matching_filter(2);
|
| - first_matching_filter[0].services.push_back(BluetoothUUID("eeee"));
|
| - first_matching_filter[0].services.push_back(BluetoothUUID("0001"));
|
| - first_matching_filter[1].services.push_back(BluetoothUUID("0002"));
|
| - first_matching_filter[1].services.push_back(BluetoothUUID("0003"));
|
| + mojo::Array<blink::mojom::WebBluetoothScanFilterPtr> first_matching_filter(
|
| + 2);
|
| +
|
| + first_matching_filter[0] = blink::mojom::WebBluetoothScanFilter::New();
|
| + first_matching_filter[0]->services.push_back(Canonicalize("eeee"));
|
| + first_matching_filter[0]->services.push_back(Canonicalize("0001"));
|
| +
|
| + first_matching_filter[1] = blink::mojom::WebBluetoothScanFilter::New();
|
| + first_matching_filter[1]->services.push_back(Canonicalize("0002"));
|
| + first_matching_filter[1]->services.push_back(Canonicalize("0003"));
|
| +
|
| EXPECT_TRUE(list_.IsExcluded(first_matching_filter));
|
| }
|
| {
|
| - std::vector<BluetoothScanFilter> last_matching_filter(2);
|
| - last_matching_filter[0].services.push_back(BluetoothUUID("0001"));
|
| - last_matching_filter[0].services.push_back(BluetoothUUID("0001"));
|
| - last_matching_filter[1].services.push_back(BluetoothUUID("0002"));
|
| - last_matching_filter[1].services.push_back(BluetoothUUID("eeee"));
|
| + mojo::Array<blink::mojom::WebBluetoothScanFilterPtr> last_matching_filter(
|
| + 2);
|
| +
|
| + last_matching_filter[0] = blink::mojom::WebBluetoothScanFilter::New();
|
| + last_matching_filter[0]->services.push_back(Canonicalize("0001"));
|
| + last_matching_filter[0]->services.push_back(Canonicalize("0001"));
|
| +
|
| + last_matching_filter[1] = blink::mojom::WebBluetoothScanFilter::New();
|
| + last_matching_filter[1]->services.push_back(Canonicalize("0002"));
|
| + last_matching_filter[1]->services.push_back(Canonicalize("eeee"));
|
| +
|
| EXPECT_TRUE(list_.IsExcluded(last_matching_filter));
|
| }
|
| {
|
| - std::vector<BluetoothScanFilter> multiple_matching_filter(2);
|
| - multiple_matching_filter[0].services.push_back(BluetoothUUID("eeee"));
|
| - multiple_matching_filter[0].services.push_back(BluetoothUUID("eeee"));
|
| - multiple_matching_filter[1].services.push_back(BluetoothUUID("eeee"));
|
| - multiple_matching_filter[1].services.push_back(BluetoothUUID("eeee"));
|
| - EXPECT_TRUE(list_.IsExcluded(multiple_matching_filter));
|
| + mojo::Array<blink::mojom::WebBluetoothScanFilterPtr>
|
| + multiple_matching_filters(2);
|
| +
|
| + multiple_matching_filters[0] = blink::mojom::WebBluetoothScanFilter::New();
|
| + multiple_matching_filters[0]->services.push_back(Canonicalize("eeee"));
|
| + multiple_matching_filters[0]->services.push_back(Canonicalize("eeee"));
|
| +
|
| + multiple_matching_filters[1] = blink::mojom::WebBluetoothScanFilter::New();
|
| + multiple_matching_filters[1]->services.push_back(Canonicalize("eeee"));
|
| + multiple_matching_filters[1]->services.push_back(Canonicalize("eeee"));
|
| +
|
| + EXPECT_TRUE(list_.IsExcluded(multiple_matching_filters));
|
| }
|
| }
|
|
|
| -TEST_F(BluetoothBlacklistTest, RemoveExcludedUuids_NonMatching) {
|
| +TEST_F(BluetoothBlacklistTest, RemoveExcludedUUIDs_NonMatching) {
|
| list_.Add(BluetoothUUID("eeee"), BluetoothBlacklist::Value::EXCLUDE);
|
| list_.Add(BluetoothUUID("ee01"), BluetoothBlacklist::Value::EXCLUDE_READS);
|
| list_.Add(BluetoothUUID("ee02"), BluetoothBlacklist::Value::EXCLUDE_WRITES);
|
| +
|
| + // options.optional_services should be the same before and after
|
| + // RemoveExcludedUUIDs().
|
| {
|
| - std::vector<BluetoothUUID> empty;
|
| - std::vector<BluetoothUUID> expected_empty;
|
| - list_.RemoveExcludedUuids(&empty);
|
| - EXPECT_EQ(expected_empty, empty);
|
| + // Empty optional_services.
|
| + blink::mojom::WebBluetoothRequestDeviceOptions options;
|
| + options.optional_services = mojo::Array<mojo::String>();
|
| +
|
| + mojo::Array<mojo::String> expected = options.optional_services.Clone();
|
| +
|
| + list_.RemoveExcludedUUIDs(&options);
|
| + EXPECT_TRUE(options.optional_services.Equals(expected));
|
| }
|
| {
|
| - std::vector<BluetoothUUID> single_non_matching;
|
| - single_non_matching.push_back(BluetoothUUID("0000"));
|
| + // One non-matching service in optional_services.
|
| + blink::mojom::WebBluetoothRequestDeviceOptions options;
|
| + options.optional_services.push_back(Canonicalize("0000"));
|
|
|
| - std::vector<BluetoothUUID> expected_copy(single_non_matching);
|
| + mojo::Array<mojo::String> expected = options.optional_services.Clone();
|
|
|
| - list_.RemoveExcludedUuids(&single_non_matching);
|
| - EXPECT_EQ(expected_copy, single_non_matching);
|
| + list_.RemoveExcludedUUIDs(&options);
|
| + EXPECT_TRUE(options.optional_services.Equals(expected));
|
| }
|
| {
|
| - std::vector<BluetoothUUID> multiple_non_matching;
|
| - multiple_non_matching.push_back(BluetoothUUID("0000"));
|
| - multiple_non_matching.push_back(BluetoothUUID("ee01"));
|
| - multiple_non_matching.push_back(BluetoothUUID("ee02"));
|
| - multiple_non_matching.push_back(BluetoothUUID("0003"));
|
| + // Multiple non-matching services in optional_services.
|
| + blink::mojom::WebBluetoothRequestDeviceOptions options;
|
| + options.optional_services.push_back(Canonicalize("0000"));
|
| + options.optional_services.push_back(Canonicalize("ee01"));
|
| + options.optional_services.push_back(Canonicalize("ee02"));
|
| + options.optional_services.push_back(Canonicalize("0003"));
|
|
|
| - std::vector<BluetoothUUID> expected_copy(multiple_non_matching);
|
| + mojo::Array<mojo::String> expected = options.optional_services.Clone();
|
|
|
| - list_.RemoveExcludedUuids(&multiple_non_matching);
|
| - EXPECT_EQ(expected_copy, multiple_non_matching);
|
| + list_.RemoveExcludedUUIDs(&options);
|
| + EXPECT_TRUE(options.optional_services.Equals(expected));
|
| }
|
| }
|
|
|
| @@ -313,38 +367,42 @@ TEST_F(BluetoothBlacklistTest, RemoveExcludedUuids_Matching) {
|
| list_.Add(BluetoothUUID("eee3"), BluetoothBlacklist::Value::EXCLUDE);
|
| list_.Add(BluetoothUUID("eee4"), BluetoothBlacklist::Value::EXCLUDE);
|
| {
|
| - std::vector<BluetoothUUID> single_matching;
|
| - single_matching.push_back(BluetoothUUID("eeee"));
|
| + // Single matching service in optional_services.
|
| + blink::mojom::WebBluetoothRequestDeviceOptions options;
|
| + options.optional_services.push_back(Canonicalize("eeee"));
|
|
|
| - std::vector<BluetoothUUID> expected_empty;
|
| + mojo::Array<mojo::String> expected = mojo::Array<mojo::String>();
|
|
|
| - list_.RemoveExcludedUuids(&single_matching);
|
| - EXPECT_EQ(expected_empty, single_matching);
|
| + list_.RemoveExcludedUUIDs(&options);
|
| +
|
| + EXPECT_TRUE(options.optional_services.Equals(expected));
|
| }
|
| {
|
| - std::vector<BluetoothUUID> single_matching_of_many;
|
| - single_matching_of_many.push_back(BluetoothUUID("0000"));
|
| - single_matching_of_many.push_back(BluetoothUUID("eeee"));
|
| - single_matching_of_many.push_back(BluetoothUUID("0001"));
|
| -
|
| - std::vector<BluetoothUUID> expected;
|
| - expected.push_back(BluetoothUUID("0000"));
|
| - expected.push_back(BluetoothUUID("0001"));
|
| -
|
| - list_.RemoveExcludedUuids(&single_matching_of_many);
|
| - EXPECT_EQ(expected, single_matching_of_many);
|
| + // Single matching of many services in optional_services.
|
| + blink::mojom::WebBluetoothRequestDeviceOptions options;
|
| + options.optional_services.push_back(Canonicalize("0000"));
|
| + options.optional_services.push_back(Canonicalize("eeee"));
|
| + options.optional_services.push_back(Canonicalize("0001"));
|
| +
|
| + mojo::Array<mojo::String> expected;
|
| + expected.push_back(Canonicalize("0000"));
|
| + expected.push_back(Canonicalize("0001"));
|
| +
|
| + list_.RemoveExcludedUUIDs(&options);
|
| + EXPECT_TRUE(options.optional_services.Equals(expected));
|
| }
|
| {
|
| - std::vector<BluetoothUUID> all_matching_of_many;
|
| - all_matching_of_many.push_back(BluetoothUUID("eee2"));
|
| - all_matching_of_many.push_back(BluetoothUUID("eee4"));
|
| - all_matching_of_many.push_back(BluetoothUUID("eee3"));
|
| - all_matching_of_many.push_back(BluetoothUUID("eeee"));
|
| + // All matching of many services in optional_services.
|
| + blink::mojom::WebBluetoothRequestDeviceOptions options;
|
| + options.optional_services.push_back(Canonicalize("eee2"));
|
| + options.optional_services.push_back(Canonicalize("eee4"));
|
| + options.optional_services.push_back(Canonicalize("eee3"));
|
| + options.optional_services.push_back(Canonicalize("eeee"));
|
|
|
| - std::vector<BluetoothUUID> expected_empty;
|
| + mojo::Array<mojo::String> expected = mojo::Array<mojo::String>();
|
|
|
| - list_.RemoveExcludedUuids(&all_matching_of_many);
|
| - EXPECT_EQ(expected_empty, all_matching_of_many);
|
| + list_.RemoveExcludedUUIDs(&options);
|
| + EXPECT_TRUE(options.optional_services.Equals(expected));
|
| }
|
| }
|
|
|
|
|