Home | History | Annotate | Download | only in website_settings
      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 "chrome/common/content_settings_types.h"
      8 #include "testing/gtest/include/gtest/gtest.h"
      9 #include "url/gurl.h"
     10 
     11 namespace {
     12 
     13 class 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 
     29 TEST(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 
     40 TEST(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 
     51 TEST(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