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

// 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