You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.1 KiB
58 lines
2.1 KiB
4 months ago
|
// Copyright 2019 The Chromium Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
#include "cast/common/public/testing/discovery_utils.h"
|
||
|
|
||
|
#include <sstream>
|
||
|
#include <string>
|
||
|
#include <vector>
|
||
|
|
||
|
#include "util/stringprintf.h"
|
||
|
|
||
|
namespace openscreen {
|
||
|
namespace cast {
|
||
|
|
||
|
const IPAddress kAddressV4 = {192, 168, 0, 0};
|
||
|
const IPAddress kAddressV6 = {1, 2, 3, 4, 5, 6, 7, 8};
|
||
|
const IPEndpoint kEndpointV4 = {kAddressV4, kPort};
|
||
|
const IPEndpoint kEndpointV6 = {kAddressV6, kPort};
|
||
|
|
||
|
discovery::DnsSdTxtRecord CreateValidTxt() {
|
||
|
discovery::DnsSdTxtRecord txt;
|
||
|
txt.SetValue(kUniqueIdKey, kTestUniqueId);
|
||
|
txt.SetValue(kVersionKey, std::to_string(kTestVersion));
|
||
|
txt.SetValue(kCapabilitiesKey, kCapabilitiesStringLong);
|
||
|
txt.SetValue(kStatusKey, std::to_string(kStatus));
|
||
|
txt.SetValue(kFriendlyNameKey, kFriendlyName);
|
||
|
txt.SetValue(kModelNameKey, kModelName);
|
||
|
return txt;
|
||
|
}
|
||
|
|
||
|
void CompareTxtString(const discovery::DnsSdTxtRecord& txt,
|
||
|
const std::string& key,
|
||
|
const std::string& expected) {
|
||
|
ErrorOr<discovery::DnsSdTxtRecord::ValueRef> value = txt.GetValue(key);
|
||
|
ASSERT_FALSE(value.is_error())
|
||
|
<< "expected value: '" << expected << "' for key: '" << key
|
||
|
<< "'; got error: " << value.error();
|
||
|
const std::vector<uint8_t>& data = value.value().get();
|
||
|
std::string parsed_value = std::string(data.begin(), data.end());
|
||
|
EXPECT_EQ(parsed_value, expected) << "expected value '"
|
||
|
<< "' for key: '" << key << "'";
|
||
|
}
|
||
|
|
||
|
void CompareTxtInt(const discovery::DnsSdTxtRecord& txt,
|
||
|
const std::string& key,
|
||
|
int expected) {
|
||
|
ErrorOr<discovery::DnsSdTxtRecord::ValueRef> value = txt.GetValue(key);
|
||
|
ASSERT_FALSE(value.is_error())
|
||
|
<< "key: '" << key << "'' expected: '" << expected << "'";
|
||
|
const std::vector<uint8_t>& data = value.value().get();
|
||
|
EXPECT_EQ(std::string(data.begin(), data.end()), std::to_string(expected))
|
||
|
<< "for key: '" << key << "'";
|
||
|
}
|
||
|
|
||
|
} // namespace cast
|
||
|
} // namespace openscreen
|