summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/rwhvm_editcommand_helper_unittest.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/rwhvm_editcommand_helper_unittest.mm')
-rw-r--r--chrome/browser/cocoa/rwhvm_editcommand_helper_unittest.mm172
1 files changed, 0 insertions, 172 deletions
diff --git a/chrome/browser/cocoa/rwhvm_editcommand_helper_unittest.mm b/chrome/browser/cocoa/rwhvm_editcommand_helper_unittest.mm
deleted file mode 100644
index 4fd5452..0000000
--- a/chrome/browser/cocoa/rwhvm_editcommand_helper_unittest.mm
+++ /dev/null
@@ -1,172 +0,0 @@
-// Copyright (c) 2009 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.
-
-#import "chrome/browser/cocoa/rwhvm_editcommand_helper.h"
-
-#import <Cocoa/Cocoa.h>
-
-#include "chrome/browser/renderer_host/mock_render_process_host.h"
-#include "chrome/browser/renderer_host/render_widget_host.h"
-#include "chrome/test/testing_profile.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
-
-class RWHVMEditCommandHelperTest : public PlatformTest {
-};
-
-// Bare bones obj-c class for testing purposes.
-@interface RWHVMEditCommandHelperTestClass : NSObject
-@end
-
-@implementation RWHVMEditCommandHelperTestClass
-@end
-
-// Class that owns a RenderWidgetHostViewMac.
-@interface RenderWidgetHostViewMacOwner :
- NSObject<RenderWidgetHostViewMacOwner> {
- RenderWidgetHostViewMac* rwhvm_;
-}
-
-- (id) initWithRenderWidgetHostViewMac:(RenderWidgetHostViewMac*)rwhvm;
-@end
-
-@implementation RenderWidgetHostViewMacOwner
-
-- (id)initWithRenderWidgetHostViewMac:(RenderWidgetHostViewMac*)rwhvm {
- if ((self = [super init])) {
- rwhvm_ = rwhvm;
- }
- return self;
-}
-
-- (RenderWidgetHostViewMac*)renderWidgetHostViewMac {
- return rwhvm_;
-}
-
-@end
-
-
-namespace {
- // Returns true if all the edit command names in the array are present
- // in test_obj.
- // edit_commands is a list of NSStrings, selector names are formed by
- // appending a trailing ':' to the string.
- bool CheckObjectRespondsToEditCommands(NSArray* edit_commands, id test_obj) {
- for (NSString* edit_command_name in edit_commands) {
- NSString* sel_str = [edit_command_name stringByAppendingString:@":"];
- if (![test_obj respondsToSelector:NSSelectorFromString(sel_str)]) {
- return false;
- }
- }
-
- return true;
- }
-} // namespace
-
-// Create a Mock RenderWidget
-class MockRenderWidgetHostEditCommandCounter : public RenderWidgetHost {
- public:
- MockRenderWidgetHostEditCommandCounter(RenderProcessHost* process,
- int routing_id) :
- RenderWidgetHost(process, routing_id) {}
-
- MOCK_METHOD2(ForwardEditCommand, void(const std::string&,
- const std::string&));
-};
-
-
-// Tests that editing commands make it through the pipeline all the way to
-// RenderWidgetHost.
-TEST_F(RWHVMEditCommandHelperTest, TestEditingCommandDelivery) {
- RWHVMEditCommandHelper helper;
- NSArray* edit_command_strings = helper.GetEditSelectorNames();
-
- // Set up a mock render widget and set expectations.
- MessageLoopForUI message_loop;
- TestingProfile profile;
- MockRenderProcessHost mock_process(&profile);
- MockRenderWidgetHostEditCommandCounter mock_render_widget(&mock_process, 0);
-
- size_t num_edit_commands = [edit_command_strings count];
- EXPECT_CALL(mock_render_widget,
- ForwardEditCommand(testing::_, testing::_)).Times(num_edit_commands);
-
-// TODO(jeremy): Figure this out and reenable this test.
-// For some bizarre reason this code doesn't work, running the code in the
-// debugger confirms that the function is called with the correct parameters
-// however gmock appears not to be able to match up parameters correctly.
-// Disable for now till we can figure this out.
-#if 0
- // Tell Mock object that we expect to recieve each edit command once.
- std::string empty_str;
- for (NSString* edit_command_name in edit_command_strings) {
- std::string command([edit_command_name UTF8String]);
- EXPECT_CALL(mock_render_widget,
- ForwardEditCommand(command, empty_str)).Times(1);
- }
-#endif // 0
-
- // RenderWidgetHostViewMac self destructs (RenderWidgetHostViewMacCocoa
- // takes ownership) so no need to delete it ourselves.
- RenderWidgetHostViewMac* rwhvm = new RenderWidgetHostViewMac(
- &mock_render_widget);
-
- RenderWidgetHostViewMacOwner* rwhwvm_owner =
- [[[RenderWidgetHostViewMacOwner alloc]
- initWithRenderWidgetHostViewMac:rwhvm] autorelease];
-
- helper.AddEditingSelectorsToClass([rwhwvm_owner class]);
-
- for (NSString* edit_command_name in edit_command_strings) {
- NSString* sel_str = [edit_command_name stringByAppendingString:@":"];
- [rwhwvm_owner performSelector:NSSelectorFromString(sel_str) withObject:nil];
- }
-}
-
-// Test RWHVMEditCommandHelper::AddEditingSelectorsToClass
-TEST_F(RWHVMEditCommandHelperTest, TestAddEditingSelectorsToClass) {
- RWHVMEditCommandHelper helper;
- NSArray* edit_command_strings = helper.GetEditSelectorNames();
- ASSERT_GT([edit_command_strings count], 0U);
-
- // Create a class instance and add methods to the class.
- RWHVMEditCommandHelperTestClass* test_obj =
- [[[RWHVMEditCommandHelperTestClass alloc] init] autorelease];
-
- // Check that edit commands aren't already attached to the object.
- ASSERT_FALSE(CheckObjectRespondsToEditCommands(edit_command_strings,
- test_obj));
-
- helper.AddEditingSelectorsToClass([test_obj class]);
-
- // Check that all edit commands where added.
- ASSERT_TRUE(CheckObjectRespondsToEditCommands(edit_command_strings,
- test_obj));
-
- // AddEditingSelectorsToClass() should be idempotent.
- helper.AddEditingSelectorsToClass([test_obj class]);
-
- // Check that all edit commands are still there.
- ASSERT_TRUE(CheckObjectRespondsToEditCommands(edit_command_strings,
- test_obj));
-}
-
-// Test RWHVMEditCommandHelper::IsMenuItemEnabled.
-TEST_F(RWHVMEditCommandHelperTest, TestMenuItemEnabling) {
- RWHVMEditCommandHelper helper;
- RenderWidgetHostViewMacOwner* rwhvm_owner =
- [[[RenderWidgetHostViewMacOwner alloc] init] autorelease];
-
- // The select all menu should always be enabled.
- SEL select_all = NSSelectorFromString(@"selectAll:");
- ASSERT_TRUE(helper.IsMenuItemEnabled(select_all, rwhvm_owner));
-
- // Random selectors should be enabled by the function.
- SEL garbage_selector = NSSelectorFromString(@"randomGarbageSelector:");
- ASSERT_FALSE(helper.IsMenuItemEnabled(garbage_selector, rwhvm_owner));
-
- // TODO(jeremy): Currently IsMenuItemEnabled just returns true for all edit
- // selectors. Once we go past that we should do more extensive testing here.
-}