15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/browser/host_zoom_map_impl.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/ref_counted.h" 89ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/message_loop/message_loop.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/browser_thread.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/test/test_browser_thread.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HostZoomMapTest : public testing::Test { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostZoomMapTest() : ui_thread_(BrowserThread::UI, &message_loop_) { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::MessageLoop message_loop_; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestBrowserThread ui_thread_; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST_F(HostZoomMapTest, GetSetZoomLevel) { 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostZoomMapImpl host_zoom_map; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double zoomed = 2.5; 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) host_zoom_map.SetZoomLevelForHost("zoomed.com", zoomed); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_DOUBLE_EQ(0, 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) host_zoom_map.GetZoomLevelForHostAndScheme("http", "normal.com")); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_DOUBLE_EQ(zoomed, 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) host_zoom_map.GetZoomLevelForHostAndScheme("http", "zoomed.com")); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST_F(HostZoomMapTest, GetSetZoomLevelWithScheme) { 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) HostZoomMapImpl host_zoom_map; 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double zoomed = 2.5; 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) double default_zoom = 1.5; 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", 0); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) host_zoom_map.SetDefaultZoomLevel(default_zoom); 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_DOUBLE_EQ(0, 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) host_zoom_map.GetZoomLevelForHostAndScheme("chrome", "login")); 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_DOUBLE_EQ(default_zoom, 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) host_zoom_map.GetZoomLevelForHostAndScheme("http", "login")); 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) host_zoom_map.SetZoomLevelForHost("login", zoomed); 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_DOUBLE_EQ(0, 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) host_zoom_map.GetZoomLevelForHostAndScheme("chrome", "login")); 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_DOUBLE_EQ(zoomed, 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) host_zoom_map.GetZoomLevelForHostAndScheme("http", "login")); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(HostZoomMapTest, GetAllZoomLevels) { 6123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) HostZoomMapImpl host_zoom_map; 6223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 6323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) double zoomed = 2.5; 6423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) host_zoom_map.SetZoomLevelForHost("zoomed.com", zoomed); 6523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) host_zoom_map.SetZoomLevelForHostAndScheme("https", "zoomed.com", zoomed); 6623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) host_zoom_map.SetZoomLevelForHostAndScheme("chrome", "login", zoomed); 6723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 6823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) HostZoomMap::ZoomLevelVector levels = host_zoom_map.GetAllZoomLevels(); 6923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) HostZoomMap::ZoomLevelChange expected[] = { 7023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) {HostZoomMap::ZOOM_CHANGED_FOR_HOST, "zoomed.com", std::string(), zoomed}, 7123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) {HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST, "login", "chrome", 7223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) zoomed}, 7323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) {HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST, "zoomed.com", "https", 7423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) zoomed}, }; 7523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) ASSERT_EQ(arraysize(expected), levels.size()); 7623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) for (size_t i = 0; i < arraysize(expected); ++i) { 7723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) SCOPED_TRACE(testing::Message() << "levels[" << i << "]"); 7823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ(expected[i].mode, levels[i].mode); 7923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ(expected[i].scheme, levels[i].scheme); 8023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ(expected[i].host, levels[i].host); 8123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ(expected[i].zoom_level, levels[i].zoom_level); 8223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) } 8323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 8423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 86