summaryrefslogtreecommitdiffstats
path: root/base/test
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-18 01:18:29 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-18 01:18:29 +0000
commita366880f8475fa9e0e70ace062af10654b297574 (patch)
tree5c2a777d77feebefc4b8c0f0c78525d57be93b16 /base/test
parentc811184533d882af419cab0dabe0bf317c6c985f (diff)
downloadchromium_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.h28
-rw-r--r--base/test/mock_chrome_application_mac.mm19
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