blob: 246ee8fbdc029a872304ea385c254d3595945b6b [file] [log] [blame]
// 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 "components/cronet/native/native_metrics_util.h"
#include "base/test/gtest_util.h"
#include "base/time/time.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace cronet {
namespace native_metrics_util {
namespace {
TEST(NativeMetricsUtilTest, ConvertsTimes) {
constexpr auto start_delta = base::TimeDelta::FromMilliseconds(20);
constexpr auto event_delta = base::TimeDelta::FromMilliseconds(30);
base::Optional<Cronet_DateTime> converted;
ConvertTime(base::TimeTicks::UnixEpoch() + event_delta,
base::TimeTicks::UnixEpoch() + start_delta,
base::Time::UnixEpoch() + start_delta, &converted);
ASSERT_TRUE(converted.has_value());
EXPECT_EQ(converted->value, 30);
}
TEST(NativeMetricsUtilTest, OverwritesOldOutParam) {
constexpr auto start_delta = base::TimeDelta::FromMilliseconds(20);
constexpr auto event_delta = base::TimeDelta::FromMilliseconds(30);
base::Optional<Cronet_DateTime> converted;
converted.emplace();
converted->value = 60;
ConvertTime(base::TimeTicks::UnixEpoch() + event_delta,
base::TimeTicks::UnixEpoch() + start_delta,
base::Time::UnixEpoch() + start_delta, &converted);
ASSERT_TRUE(converted.has_value());
EXPECT_EQ(converted->value, 30);
}
TEST(NativeMetricsUtilTest, NullTicks) {
constexpr auto start_delta = base::TimeDelta::FromMilliseconds(20);
base::Optional<Cronet_DateTime> converted;
ConvertTime(base::TimeTicks(), base::TimeTicks::UnixEpoch() + start_delta,
base::Time::UnixEpoch() + start_delta, &converted);
ASSERT_FALSE(converted.has_value());
}
TEST(NativeMetricsUtilTest, NullStartTicks) {
constexpr auto start_delta = base::TimeDelta::FromMilliseconds(20);
constexpr auto event_delta = base::TimeDelta::FromMilliseconds(30);
base::Optional<Cronet_DateTime> converted;
ConvertTime(base::TimeTicks::UnixEpoch() + event_delta, base::TimeTicks(),
base::Time::UnixEpoch() + start_delta, &converted);
ASSERT_FALSE(converted.has_value());
}
TEST(NativeMetricsUtilTest, NullStartTime) {
constexpr auto start_delta = base::TimeDelta::FromMilliseconds(20);
constexpr auto event_delta = base::TimeDelta::FromMilliseconds(30);
base::Optional<Cronet_DateTime> converted;
EXPECT_DCHECK_DEATH(ConvertTime(base::TimeTicks::UnixEpoch() + event_delta,
base::TimeTicks::UnixEpoch() + start_delta,
base::Time(), &converted));
}
} // namespace
} // namespace native_metrics_util
} // namespace cronet