blob: e7bf33dd799c51eeaa4dbecc50bcf49dd0716485 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/content_settings/browser/ui/cookie_controls_util.h"
#include "base/time/time_override.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content_settings {
namespace {
using ::testing::Eq;
struct StaticOverrideTime {
static base::Time Now() { return override_time; }
static base::Time override_time;
};
base::Time StaticOverrideTime::override_time;
} // namespace
class CookieControlsUtilTest : public ::testing::Test {
public:
base::Time GetTime(const char* time_str) {
base::Time time;
EXPECT_TRUE(base::Time::FromString(time_str, &time));
return time;
}
base::subtle::ScopedTimeClockOverrides GetScopedNow(const char* time_str) {
StaticOverrideTime::override_time = GetTime(time_str);
return base::subtle::ScopedTimeClockOverrides(
&StaticOverrideTime::Now,
/*time_ticks_override=*/nullptr,
/*thread_ticks_override=*/nullptr);
}
};
// Return value of 0 represents times that occur today.
TEST_F(CookieControlsUtilTest, Today) {
auto time_override = GetScopedNow("Tue, 15 Nov 2023 12:45:26");
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 15 Nov 2023 12:51:26")),
Eq(0));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 15 Nov 2023 12:45:26")),
Eq(0));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 15 Nov 2023 23:59:59")),
Eq(0));
// EXPECT_THAT(task_environment_.GetMockClock()->Now(), Eq(GetTime("Tue, 15
// Nov 2023 12:45:26")));
}
// Return value of 1 represents times that occur tomorrow.
TEST_F(CookieControlsUtilTest, Tomorrow) {
auto time_override = GetScopedNow("Tue, 15 Nov 2023 12:45:26");
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 16 Nov 2023 00:00:01")),
Eq(1));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 16 Nov 2023 5:45:25")),
Eq(1));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 16 Nov 2023 12:45:25")),
Eq(1));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 16 Nov 2023 12:45:26")),
Eq(1));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 16 Nov 2023 23:59:59")),
Eq(1));
}
TEST_F(CookieControlsUtilTest, TwoDays) {
auto time_override = GetScopedNow("Tue, 15 Nov 2023 12:45:26");
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 17 Nov 2023 00:00:01")),
Eq(2));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 17 Nov 2023 5:45:25")),
Eq(2));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 17 Nov 2023 12:45:25")),
Eq(2));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 17 Nov 2023 12:45:26")),
Eq(2));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 17 Nov 2023 23:59:59")),
Eq(2));
}
TEST_F(CookieControlsUtilTest, Past) {
auto time_override = GetScopedNow("Tue, 15 Nov 2023 12:45:26");
// Still today
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 15 Nov 2023 12:51:25")),
Eq(0));
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 15 Nov 2023 00:00:00")),
Eq(0));
// Yesterday
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 14 Nov 2023 23:59:59")),
Eq(-1));
// Two days ago
EXPECT_THAT(CookieControlsUtil::GetDaysToExpiration(
GetTime("Tue, 13 Nov 2023 12:45:26")),
Eq(-2));
}
} // namespace content_settings