| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #import "chrome/browser/ui/cocoa/applescript/bookmark_applescript_utils_unittest.h" |
| |
| #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
| #include "chrome/test/base/testing_profile.h" |
| #include "components/bookmarks/browser/bookmark_model.h" |
| #include "components/bookmarks/test/bookmark_test_helpers.h" |
| |
| @implementation FakeAppDelegate |
| |
| @synthesize test = test_; |
| |
| - (Profile*)lastProfile { |
| if (!test_) |
| return NULL; |
| return test_->profile(); |
| } |
| @end |
| |
| // Represents the current fake command that is executing. |
| static FakeScriptCommand* kFakeCurrentCommand; |
| |
| @implementation FakeScriptCommand |
| |
| - (id)init { |
| if ((self = [super init])) { |
| originalMethod_ = class_getClassMethod([NSScriptCommand class], |
| @selector(currentCommand)); |
| alternateMethod_ = class_getClassMethod([self class], |
| @selector(currentCommand)); |
| method_exchangeImplementations(originalMethod_, alternateMethod_); |
| kFakeCurrentCommand = self; |
| } |
| return self; |
| } |
| |
| + (NSScriptCommand*)currentCommand { |
| return kFakeCurrentCommand; |
| } |
| |
| - (void)dealloc { |
| method_exchangeImplementations(originalMethod_, alternateMethod_); |
| kFakeCurrentCommand = nil; |
| [super dealloc]; |
| } |
| |
| @end |
| |
| BookmarkAppleScriptTest::BookmarkAppleScriptTest() { |
| } |
| |
| BookmarkAppleScriptTest::~BookmarkAppleScriptTest() { |
| [NSApp setDelegate:nil]; |
| } |
| |
| void BookmarkAppleScriptTest::SetUp() { |
| CocoaProfileTest::SetUp(); |
| ASSERT_TRUE(profile()); |
| |
| appDelegate_.reset([[FakeAppDelegate alloc] init]); |
| [appDelegate_.get() setTest:this]; |
| DCHECK([NSApp delegate] == nil); |
| [NSApp setDelegate:appDelegate_]; |
| BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); |
| const BookmarkNode* root = model->bookmark_bar_node(); |
| const std::string modelString("a f1:[ b d c ] d f2:[ e f g ] h "); |
| bookmarks::test::AddNodesFromModelString(model, root, modelString); |
| bookmarkBar_.reset([[BookmarkFolderAppleScript alloc] |
| initWithBookmarkNode:model->bookmark_bar_node()]); |
| } |