diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-04 22:32:35 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-04 22:32:35 +0000 |
commit | e58bec557f3f644595817f3a2928f2c36df21ae4 (patch) | |
tree | 0be50b85363b021cbb8ad2612227a5858b10e77e /chrome | |
parent | dd163fb02ef4521b12e5864d728d667234f834b8 (diff) | |
download | chromium_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.mm | 89 | ||||
-rw-r--r-- | chrome/chrome_tests.gypi | 1 |
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', |