blob: 2901e16d7a04698e72a89a31be74a8ebd4f57c63 [file] [log] [blame]
// Copyright (c) 2011 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 "content/browser/host_zoom_map_impl.h"
#include <stddef.h>
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/message_loop/message_loop.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/test/test_browser_thread.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
class HostZoomMapTest : public testing::Test {
public:
HostZoomMapTest() : ui_thread_(BrowserThread::UI, &message_loop_) {
}
protected:
base::MessageLoop message_loop_;
TestBrowserThread ui_thread_;
};
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(arraysize(expected), levels.size());
for (size_t i = 0; i < arraysize(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);
}
}
} // namespace content