| // Copyright (c) 2011 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. | 
 |  | 
 | #include "base/test/mock_chrome_application_mac.h" | 
 |  | 
 | #include "base/auto_reset.h" | 
 | #include "base/logging.h" | 
 |  | 
 | @implementation MockCrApp | 
 |  | 
 | + (NSApplication*)sharedApplication { | 
 |   NSApplication* app = [super sharedApplication]; | 
 |   DCHECK([app conformsToProtocol:@protocol(CrAppControlProtocol)]) | 
 |       << "Existing NSApp (class " << [[app className] UTF8String] | 
 |       << ") does not conform to required protocol."; | 
 |   DCHECK(base::MessagePumpMac::UsingCrApp()) | 
 |       << "MessagePumpMac::Create() was called before " | 
 |       << "+[MockCrApp sharedApplication]"; | 
 |   return app; | 
 | } | 
 |  | 
 | - (void)sendEvent:(NSEvent*)event { | 
 |   base::AutoReset<BOOL> scoper(&handlingSendEvent_, YES); | 
 |   [super sendEvent:event]; | 
 | } | 
 |  | 
 | - (void)setHandlingSendEvent:(BOOL)handlingSendEvent { | 
 |   handlingSendEvent_ = handlingSendEvent; | 
 | } | 
 |  | 
 | - (BOOL)isHandlingSendEvent { | 
 |   return handlingSendEvent_; | 
 | } | 
 |  | 
 | @end | 
 |  | 
 | namespace mock_cr_app { | 
 |  | 
 | void RegisterMockCrApp() { | 
 |   [MockCrApp sharedApplication]; | 
 | } | 
 |  | 
 | }  // namespace mock_cr_app |