1// Copyright 2013 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#ifndef CHROME_BROWSER_UI_AUTOFILL_TEST_GENERATED_CREDIT_CARD_BUBBLE_VIEW_H_
6#define CHROME_BROWSER_UI_AUTOFILL_TEST_GENERATED_CREDIT_CARD_BUBBLE_VIEW_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "base/memory/weak_ptr.h"
11#include "chrome/browser/ui/autofill/generated_credit_card_bubble_view.h"
12
13namespace autofill {
14
15////////////////////////////////////////////////////////////////////////////////
16//
17// TestGeneratedCreditCardBubbleView
18//
19//  A cross-platform, headless bubble that doesn't conflict with other top-level
20//  widgets/windows.
21//
22////////////////////////////////////////////////////////////////////////////////
23class TestGeneratedCreditCardBubbleView : public GeneratedCreditCardBubbleView {
24 public:
25  // Creates a bubble and returns a weak reference to it.
26  static base::WeakPtr<TestGeneratedCreditCardBubbleView> Create(
27      const base::WeakPtr<GeneratedCreditCardBubbleController>& controller);
28
29  virtual ~TestGeneratedCreditCardBubbleView();
30
31  // GeneratedCreditCardBubbleView:
32  virtual void Show() OVERRIDE;
33  virtual void Hide() OVERRIDE;
34  virtual bool IsHiding() const OVERRIDE;
35
36  base::WeakPtr<TestGeneratedCreditCardBubbleView> GetWeakPtr();
37
38  bool showing() const { return showing_; }
39
40 private:
41  explicit TestGeneratedCreditCardBubbleView(
42      const base::WeakPtr<GeneratedCreditCardBubbleController>& controller);
43
44  // A weak reference to the controller that operates this bubble.
45  base::WeakPtr<GeneratedCreditCardBubbleController> controller_;
46
47  // Whether the bubble is currently showing or not.
48  bool showing_;
49
50  base::WeakPtrFactory<TestGeneratedCreditCardBubbleView> weak_ptr_factory_;
51
52  DISALLOW_COPY_AND_ASSIGN(TestGeneratedCreditCardBubbleView);
53};
54
55}  // namespace autofill
56
57#endif  // CHROME_BROWSER_UI_AUTOFILL_TEST_GENERATED_CREDIT_CARD_BUBBLE_VIEW_H_
58