• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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