Home | History | Annotate | Download | only in applescript
      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 #import "chrome/browser/ui/cocoa/applescript/bookmark_applescript_utils_unittest.h"
      6 
      7 #include "chrome/browser/bookmarks/bookmark_model.h"
      8 
      9 @implementation FakeAppDelegate
     10 
     11 @synthesize helper = helper_;
     12 
     13 - (Profile*)defaultProfile {
     14   if (!helper_)
     15     return NULL;
     16   return helper_->profile();
     17 }
     18 @end
     19 
     20 // Represents the current fake command that is executing.
     21 static FakeScriptCommand* kFakeCurrentCommand;
     22 
     23 @implementation FakeScriptCommand
     24 
     25 - (id)init {
     26   if ((self = [super init])) {
     27     originalMethod_ = class_getClassMethod([NSScriptCommand class],
     28                                            @selector(currentCommand));
     29     alternateMethod_ = class_getClassMethod([self class],
     30                                             @selector(currentCommand));
     31     method_exchangeImplementations(originalMethod_, alternateMethod_);
     32     kFakeCurrentCommand = self;
     33   }
     34   return self;
     35 }
     36 
     37 + (NSScriptCommand*)currentCommand {
     38   return kFakeCurrentCommand;
     39 }
     40 
     41 - (void)dealloc {
     42   method_exchangeImplementations(originalMethod_, alternateMethod_);
     43   kFakeCurrentCommand = nil;
     44   [super dealloc];
     45 }
     46 
     47 @end
     48 
     49 BookmarkAppleScriptTest::BookmarkAppleScriptTest() {
     50   appDelegate_.reset([[FakeAppDelegate alloc] init]);
     51   [appDelegate_.get() setHelper:&helper_];
     52   DCHECK([NSApp delegate] == nil);
     53   [NSApp setDelegate:appDelegate_];
     54   const BookmarkNode* root = model().GetBookmarkBarNode();
     55   const std::string modelString("a f1:[ b d c ] d f2:[ e f g ] h ");
     56   model_test_utils::AddNodesFromModelString(model(), root, modelString);
     57   bookmarkBar_.reset([[BookmarkFolderAppleScript alloc]
     58       initWithBookmarkNode:model().GetBookmarkBarNode()]);
     59 }
     60 
     61 BookmarkAppleScriptTest::~BookmarkAppleScriptTest() {
     62   [NSApp setDelegate:nil];
     63 }
     64 
     65 BookmarkModel& BookmarkAppleScriptTest::model() {
     66   return *helper_.profile()->GetBookmarkModel();
     67 }
     68