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_APPLESCRIPT_BOOKMARK_APPLESCRIPT_UTILS_UNITTEST_H_
6#define CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_APPLESCRIPT_UTILS_UNITTEST_H_
7
8#import <objc/objc-runtime.h>
9#import <Cocoa/Cocoa.h>
10
11#include "base/memory/scoped_nsobject.h"
12#import "chrome/browser/app_controller_mac.h"
13#import "chrome/browser/ui/cocoa/applescript/bookmark_folder_applescript.h"
14#include "chrome/browser/ui/cocoa/browser_test_helper.h"
15#include "chrome/browser/ui/cocoa/cocoa_test_helper.h"
16#include "chrome/test/model_test_utils.h"
17#include "testing/platform_test.h"
18
19class BookmarkModel;
20
21// The fake object that acts as our app's delegate, useful for testing purposes.
22@interface FakeAppDelegate : AppController {
23 @public
24  BrowserTestHelper* helper_;  // weak.
25}
26@property(nonatomic) BrowserTestHelper* helper;
27// Return the |TestingProfile*| which is used for testing.
28- (Profile*)defaultProfile;
29@end
30
31
32// Used to emulate an active running script, useful for testing purposes.
33@interface FakeScriptCommand : NSScriptCommand {
34  Method originalMethod_;
35  Method alternateMethod_;
36}
37@end
38
39
40// The base class for all our bookmark releated unit tests.
41class BookmarkAppleScriptTest : public CocoaTest {
42 public:
43  BookmarkAppleScriptTest();
44  virtual ~BookmarkAppleScriptTest();
45 private:
46  BrowserTestHelper helper_;
47  scoped_nsobject<FakeAppDelegate> appDelegate_;
48 protected:
49  scoped_nsobject<BookmarkFolderAppleScript> bookmarkBar_;
50  BookmarkModel& model();
51};
52
53#endif
54// CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_APPLESCRIPT_UTILS_UNITTEST_H_
55