summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-04 22:32:35 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-04 22:32:35 +0000
commite58bec557f3f644595817f3a2928f2c36df21ae4 (patch)
tree0be50b85363b021cbb8ad2612227a5858b10e77e /chrome
parentdd163fb02ef4521b12e5864d728d667234f834b8 (diff)
downloadchromium_src-e58bec557f3f644595817f3a2928f2c36df21ae4.zip
chromium_src-e58bec557f3f644595817f3a2928f2c36df21ae4.tar.gz
chromium_src-e58bec557f3f644595817f3a2928f2c36df21ae4.tar.bz2
Mac: Add a few tests for AcceleratedPluginView.
BUG=none TEST=none Review URL: http://codereview.chromium.org/6933019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84141 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/renderer_host/accelerated_plugin_view_mac_unittest.mm89
-rw-r--r--chrome/chrome_tests.gypi1
2 files changed, 90 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/accelerated_plugin_view_mac_unittest.mm b/chrome/browser/renderer_host/accelerated_plugin_view_mac_unittest.mm
new file mode 100644
index 0000000..8cb710b
--- /dev/null
+++ b/chrome/browser/renderer_host/accelerated_plugin_view_mac_unittest.mm
@@ -0,0 +1,89 @@
+// 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 "chrome/browser/renderer_host/accelerated_plugin_view_mac.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "testing/platform_test.h"
+
+@interface UnderlayCountingWindow : NSWindow {
+ @private
+ int underlayCount_;
+}
+@property (readonly, nonatomic) int underlayCount;
+- (void)underlaySurfaceAdded;
+- (void)underlaySurfaceRemoved;
+@end
+
+@implementation UnderlayCountingWindow
+@synthesize underlayCount = underlayCount_;
+
+- (void)underlaySurfaceAdded {
+ ++underlayCount_;
+}
+
+- (void)underlaySurfaceRemoved {
+ --underlayCount_;
+}
+@end
+
+class AcceleratedPluginViewTest : public PlatformTest {
+ protected:
+ AcceleratedPluginViewTest() {}
+
+ UnderlayCountingWindow* StubUnderlayWindow() {
+ UnderlayCountingWindow* window = [[[UnderlayCountingWindow alloc]
+ initWithContentRect:NSMakeRect(20, 20, 300, 200)
+ styleMask:NSBorderlessWindowMask
+ backing:NSBackingStoreBuffered
+ defer:NO] autorelease];
+ [window orderFront:nil];
+ return window;
+ }
+
+ AcceleratedPluginView* StubAcceleratedPluginView() {
+ // It truns out the rwhv and the plugin handle are not necessary for
+ // this test, and AcceleratedPluginView doesn't crash without them.
+ AcceleratedPluginView* view = [[[AcceleratedPluginView alloc]
+ initWithRenderWidgetHostViewMac:NULL
+ pluginHandle:0] autorelease];
+ return view;
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AcceleratedPluginViewTest);
+};
+
+TEST_F(AcceleratedPluginViewTest, Basic) {
+}
+
+TEST_F(AcceleratedPluginViewTest, BasicAdding) {
+ AcceleratedPluginView* view = StubAcceleratedPluginView();
+
+ UnderlayCountingWindow* window = StubUnderlayWindow();
+ EXPECT_EQ(0, [window underlayCount]);
+
+ [[window contentView] addSubview:view];
+ EXPECT_EQ(1, [window underlayCount]);
+
+ [view removeFromSuperview];
+ EXPECT_EQ(0, [window underlayCount]);
+}
+
+TEST_F(AcceleratedPluginViewTest, MoveBetweenWindows) {
+ AcceleratedPluginView* view = StubAcceleratedPluginView();
+
+ UnderlayCountingWindow* window1 = StubUnderlayWindow();
+ UnderlayCountingWindow* window2 = StubUnderlayWindow();
+ EXPECT_EQ(0, [window1 underlayCount]);
+ EXPECT_EQ(0, [window2 underlayCount]);
+
+ [[window1 contentView] addSubview:view];
+ EXPECT_EQ(1, [window1 underlayCount]);
+ EXPECT_EQ(0, [window2 underlayCount]);
+
+ [[window2 contentView] addSubview:view];
+ EXPECT_EQ(0, [window1 underlayCount]);
+ EXPECT_EQ(1, [window2 underlayCount]);
+}
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 9dcb900..1841bc0 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -1476,6 +1476,7 @@
'browser/profiles/profile_dependency_manager_unittest.cc',
'browser/profiles/profile_manager_unittest.cc',
'browser/remoting/directory_add_request_unittest.cc',
+ 'browser/renderer_host/accelerated_plugin_view_mac_unittest.mm',
'browser/renderer_host/gtk_key_bindings_handler_unittest.cc',
'browser/renderer_host/render_widget_host_view_mac_unittest.mm',
'browser/renderer_host/text_input_client_mac_unittest.mm',