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