1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/browser/host_zoom_map_impl.h"
7 #include "base/memory/ref_counted.h"
8 #include "base/message_loop/message_loop.h"
9 #include "content/public/browser/browser_thread.h"
10 #include "content/public/test/test_browser_thread.h"
11 #include "testing/gtest/include/gtest/gtest.h"
15 class HostZoomMapTest
: public testing::Test
{
17 HostZoomMapTest() : ui_thread_(BrowserThread::UI
, &message_loop_
) {
21 base::MessageLoop message_loop_
;
22 TestBrowserThread ui_thread_
;
25 TEST_F(HostZoomMapTest
, GetSetZoomLevel
) {
26 HostZoomMapImpl host_zoom_map
;
29 host_zoom_map
.SetZoomLevelForHost("zoomed.com", zoomed
);
32 host_zoom_map
.GetZoomLevelForHostAndScheme("http", "normal.com"));
33 EXPECT_DOUBLE_EQ(zoomed
,
34 host_zoom_map
.GetZoomLevelForHostAndScheme("http", "zoomed.com"));
37 TEST_F(HostZoomMapTest
, GetSetZoomLevelWithScheme
) {
38 HostZoomMapImpl host_zoom_map
;
41 double default_zoom
= 1.5;
43 host_zoom_map
.SetZoomLevelForHostAndScheme("chrome", "login", 0);
45 host_zoom_map
.SetDefaultZoomLevel(default_zoom
);
48 host_zoom_map
.GetZoomLevelForHostAndScheme("chrome", "login"));
49 EXPECT_DOUBLE_EQ(default_zoom
,
50 host_zoom_map
.GetZoomLevelForHostAndScheme("http", "login"));
52 host_zoom_map
.SetZoomLevelForHost("login", zoomed
);
55 host_zoom_map
.GetZoomLevelForHostAndScheme("chrome", "login"));
56 EXPECT_DOUBLE_EQ(zoomed
,
57 host_zoom_map
.GetZoomLevelForHostAndScheme("http", "login"));
60 TEST_F(HostZoomMapTest
, GetAllZoomLevels
) {
61 HostZoomMapImpl host_zoom_map
;
64 host_zoom_map
.SetZoomLevelForHost("zoomed.com", zoomed
);
65 host_zoom_map
.SetZoomLevelForHostAndScheme("https", "zoomed.com", zoomed
);
66 host_zoom_map
.SetZoomLevelForHostAndScheme("chrome", "login", zoomed
);
68 HostZoomMap::ZoomLevelVector levels
= host_zoom_map
.GetAllZoomLevels();
69 HostZoomMap::ZoomLevelChange expected
[] = {
70 {HostZoomMap::ZOOM_CHANGED_FOR_HOST
, "zoomed.com", std::string(), zoomed
},
71 {HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST
, "login", "chrome",
73 {HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST
, "zoomed.com", "https",
75 ASSERT_EQ(arraysize(expected
), levels
.size());
76 for (size_t i
= 0; i
< arraysize(expected
); ++i
) {
77 SCOPED_TRACE(testing::Message() << "levels[" << i
<< "]");
78 EXPECT_EQ(expected
[i
].mode
, levels
[i
].mode
);
79 EXPECT_EQ(expected
[i
].scheme
, levels
[i
].scheme
);
80 EXPECT_EQ(expected
[i
].host
, levels
[i
].host
);
81 EXPECT_EQ(expected
[i
].zoom_level
, levels
[i
].zoom_level
);
85 } // namespace content