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. 4 5 #include "content/browser/host_zoom_map_impl.h" 6 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" 12 13 namespace content { 14 15 class HostZoomMapTest : public testing::Test { 16 public: 17 HostZoomMapTest() : ui_thread_(BrowserThread::UI, &message_loop_) { 18 } 19 20 protected: 21 base::MessageLoop message_loop_; 22 TestBrowserThread ui_thread_; 23 }; 24 25 TEST_F(HostZoomMapTest, GetSetZoomLevel) { 26 HostZoomMapImpl host_zoom_map; 27 28 double zoomed = 2.5; 29 host_zoom_map.SetZoomLevelForHost("zoomed.com", zoomed); 30 31 EXPECT_DOUBLE_EQ(0, 32 host_zoom_map.GetZoomLevelForHostAndScheme("http", "normal.com")); 33 EXPECT_DOUBLE_EQ(zoomed, 34 host_zoom_map.GetZoomLevelForHostAndScheme("http", "zoomed.com")); 35 } 36 37 TEST_F(HostZoomMapTest, GetSetZoomLevelWithScheme) { 38 HostZoomMapImpl host_zoom_map; 39 40 double zoomed = 2.5; 41 double default_zoom = 1.5; 42 43 host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", 0); 44 45 host_zoom_map.SetDefaultZoomLevel(default_zoom); 46 47 EXPECT_DOUBLE_EQ(0, 48 host_zoom_map.GetZoomLevelForHostAndScheme("chrome", "login")); 49 EXPECT_DOUBLE_EQ(default_zoom, 50 host_zoom_map.GetZoomLevelForHostAndScheme("http", "login")); 51 52 host_zoom_map.SetZoomLevelForHost("login", zoomed); 53 54 EXPECT_DOUBLE_EQ(0, 55 host_zoom_map.GetZoomLevelForHostAndScheme("chrome", "login")); 56 EXPECT_DOUBLE_EQ(zoomed, 57 host_zoom_map.GetZoomLevelForHostAndScheme("http", "login")); 58 } 59 60 TEST_F(HostZoomMapTest, GetAllZoomLevels) { 61 HostZoomMapImpl host_zoom_map; 62 63 double zoomed = 2.5; 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); 67 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", 72 zoomed}, 73 {HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST, "zoomed.com", "https", 74 zoomed}, }; 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); 82 } 83 } 84 85 } // namespace content 86