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 <Cocoa/Cocoa.h>
6#import <objc/runtime.h>
7
8#import "chrome/browser/ui/cocoa/browser_window_cocoa.h"
9
10#include "base/logging.h"
11#include "chrome/browser/ui/browser.h"
12#include "chrome/browser/ui/browser_window.h"
13#include "chrome/browser/ui/cocoa/browser_window_cocoa.h"
14#import "chrome/browser/ui/cocoa/info_bubble_window.h"
15#include "chrome/test/base/in_process_browser_test.h"
16#include "components/autofill/core/browser/password_generator.h"
17#include "components/autofill/core/common/password_form.h"
18#include "ui/gfx/native_widget_types.h"
19#include "ui/gfx/rect.h"
20
21typedef InProcessBrowserTest BrowserWindowCocoaBrowsertest;
22
23IN_PROC_BROWSER_TEST_F(BrowserWindowCocoaBrowsertest,
24                       ShowPasswordGenerationBubble) {
25  gfx::Rect rect;
26  autofill::PasswordForm form;
27  autofill::PasswordGenerator generator(10);
28  browser()->window()->ShowPasswordGenerationBubble(rect, form, &generator);
29
30  // Make sure that the password generation bubble is actually created.
31  NSWindow* window = browser()->window()->GetNativeWindow();
32  BOOL found = NO;
33  for (NSUInteger i = 0; i < [[window childWindows] count]; i++) {
34    id object = [[window childWindows] objectAtIndex:i];
35    if ([object isKindOfClass:[InfoBubbleWindow class]])
36      found = YES;
37  }
38  EXPECT_TRUE(found);
39}
40