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 3// found in the LICENSE file. 4 5#import "chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.h" 6 7#include "chrome/browser/ui/browser.h" 8#include "chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_controller.h" 9#import "chrome/browser/ui/cocoa/extensions/extension_install_prompt_test_utils.h" 10#import "chrome/browser/ui/cocoa/extensions/extension_install_view_controller.h" 11#include "chrome/browser/ui/tabs/tab_strip_model.h" 12#include "chrome/test/base/in_process_browser_test.h" 13#include "extensions/common/extension.h" 14 15using extensions::Extension; 16 17class ExtensionInstallDialogControllerTest : public InProcessBrowserTest { 18public: 19 ExtensionInstallDialogControllerTest() {} 20 21 virtual void SetUpOnMainThread() OVERRIDE { 22 extension_ = chrome::LoadInstallPromptExtension(); 23 } 24 25 protected: 26 scoped_refptr<Extension> extension_; 27}; 28 29IN_PROC_BROWSER_TEST_F(ExtensionInstallDialogControllerTest, BasicTest) { 30 content::WebContents* tab = browser()->tab_strip_model()->GetWebContentsAt(0); 31 ExtensionInstallPrompt::ShowParams show_params(tab); 32 33 chrome::MockExtensionInstallPromptDelegate delegate; 34 scoped_refptr<ExtensionInstallPrompt::Prompt> prompt = 35 chrome::BuildExtensionInstallPrompt(extension_.get()); 36 37 ExtensionInstallDialogController* controller = 38 new ExtensionInstallDialogController(show_params, 39 &delegate, 40 prompt); 41 42 base::scoped_nsobject<NSWindow> window( 43 [[[controller->view_controller() view] window] retain]); 44 EXPECT_TRUE([window isVisible]); 45 46 // Press cancel to close the window 47 [[controller->view_controller() cancelButton] performClick:nil]; 48 49 // Wait for the window to finish closing. 50 EXPECT_FALSE([window isVisible]); 51} 52 53IN_PROC_BROWSER_TEST_F(ExtensionInstallDialogControllerTest, 54 DISABLED_Permissions) { 55 content::WebContents* tab = browser()->tab_strip_model()->GetWebContentsAt(0); 56 ExtensionInstallPrompt::ShowParams show_params(tab); 57 58 chrome::MockExtensionInstallPromptDelegate delegate; 59 scoped_refptr<ExtensionInstallPrompt::Prompt> prompt = 60 chrome::BuildExtensionPostInstallPermissionsPrompt(extension_.get()); 61 62 ExtensionInstallDialogController* controller = 63 new ExtensionInstallDialogController(show_params, 64 &delegate, 65 prompt); 66 67 base::scoped_nsobject<NSWindow> window( 68 [[[controller->view_controller() view] window] retain]); 69 EXPECT_TRUE([window isVisible]); 70 71 // Press cancel to close the window 72 [[controller->view_controller() cancelButton] performClick:nil]; 73 74 // Wait for the window to finish closing. 75 EXPECT_FALSE([window isVisible]); 76} 77