permission_menu_model_unittest.cc revision 5f1c94371a64b3196d4be9466099bb892df9b88e
1// Copyright 2014 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 "chrome/browser/ui/website_settings/permission_menu_model.h" 6#include "chrome/common/content_settings.h" 7#include "components/content_settings/core/common/content_settings_types.h" 8#include "testing/gtest/include/gtest/gtest.h" 9#include "url/gurl.h" 10 11namespace { 12 13class TestCallback { 14 public: 15 TestCallback() : current_(-1) {} 16 17 PermissionMenuModel::ChangeCallback callback() { 18 return base::Bind(&TestCallback::PermissionChanged, base::Unretained(this)); 19 } 20 void PermissionChanged(const WebsiteSettingsUI::PermissionInfo& permission) { 21 current_ = permission.setting; 22 } 23 24 int current_; 25}; 26 27} // namespace 28 29TEST(PermissionMenuModelTest, TestDefault) { 30 TestCallback callback; 31 WebsiteSettingsUI::PermissionInfo permission; 32 permission.type = CONTENT_SETTINGS_TYPE_COOKIES; 33 permission.setting = CONTENT_SETTING_ALLOW; 34 permission.default_setting = CONTENT_SETTING_ALLOW; 35 PermissionMenuModel model( 36 GURL("http://www.google.com"), permission, callback.callback()); 37 EXPECT_EQ(3, model.GetItemCount()); 38} 39 40TEST(PermissionMenuModelTest, TestDefaultMediaHttp) { 41 TestCallback callback; 42 WebsiteSettingsUI::PermissionInfo permission; 43 permission.type = CONTENT_SETTINGS_TYPE_MEDIASTREAM; 44 permission.setting = CONTENT_SETTING_ALLOW; 45 permission.default_setting = CONTENT_SETTING_ALLOW; 46 PermissionMenuModel model( 47 GURL("http://www.google.com"), permission, callback.callback()); 48 EXPECT_EQ(2, model.GetItemCount()); 49} 50 51TEST(PermissionMenuModelTest, TestAllowBlock) { 52 TestCallback callback; 53 PermissionMenuModel model(GURL("http://www.google.com"), 54 CONTENT_SETTING_ALLOW, 55 callback.callback()); 56 EXPECT_EQ(2, model.GetItemCount()); 57} 58