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_AUTOCOMPLETE_TEXT_FIELD_UNITTEST_HELPER_H_
6#define CHROME_BROWSER_UI_COCOA_AUTOCOMPLETE_TEXT_FIELD_UNITTEST_HELPER_H_
7#pragma once
8
9#import <Cocoa/Cocoa.h>
10
11#import "base/mac/cocoa_protocols.h"
12#include "base/memory/scoped_nsobject.h"
13#import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field.h"
14#include "testing/gmock/include/gmock/gmock.h"
15
16@class AutocompleteTextFieldEditor;
17
18// Return the right field editor for AutocompleteTextField instance.
19
20@interface AutocompleteTextFieldWindowTestDelegate :
21    NSObject<NSWindowDelegate> {
22  scoped_nsobject<AutocompleteTextFieldEditor> editor_;
23}
24- (id)windowWillReturnFieldEditor:(NSWindow *)sender toObject:(id)anObject;
25@end
26
27// Allow monitoring calls into AutocompleteTextField's observer.
28// Being in a .h file with an anonymous namespace is strange, but this
29// is here so the mock interface doesn't have to change in multiple
30// places.
31
32// Any method you add here needs a unit test.  You knew that.
33
34class MockAutocompleteTextFieldObserver : public AutocompleteTextFieldObserver {
35 public:
36  MockAutocompleteTextFieldObserver();
37  ~MockAutocompleteTextFieldObserver();
38
39  MOCK_METHOD1(SelectionRangeForProposedRange, NSRange(NSRange range));
40  MOCK_METHOD1(OnControlKeyChanged, void(bool pressed));
41  MOCK_METHOD0(CanCopy, bool());
42  MOCK_METHOD1(CopyToPasteboard, void(NSPasteboard* pboard));
43  MOCK_METHOD0(OnPaste, void());
44  MOCK_METHOD0(CanPasteAndGo, bool());
45  MOCK_METHOD0(GetPasteActionStringId, int());
46  MOCK_METHOD0(OnPasteAndGo, void());
47  MOCK_METHOD0(OnFrameChanged, void());
48  MOCK_METHOD0(ClosePopup, void());
49  MOCK_METHOD0(OnDidBeginEditing, void());
50  MOCK_METHOD0(OnBeforeChange, void());
51  MOCK_METHOD0(OnDidChange, void());
52  MOCK_METHOD0(OnDidEndEditing, void());
53  MOCK_METHOD0(OnStartingIME, void());
54  MOCK_METHOD1(OnDoCommandBySelector, bool(SEL cmd));
55  MOCK_METHOD1(OnSetFocus, void(bool control_down));
56  MOCK_METHOD0(OnKillFocus, void());
57};
58
59#endif  // CHROME_BROWSER_UI_COCOA_AUTOCOMPLETE_TEXT_FIELD_UNITTEST_HELPER_H_
60