0
Files
src/content/browser/host_zoom_map_impl_unittest.cc
Nasko Oskov ee48dfb4fa Prepare to remove //content/ from unsafe_bufers_paths.txt
Suppress unsafe buffer usage on a file-by-file basis.  Out of
approximately 5850 .cc and .h files only roughly 160 files fail
compilation with the unsafe buffers warning.

Suppress only, by inserting boilerplate into affected files. Do not
re-write any code to work around the issues. Properly fixing each file
will be done in follow-up CLs.

//content/ is not removed from unsafe_bufers_paths.txt file and will be
also done as a follow-up, so it makes potential reverts simpler.

Bug: 342213636
Change-Id: I4a936e63dea95a78951f7bfae6d5487708ae3c0b
AX-Relnotes: n/a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5608913
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Nasko Oskov <nasko@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1312393}
2024-06-08 05:13:06 +00:00

159 lines
5.7 KiB
C++

// Copyright 2011 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifdef UNSAFE_BUFFERS_BUILD
// TODO(crbug.com/342213636): Remove this and spanify to fix the errors.
#pragma allow_unsafe_buffers
#endif
#include "content/browser/host_zoom_map_impl.h"
#include <stddef.h>
#include "base/memory/ref_counted.h"
#include "base/test/simple_test_clock.h"
#include "content/public/test/browser_task_environment.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
class HostZoomMapTest : public testing::Test {
public:
HostZoomMapTest() = default;
private:
BrowserTaskEnvironment task_environment_;
};
TEST_F(HostZoomMapTest, GetSetZoomLevel) {
HostZoomMapImpl host_zoom_map;
double zoomed = 2.5;
host_zoom_map.SetZoomLevelForHost("zoomed.com", zoomed);
EXPECT_DOUBLE_EQ(0,
host_zoom_map.GetZoomLevelForHostAndScheme("http", "normal.com"));
EXPECT_DOUBLE_EQ(zoomed,
host_zoom_map.GetZoomLevelForHostAndScheme("http", "zoomed.com"));
}
TEST_F(HostZoomMapTest, GetSetZoomLevelWithScheme) {
HostZoomMapImpl host_zoom_map;
double zoomed = 2.5;
double default_zoom = 1.5;
host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", 0);
host_zoom_map.SetDefaultZoomLevel(default_zoom);
EXPECT_DOUBLE_EQ(0,
host_zoom_map.GetZoomLevelForHostAndScheme("chrome", "login"));
EXPECT_DOUBLE_EQ(default_zoom,
host_zoom_map.GetZoomLevelForHostAndScheme("http", "login"));
host_zoom_map.SetZoomLevelForHost("login", zoomed);
EXPECT_DOUBLE_EQ(0,
host_zoom_map.GetZoomLevelForHostAndScheme("chrome", "login"));
EXPECT_DOUBLE_EQ(zoomed,
host_zoom_map.GetZoomLevelForHostAndScheme("http", "login"));
}
TEST_F(HostZoomMapTest, GetAllZoomLevels) {
HostZoomMapImpl host_zoom_map;
double zoomed = 2.5;
host_zoom_map.SetZoomLevelForHost("zoomed.com", zoomed);
host_zoom_map.SetZoomLevelForHostAndScheme("https", "zoomed.com", zoomed);
host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", zoomed);
HostZoomMap::ZoomLevelVector levels = host_zoom_map.GetAllZoomLevels();
HostZoomMap::ZoomLevelChange expected[] = {
{HostZoomMap::ZOOM_CHANGED_FOR_HOST, "zoomed.com", std::string(), zoomed},
{HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST, "login", "chrome",
zoomed},
{HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST, "zoomed.com", "https",
zoomed}, };
ASSERT_EQ(std::size(expected), levels.size());
for (size_t i = 0; i < std::size(expected); ++i) {
SCOPED_TRACE(testing::Message() << "levels[" << i << "]");
EXPECT_EQ(expected[i].mode, levels[i].mode);
EXPECT_EQ(expected[i].scheme, levels[i].scheme);
EXPECT_EQ(expected[i].host, levels[i].host);
EXPECT_EQ(expected[i].zoom_level, levels[i].zoom_level);
EXPECT_EQ(expected[i].last_modified, base::Time());
}
}
TEST_F(HostZoomMapTest, LastModifiedTimestamp) {
HostZoomMapImpl host_zoom_map;
base::Time now = base::Time::Now();
base::SimpleTestClock test_clock;
host_zoom_map.SetClockForTesting(&test_clock);
test_clock.SetNow(now);
host_zoom_map.SetZoomLevelForHost("zoomed.com", 1.5);
host_zoom_map.SetZoomLevelForHost("zoomed2.com", 2.0);
base::Time later = now + base::Seconds(1);
test_clock.SetNow(later);
host_zoom_map.SetZoomLevelForHost("zoomed2.com", 2.5);
host_zoom_map.SetZoomLevelForHost("zoomzoom.com", 3);
host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", 3);
HostZoomMap::ZoomLevelVector levels = host_zoom_map.GetAllZoomLevels();
std::string scheme;
HostZoomMap::ZoomLevelChange expected[] = {
{HostZoomMap::ZOOM_CHANGED_FOR_HOST, "zoomed.com", scheme, 1.5, now},
{HostZoomMap::ZOOM_CHANGED_FOR_HOST, "zoomed2.com", scheme, 2.5, later},
{HostZoomMap::ZOOM_CHANGED_FOR_HOST, "zoomzoom.com", scheme, 3.0, later},
{HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST, "login", "chrome", 3.0,
base::Time()},
};
ASSERT_EQ(std::size(expected), levels.size());
for (size_t i = 0; i < std::size(expected); ++i) {
SCOPED_TRACE(testing::Message() << "levels[" << i << "]");
EXPECT_EQ(expected[i].mode, levels[i].mode);
EXPECT_EQ(expected[i].scheme, levels[i].scheme);
EXPECT_EQ(expected[i].host, levels[i].host);
EXPECT_EQ(expected[i].zoom_level, levels[i].zoom_level);
EXPECT_EQ(expected[i].last_modified, levels[i].last_modified);
}
}
TEST_F(HostZoomMapTest, ClearZoomLevels) {
HostZoomMapImpl host_zoom_map;
base::SimpleTestClock test_clock;
host_zoom_map.SetClockForTesting(&test_clock);
base::Time now = base::Time::Now();
test_clock.SetNow(now - base::Hours(3));
host_zoom_map.SetZoomLevelForHost("zoomzoom.com", 3.5);
test_clock.SetNow(now - base::Hours(1));
host_zoom_map.SetZoomLevelForHost("zoom.com", 1.5);
test_clock.SetNow(now - base::Days(31));
host_zoom_map.SetZoomLevelForHost("zoom2.com", 2.5);
EXPECT_EQ(3u, host_zoom_map.GetAllZoomLevels().size());
host_zoom_map.ClearZoomLevels(now - base::Hours(2), base::Time::Max());
ASSERT_EQ(2u, host_zoom_map.GetAllZoomLevels().size());
EXPECT_EQ("zoom2.com", host_zoom_map.GetAllZoomLevels()[0].host);
EXPECT_EQ("zoomzoom.com", host_zoom_map.GetAllZoomLevels()[1].host);
host_zoom_map.ClearZoomLevels(base::Time(), now - base::Days(30));
ASSERT_EQ(1u, host_zoom_map.GetAllZoomLevels().size());
EXPECT_EQ("zoomzoom.com", host_zoom_map.GetAllZoomLevels()[0].host);
host_zoom_map.ClearZoomLevels(base::Time(), base::Time::Max());
EXPECT_EQ(0u, host_zoom_map.GetAllZoomLevels().size());
// Host and scheme settings should not be affected.
host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", 3);
host_zoom_map.ClearZoomLevels(base::Time(), base::Time::Max());
EXPECT_EQ(1u, host_zoom_map.GetAllZoomLevels().size());
}
} // namespace content