1 // Copyright (c) 2011 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_COCOA_INFOBARS_MOCK_CONFIRM_INFOBAR_DELEGATE_H_ 6 #define CHROME_BROWSER_UI_COCOA_INFOBARS_MOCK_CONFIRM_INFOBAR_DELEGATE_H_ 7 8 #include "base/basictypes.h" 9 #include "base/compiler_specific.h" 10 #include "base/strings/string16.h" 11 #include "components/infobars/core/confirm_infobar_delegate.h" 12 13 class MockConfirmInfoBarDelegate : public ConfirmInfoBarDelegate { 14 public: 15 // Called when |this| is about to be destroyed. 16 class Owner { 17 public: 18 virtual void OnInfoBarDelegateClosed() = 0; 19 20 protected: 21 virtual ~Owner() {} 22 }; 23 24 explicit MockConfirmInfoBarDelegate(Owner* owner); 25 virtual ~MockConfirmInfoBarDelegate(); 26 27 void set_dont_close_on_action() { closes_on_action_ = false; } 28 bool icon_accessed() const { return icon_accessed_; } 29 bool message_text_accessed() const { return message_text_accessed_; } 30 bool link_text_accessed() const { return link_text_accessed_; } 31 bool ok_clicked() const { return ok_clicked_; } 32 bool cancel_clicked() const { return cancel_clicked_; } 33 bool link_clicked() const { return link_clicked_; } 34 35 static const char kMessage[]; 36 37 private: 38 // ConfirmInfoBarDelegate: 39 virtual int GetIconID() const OVERRIDE; 40 virtual base::string16 GetMessageText() const OVERRIDE; 41 virtual base::string16 GetButtonLabel(InfoBarButton button) const OVERRIDE; 42 virtual bool Accept() OVERRIDE; 43 virtual bool Cancel() OVERRIDE; 44 virtual base::string16 GetLinkText() const OVERRIDE; 45 virtual bool LinkClicked(WindowOpenDisposition disposition) OVERRIDE; 46 47 Owner* owner_; 48 // Determines whether the infobar closes when an action is taken or not. 49 bool closes_on_action_; 50 mutable bool icon_accessed_; 51 mutable bool message_text_accessed_; 52 mutable bool link_text_accessed_; 53 bool ok_clicked_; 54 bool cancel_clicked_; 55 bool link_clicked_; 56 57 DISALLOW_COPY_AND_ASSIGN(MockConfirmInfoBarDelegate); 58 }; 59 60 #endif // CHROME_BROWSER_UI_COCOA_INFOBARS_MOCK_CONFIRM_INFOBAR_DELEGATE_H_ 61