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