diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-18 01:18:29 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-18 01:18:29 +0000 |
commit | a366880f8475fa9e0e70ace062af10654b297574 (patch) | |
tree | 5c2a777d77feebefc4b8c0f0c78525d57be93b16 /base/test | |
parent | c811184533d882af419cab0dabe0bf317c6c985f (diff) | |
download | chromium_src-a366880f8475fa9e0e70ace062af10654b297574.zip chromium_src-a366880f8475fa9e0e70ace062af10654b297574.tar.gz chromium_src-a366880f8475fa9e0e70ace062af10654b297574.tar.bz2 |
Remove CrApplication dependency from base
Add a @protocol CrAppProtocol that clients of base must implement in their NSApplication subclass, and let base depend only on this protocol.
Let MessagePumpNSApplication::DoRun() no longer initialize NSApplication (fixes a TODO).
Add a MockCrApplication that the simple unittests in base and app can use, move chrome_application to chrome/common.
Test shell might run nested run loops, so I gave it a real but simplified CrAppProtocol implementation.
BUG=62968,46929
TEST=Everything still works. The PDF plugin prints one fewer warning when loaded.
Review URL: http://codereview.chromium.org/5950003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69615 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/test')
-rw-r--r-- | base/test/mock_chrome_application_mac.h | 28 | ||||
-rw-r--r-- | base/test/mock_chrome_application_mac.mm | 19 |
2 files changed, 47 insertions, 0 deletions
diff --git a/base/test/mock_chrome_application_mac.h b/base/test/mock_chrome_application_mac.h new file mode 100644 index 0000000..e7e2c67 --- /dev/null +++ b/base/test/mock_chrome_application_mac.h @@ -0,0 +1,28 @@ +// Copyright (c) 2010 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. + +#ifndef BASE_TEST_MOCK_CHROME_APPLICATION_MAC_H_ +#define BASE_TEST_MOCK_CHROME_APPLICATION_MAC_H_ +#pragma once + +#if defined(__OBJC__) + +#import <AppKit/AppKit.h> + +#include "base/message_pump_mac.h" + +// A mock implementation of CrAppProtocol that claims that -sendEvent: is never +// on the stack. This can be used in tests that need an NSApplication and use a +// runloop, but don't run nested message loops. +@interface MockCrApp : NSApplication<CrAppProtocol> +@end + +#endif + +// To be used to instantiate MockCrApp from C++ code. +namespace mock_cr_app { +void RegisterMockCrApp(); +} // namespace mock_cr_app + +#endif // BASE_TEST_MOCK_CHROME_APPLICATION_MAC_H_ diff --git a/base/test/mock_chrome_application_mac.mm b/base/test/mock_chrome_application_mac.mm new file mode 100644 index 0000000..f7010c4 --- /dev/null +++ b/base/test/mock_chrome_application_mac.mm @@ -0,0 +1,19 @@ +// Copyright (c) 2010 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" + +@implementation MockCrApp +- (BOOL)isHandlingSendEvent { + return NO; +} +@end + +namespace mock_cr_app { + +void RegisterMockCrApp() { + [MockCrApp sharedApplication]; +} + +} // namespace mock_cr_app |