| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "content/browser/renderer_host/render_widget_host_view_mac_editcommand_h
elper.h" | 5 #import "content/browser/renderer_host/render_widget_host_view_mac_editcommand_h
elper.h" |
| 6 | 6 |
| 7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| 11 #include "base/mac/scoped_nsautorelease_pool.h" | 11 #include "base/mac/scoped_nsautorelease_pool.h" |
| 12 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
| 13 #include "content/browser/compositor/test/no_transport_image_transport_factory.h
" | 13 #include "content/browser/compositor/test/no_transport_image_transport_factory.h
" |
| 14 #include "content/browser/gpu/compositor_util.h" | 14 #include "content/browser/gpu/compositor_util.h" |
| 15 #include "content/browser/renderer_host/render_widget_host_delegate.h" | 15 #include "content/browser/renderer_host/render_widget_host_delegate.h" |
| 16 #include "content/browser/renderer_host/render_widget_host_impl.h" | 16 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 17 #include "content/common/input_messages.h" | 17 #include "content/common/input_messages.h" |
| 18 #include "content/public/test/mock_render_process_host.h" | 18 #include "content/public/test/mock_render_process_host.h" |
| 19 #include "content/public/test/test_browser_context.h" | 19 #include "content/public/test/test_browser_context.h" |
| 20 #include "testing/gmock/include/gmock/gmock.h" | 20 #include "testing/gmock/include/gmock/gmock.h" |
| 21 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
| 22 #include "testing/platform_test.h" | 22 #include "testing/platform_test.h" |
| 23 #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" |
| 23 #include "ui/base/layout.h" | 24 #include "ui/base/layout.h" |
| 24 | 25 |
| 25 using content::RenderWidgetHostViewMac; | 26 using content::RenderWidgetHostViewMac; |
| 26 | 27 |
| 27 // Bare bones obj-c class for testing purposes. | 28 // Bare bones obj-c class for testing purposes. |
| 28 @interface RenderWidgetHostViewMacEditCommandHelperTestClass : NSObject | 29 @interface RenderWidgetHostViewMacEditCommandHelperTestClass : NSObject |
| 29 @end | 30 @end |
| 30 | 31 |
| 31 @implementation RenderWidgetHostViewMacEditCommandHelperTestClass | 32 @implementation RenderWidgetHostViewMacEditCommandHelperTestClass |
| 32 @end | 33 @end |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 supported_factors.push_back(ui::SCALE_FACTOR_100P); | 127 supported_factors.push_back(ui::SCALE_FACTOR_100P); |
| 127 ui::test::ScopedSetSupportedScaleFactors scoped_supported(supported_factors); | 128 ui::test::ScopedSetSupportedScaleFactors scoped_supported(supported_factors); |
| 128 | 129 |
| 129 int32_t routing_id = process_host.GetNextRoutingID(); | 130 int32_t routing_id = process_host.GetNextRoutingID(); |
| 130 RenderWidgetHostEditCommandCounter* render_widget = | 131 RenderWidgetHostEditCommandCounter* render_widget = |
| 131 new RenderWidgetHostEditCommandCounter(&delegate, &process_host, | 132 new RenderWidgetHostEditCommandCounter(&delegate, &process_host, |
| 132 routing_id); | 133 routing_id); |
| 133 | 134 |
| 134 base::mac::ScopedNSAutoreleasePool pool; | 135 base::mac::ScopedNSAutoreleasePool pool; |
| 135 | 136 |
| 137 base::MessageLoop message_loop; |
| 138 ui::WindowResizeHelperMac::Get()->Init( |
| 139 base::MessageLoop::current()->task_runner()); |
| 140 |
| 136 // Owned by its |cocoa_view()|, i.e. |rwhv_cocoa|. | 141 // Owned by its |cocoa_view()|, i.e. |rwhv_cocoa|. |
| 137 RenderWidgetHostViewMac* rwhv_mac = new RenderWidgetHostViewMac( | 142 RenderWidgetHostViewMac* rwhv_mac = new RenderWidgetHostViewMac( |
| 138 render_widget, false); | 143 render_widget, false); |
| 139 base::scoped_nsobject<RenderWidgetHostViewCocoa> rwhv_cocoa( | 144 base::scoped_nsobject<RenderWidgetHostViewCocoa> rwhv_cocoa( |
| 140 [rwhv_mac->cocoa_view() retain]); | 145 [rwhv_mac->cocoa_view() retain]); |
| 141 | 146 |
| 142 RenderWidgetHostViewMacEditCommandHelper helper; | 147 RenderWidgetHostViewMacEditCommandHelper helper; |
| 143 NSArray* edit_command_strings = helper.GetEditSelectorNames(); | 148 NSArray* edit_command_strings = helper.GetEditSelectorNames(); |
| 144 RenderWidgetHostViewMacOwner* rwhwvm_owner = | 149 RenderWidgetHostViewMacOwner* rwhwvm_owner = |
| 145 [[[RenderWidgetHostViewMacOwner alloc] | 150 [[[RenderWidgetHostViewMacOwner alloc] |
| 146 initWithRenderWidgetHostViewMac:rwhv_mac] autorelease]; | 151 initWithRenderWidgetHostViewMac:rwhv_mac] autorelease]; |
| 147 | 152 |
| 148 helper.AddEditingSelectorsToClass([rwhwvm_owner class]); | 153 helper.AddEditingSelectorsToClass([rwhwvm_owner class]); |
| 149 | 154 |
| 150 for (NSString* edit_command_name in edit_command_strings) { | 155 for (NSString* edit_command_name in edit_command_strings) { |
| 151 NSString* sel_str = [edit_command_name stringByAppendingString:@":"]; | 156 NSString* sel_str = [edit_command_name stringByAppendingString:@":"]; |
| 152 [rwhwvm_owner performSelector:NSSelectorFromString(sel_str) withObject:nil]; | 157 [rwhwvm_owner performSelector:NSSelectorFromString(sel_str) withObject:nil]; |
| 153 } | 158 } |
| 154 | 159 |
| 155 size_t num_edit_commands = [edit_command_strings count]; | 160 size_t num_edit_commands = [edit_command_strings count]; |
| 156 EXPECT_EQ(render_widget->edit_command_message_count_, num_edit_commands); | 161 EXPECT_EQ(render_widget->edit_command_message_count_, num_edit_commands); |
| 157 rwhv_cocoa.reset(); | 162 rwhv_cocoa.reset(); |
| 158 pool.Recycle(); | 163 pool.Recycle(); |
| 159 | 164 |
| 160 { | 165 // The |render_widget|'s process needs to be deleted within |message_loop|. |
| 161 // The |render_widget|'s process needs to be deleted within |message_loop|. | 166 delete render_widget; |
| 162 base::MessageLoop message_loop; | |
| 163 delete render_widget; | |
| 164 } | |
| 165 } | 167 } |
| 166 | 168 |
| 167 // Test RenderWidgetHostViewMacEditCommandHelper::AddEditingSelectorsToClass | 169 // Test RenderWidgetHostViewMacEditCommandHelper::AddEditingSelectorsToClass |
| 168 TEST_F(RenderWidgetHostViewMacEditCommandHelperTest, | 170 TEST_F(RenderWidgetHostViewMacEditCommandHelperTest, |
| 169 TestAddEditingSelectorsToClass) { | 171 TestAddEditingSelectorsToClass) { |
| 170 RenderWidgetHostViewMacEditCommandHelper helper; | 172 RenderWidgetHostViewMacEditCommandHelper helper; |
| 171 NSArray* edit_command_strings = helper.GetEditSelectorNames(); | 173 NSArray* edit_command_strings = helper.GetEditSelectorNames(); |
| 172 ASSERT_GT([edit_command_strings count], 0U); | 174 ASSERT_GT([edit_command_strings count], 0U); |
| 173 | 175 |
| 174 // Create a class instance and add methods to the class. | 176 // Create a class instance and add methods to the class. |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 | 208 |
| 207 // Random selectors should be enabled by the function. | 209 // Random selectors should be enabled by the function. |
| 208 SEL garbage_selector = NSSelectorFromString(@"randomGarbageSelector:"); | 210 SEL garbage_selector = NSSelectorFromString(@"randomGarbageSelector:"); |
| 209 ASSERT_FALSE(helper.IsMenuItemEnabled(garbage_selector, rwhvm_owner)); | 211 ASSERT_FALSE(helper.IsMenuItemEnabled(garbage_selector, rwhvm_owner)); |
| 210 | 212 |
| 211 // TODO(jeremy): Currently IsMenuItemEnabled just returns true for all edit | 213 // TODO(jeremy): Currently IsMenuItemEnabled just returns true for all edit |
| 212 // selectors. Once we go past that we should do more extensive testing here. | 214 // selectors. Once we go past that we should do more extensive testing here. |
| 213 } | 215 } |
| 214 | 216 |
| 215 } // namespace content | 217 } // namespace content |
| OLD | NEW |