diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-02-13 10:55:42 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-03-05 13:33:38 +0000 |
commit | 248b70b82a40964d5594eb04feca0fa36716185d (patch) | |
tree | 44e31d9dd0ac2cb79f48633eefbc5496e013c347 /chromium/chrome/browser/net/probe_message_unittest.cc | |
parent | cabfcdd1db482729ded525feae56911a99792773 (diff) | |
download | qtwebengine-chromium-248b70b82a40964d5594eb04feca0fa36716185d.tar.gz |
BASELINE: Update Chromium to 79.0.3945.147
And new simplified snapshot filter
Change-Id: I7c692bedd5b3833f05565bd6f6939115350b233a
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/chrome/browser/net/probe_message_unittest.cc')
-rw-r--r-- | chromium/chrome/browser/net/probe_message_unittest.cc | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/chromium/chrome/browser/net/probe_message_unittest.cc b/chromium/chrome/browser/net/probe_message_unittest.cc new file mode 100644 index 00000000000..b3d89708517 --- /dev/null +++ b/chromium/chrome/browser/net/probe_message_unittest.cc @@ -0,0 +1,107 @@ +// Copyright 2013 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 <stdint.h> +#include <string.h> + +#include "chrome/browser/net/probe_message.h" +#include "chrome/browser/net/probe_message.pb.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace chrome_browser_net { + +class ProbeMessageTest : public ::testing::Test { + protected: + ProbeMessageTest() {} + + ~ProbeMessageTest() override {} +}; + +TEST_F(ProbeMessageTest, TestGenerateProbeRequest) { + ProbeMessage pm; + ProbePacket_Token token; + token.set_timestamp_micros(1000000U); + token.mutable_hash()->assign("1x1x"); + uint32_t group_id = 1; + uint32_t probe_size = 500; + uint32_t pacing_interval_micros = 1000000; + uint32_t number_probe_packets = 21; + ProbePacket probe_packet; + pm.GenerateProbeRequest(token, + group_id, + probe_size, + pacing_interval_micros, + number_probe_packets, + &probe_packet); + + EXPECT_EQ(probe_packet.header().type(), ProbePacket_Type_PROBE_REQUEST); + EXPECT_EQ(probe_packet.header().version(), ProbeMessage::kVersion); + EXPECT_EQ(probe_packet.group_id(), group_id); + EXPECT_EQ(probe_packet.probe_size_bytes(), probe_size); + EXPECT_EQ(probe_packet.pacing_interval_micros(), pacing_interval_micros); + EXPECT_EQ(probe_packet.number_probe_packets(), number_probe_packets); + EXPECT_GE(probe_packet.ByteSize(), static_cast<int>(probe_size)); +} + +TEST_F(ProbeMessageTest, TestSetPacketHeader) { + ProbeMessage pm; + ProbePacket probe_packet; + pm.SetPacketHeader(ProbePacket_Type_HELLO_REQUEST, &probe_packet); + EXPECT_EQ(probe_packet.header().type(), ProbePacket_Type_HELLO_REQUEST); + EXPECT_EQ(probe_packet.header().version(), ProbeMessage::kVersion); + + pm.SetPacketHeader(ProbePacket_Type_PROBE_REPLY, &probe_packet); + EXPECT_EQ(probe_packet.header().type(), ProbePacket_Type_PROBE_REPLY); +} + +TEST_F(ProbeMessageTest, TestMakeEncodePacketAndParseInput) { + ProbeMessage pm; + ProbePacket in_packet; + uint32_t version = 2; + ProbePacket_Type type = ProbePacket_Type_HELLO_REPLY; + uint32_t number_probe_packets = 2; + uint32_t group_id = 5; + in_packet.mutable_header()->set_version(version); + in_packet.mutable_header()->set_type(type); + in_packet.set_number_probe_packets(number_probe_packets); + in_packet.set_group_id(group_id); + + // Encode it to string. + std::string output = pm.MakeEncodedPacket(in_packet); + // Parse to ProbePacket. + ProbePacket out_packet; + pm.ParseInput(output, &out_packet); + + EXPECT_EQ(out_packet.header().type(), type); + EXPECT_EQ(out_packet.header().version(), version); + EXPECT_EQ(out_packet.number_probe_packets(), number_probe_packets); + EXPECT_EQ(out_packet.group_id(), group_id); +} + +TEST_F(ProbeMessageTest, TestChecksum) { + ProbeMessage pm; + std::string str("ABC"); + uint32_t computed_checksum = pm.Checksum(str); + uint32_t expected_sum = 0; + for (unsigned i = 0; i < str.size(); ++i) + expected_sum += static_cast<uint8_t>(str[i]); + EXPECT_EQ(computed_checksum, expected_sum); +} + +TEST_F(ProbeMessageTest, TestEncode) { + ProbeMessage pm; + std::string original("ABC"); + std::string output = pm.Encode(original); + std::string expected_str(original.size(), 0); + for (unsigned i = 0; i < original.size(); ++i) { + expected_str[i] = original[i] ^ ProbeMessage::kEncodingString[i]; + } + EXPECT_EQ(output, expected_str); + + // Do it again to decode. + std::string twice_encoded = pm.Encode(output); + EXPECT_EQ(twice_encoded, original); +} + +} // namespace chrome_browser_net |