172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file.
4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#ifndef CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_APPLESCRIPT_UTILS_UNITTEST_H_
621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#define CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_APPLESCRIPT_UTILS_UNITTEST_H_
7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#import <objc/objc-runtime.h>
9bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#import <Cocoa/Cocoa.h>
10bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_nsobject.h"
12bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#import "chrome/browser/app_controller_mac.h"
1321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#import "chrome/browser/ui/cocoa/applescript/bookmark_folder_applescript.h"
1421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/ui/cocoa/browser_test_helper.h"
1521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/ui/cocoa/cocoa_test_helper.h"
16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/test/model_test_utils.h"
17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "testing/platform_test.h"
18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass BookmarkModel;
20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// The fake object that acts as our app's delegate, useful for testing purposes.
22bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen@interface FakeAppDelegate : AppController {
23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen @public
24bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  BrowserTestHelper* helper_;  // weak.
25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}
2672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen@property(nonatomic) BrowserTestHelper* helper;
27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Return the |TestingProfile*| which is used for testing.
28bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen- (Profile*)defaultProfile;
29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen@end
30bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
31bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
32bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Used to emulate an active running script, useful for testing purposes.
33bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen@interface FakeScriptCommand : NSScriptCommand {
34bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  Method originalMethod_;
35bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  Method alternateMethod_;
36bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}
37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen@end
38bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
39bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
40bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// The base class for all our bookmark releated unit tests.
41bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass BookmarkAppleScriptTest : public CocoaTest {
42bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen public:
43bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  BookmarkAppleScriptTest();
4472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  virtual ~BookmarkAppleScriptTest();
45bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen private:
46bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  BrowserTestHelper helper_;
47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  scoped_nsobject<FakeAppDelegate> appDelegate_;
48bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen protected:
49bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  scoped_nsobject<BookmarkFolderAppleScript> bookmarkBar_;
50bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  BookmarkModel& model();
51bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen};
52bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
53bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#endif
5421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// CHROME_BROWSER_UI_COCOA_APPLESCRIPT_BOOKMARK_APPLESCRIPT_UTILS_UNITTEST_H_
55