OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import "chrome/browser/ui/cocoa/content_settings/content_setting_bubble_cocoa.h
" | 5 #import "chrome/browser/ui/cocoa/content_settings/content_setting_bubble_cocoa.h
" |
6 | 6 |
7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
8 | 8 |
9 #include "base/mac/scoped_nsautorelease_pool.h" | 9 #include "base/mac/scoped_nsautorelease_pool.h" |
10 #include "base/mac/scoped_nsobject.h" | 10 #include "base/mac/scoped_nsobject.h" |
| 11 #include "chrome/browser/browser_process.h" |
11 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 12 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
| 13 #include "chrome/browser/download/download_request_limiter.h" |
12 #include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h" | 14 #include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h" |
13 #include "chrome/browser/ui/browser.h" | 15 #include "chrome/browser/ui/browser.h" |
14 #import "chrome/browser/ui/cocoa/test/cocoa_test_helper.h" | 16 #import "chrome/browser/ui/cocoa/test/cocoa_test_helper.h" |
15 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h" | 17 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h" |
16 #include "chrome/browser/ui/content_settings/content_setting_image_model.h" | 18 #include "chrome/browser/ui/content_settings/content_setting_image_model.h" |
17 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 19 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
18 #include "chrome/grit/generated_resources.h" | 20 #include "chrome/grit/generated_resources.h" |
19 #include "chrome/test/base/in_process_browser_test.h" | 21 #include "chrome/test/base/in_process_browser_test.h" |
20 #include "content/public/common/media_stream_request.h" | 22 #include "content/public/common/media_stream_request.h" |
21 #include "testing/gtest_mac.h" | 23 #include "testing/gtest_mac.h" |
22 #include "ui/base/l10n/l10n_util.h" | 24 #include "ui/base/l10n/l10n_util.h" |
23 | 25 |
24 namespace { | |
25 | |
26 class ContentSettingBubbleControllerTest : public InProcessBrowserTest { | 26 class ContentSettingBubbleControllerTest : public InProcessBrowserTest { |
27 protected: | 27 protected: |
28 ContentSettingBubbleControllerTest() {} | 28 ContentSettingBubbleControllerTest() {} |
29 | 29 |
30 content::WebContents* web_contents() { | 30 content::WebContents* web_contents() { |
31 return browser()->tab_strip_model()->GetActiveWebContents(); | 31 return browser()->tab_strip_model()->GetActiveWebContents(); |
32 } | 32 } |
33 | 33 |
34 Profile* profile() { | 34 Profile* profile() { |
35 return browser()->profile(); | 35 return browser()->profile(); |
(...skipping 29 matching lines...) Expand all Loading... |
65 EXPECT_TRUE(controller); | 65 EXPECT_TRUE(controller); |
66 EXPECT_TRUE([[controller window] isVisible]); | 66 EXPECT_TRUE([[controller window] isVisible]); |
67 | 67 |
68 return controller; | 68 return controller; |
69 } | 69 } |
70 | 70 |
71 // Check that the bubble doesn't crash or leak for any image model. | 71 // Check that the bubble doesn't crash or leak for any image model. |
72 IN_PROC_BROWSER_TEST_F(ContentSettingBubbleControllerTest, Init) { | 72 IN_PROC_BROWSER_TEST_F(ContentSettingBubbleControllerTest, Init) { |
73 TabSpecificContentSettings::FromWebContents(web_contents())-> | 73 TabSpecificContentSettings::FromWebContents(web_contents())-> |
74 BlockAllContentForTesting(); | 74 BlockAllContentForTesting(); |
| 75 |
| 76 // Automatic downloads are handled by DownloadRequestLimiter. |
| 77 g_browser_process->download_request_limiter() |
| 78 ->GetDownloadState(web_contents(), web_contents(), true) |
| 79 ->SetDownloadStatusAndNotify( |
| 80 DownloadRequestLimiter::DOWNLOADS_NOT_ALLOWED); |
| 81 |
75 std::vector<std::unique_ptr<ContentSettingImageModel>> models = | 82 std::vector<std::unique_ptr<ContentSettingImageModel>> models = |
76 ContentSettingImageModel::GenerateContentSettingImageModels(); | 83 ContentSettingImageModel::GenerateContentSettingImageModels(); |
77 for (const auto& model : models) { | 84 for (const auto& model : models) { |
78 ContentSettingBubbleModel* bubble = | 85 ContentSettingBubbleModel* bubble = |
79 model->CreateBubbleModel(nullptr, web_contents(), profile()); | 86 model->CreateBubbleModel(nullptr, web_contents(), profile()); |
80 ContentSettingBubbleController* controller = CreateBubbleController(bubble); | 87 ContentSettingBubbleController* controller = CreateBubbleController(bubble); |
81 // No bubble except the one for media should have media menus. | 88 // No bubble except the one for media should have media menus. |
82 if (!bubble->AsMediaStreamBubbleModel()) | 89 if (!bubble->AsMediaStreamBubbleModel()) |
83 EXPECT_EQ(0u, [controller mediaMenus]->size()); | 90 EXPECT_EQ(0u, [controller mediaMenus]->size()); |
84 [parent_ close]; | 91 [parent_ close]; |
(...skipping 18 matching lines...) Expand all Loading... |
103 mediaMenus->begin(); i != mediaMenus->end(); ++i) { | 110 mediaMenus->begin(); i != mediaMenus->end(); ++i) { |
104 EXPECT_TRUE((content::MEDIA_DEVICE_AUDIO_CAPTURE == i->second->type) || | 111 EXPECT_TRUE((content::MEDIA_DEVICE_AUDIO_CAPTURE == i->second->type) || |
105 (content::MEDIA_DEVICE_VIDEO_CAPTURE == i->second->type)); | 112 (content::MEDIA_DEVICE_VIDEO_CAPTURE == i->second->type)); |
106 EXPECT_EQ(0, [i->first numberOfItems]); | 113 EXPECT_EQ(0, [i->first numberOfItems]); |
107 EXPECT_NSEQ(title, [i->first title]); | 114 EXPECT_NSEQ(title, [i->first title]); |
108 EXPECT_FALSE([i->first isEnabled]); | 115 EXPECT_FALSE([i->first isEnabled]); |
109 } | 116 } |
110 | 117 |
111 [parent_ close]; | 118 [parent_ close]; |
112 } | 119 } |
113 | |
114 } // namespace | |
OLD | NEW |