| 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 #include "content/browser/renderer_host/render_widget_host_view_aura.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/memory/shared_memory.h" | 8 #include "base/memory/shared_memory.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 // Show the view. Since the cursor was visible when the view was hidden, | 671 // Show the view. Since the cursor was visible when the view was hidden, |
| 672 // a message is expected to be sent. | 672 // a message is expected to be sent. |
| 673 sink_->ClearMessages(); | 673 sink_->ClearMessages(); |
| 674 view_->WasShown(); | 674 view_->WasShown(); |
| 675 EXPECT_TRUE(sink_->GetUniqueMessageMatching( | 675 EXPECT_TRUE(sink_->GetUniqueMessageMatching( |
| 676 InputMsg_CursorVisibilityChange::ID)); | 676 InputMsg_CursorVisibilityChange::ID)); |
| 677 | 677 |
| 678 cursor_client.RemoveObserver(view_); | 678 cursor_client.RemoveObserver(view_); |
| 679 } | 679 } |
| 680 | 680 |
| 681 TEST_F(RenderWidgetHostViewAuraTest, UpdateCursorIfOverSelf) { |
| 682 view_->InitAsChild(NULL); |
| 683 aura::client::ParentWindowWithContext( |
| 684 view_->GetNativeView(), |
| 685 parent_view_->GetNativeView()->GetRootWindow(), |
| 686 gfx::Rect()); |
| 687 |
| 688 // Note that all coordinates in this test are screen coordinates. |
| 689 view_->SetBounds(gfx::Rect(60, 60, 100, 100)); |
| 690 view_->Show(); |
| 691 |
| 692 aura::test::TestCursorClient cursor_client( |
| 693 parent_view_->GetNativeView()->GetRootWindow()); |
| 694 |
| 695 // Cursor is in the middle of the window. |
| 696 cursor_client.reset_calls_to_set_cursor(); |
| 697 aura::Env::GetInstance()->set_last_mouse_location(gfx::Point(110, 110)); |
| 698 view_->UpdateCursorIfOverSelf(); |
| 699 EXPECT_EQ(1, cursor_client.calls_to_set_cursor()); |
| 700 |
| 701 // Cursor is near the top of the window. |
| 702 cursor_client.reset_calls_to_set_cursor(); |
| 703 aura::Env::GetInstance()->set_last_mouse_location(gfx::Point(80, 65)); |
| 704 view_->UpdateCursorIfOverSelf(); |
| 705 EXPECT_EQ(1, cursor_client.calls_to_set_cursor()); |
| 706 |
| 707 // Cursor is near the bottom of the window. |
| 708 cursor_client.reset_calls_to_set_cursor(); |
| 709 aura::Env::GetInstance()->set_last_mouse_location(gfx::Point(159, 159)); |
| 710 view_->UpdateCursorIfOverSelf(); |
| 711 EXPECT_EQ(1, cursor_client.calls_to_set_cursor()); |
| 712 |
| 713 // Cursor is above the window. |
| 714 cursor_client.reset_calls_to_set_cursor(); |
| 715 aura::Env::GetInstance()->set_last_mouse_location(gfx::Point(67, 59)); |
| 716 view_->UpdateCursorIfOverSelf(); |
| 717 EXPECT_EQ(0, cursor_client.calls_to_set_cursor()); |
| 718 |
| 719 // Cursor is below the window. |
| 720 cursor_client.reset_calls_to_set_cursor(); |
| 721 aura::Env::GetInstance()->set_last_mouse_location(gfx::Point(161, 161)); |
| 722 view_->UpdateCursorIfOverSelf(); |
| 723 EXPECT_EQ(0, cursor_client.calls_to_set_cursor()); |
| 724 } |
| 725 |
| 681 scoped_ptr<cc::CompositorFrame> MakeGLFrame(float scale_factor, | 726 scoped_ptr<cc::CompositorFrame> MakeGLFrame(float scale_factor, |
| 682 gfx::Size size, | 727 gfx::Size size, |
| 683 gfx::Rect damage) { | 728 gfx::Rect damage) { |
| 684 scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); | 729 scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); |
| 685 frame->metadata.device_scale_factor = scale_factor; | 730 frame->metadata.device_scale_factor = scale_factor; |
| 686 frame->gl_frame_data.reset(new cc::GLFrameData); | 731 frame->gl_frame_data.reset(new cc::GLFrameData); |
| 687 frame->gl_frame_data->sync_point = 1; | 732 frame->gl_frame_data->sync_point = 1; |
| 688 memset(frame->gl_frame_data->mailbox.name, '1', 64); | 733 memset(frame->gl_frame_data->mailbox.name, '1', 64); |
| 689 frame->gl_frame_data->size = size; | 734 frame->gl_frame_data->size = size; |
| 690 frame->gl_frame_data->sub_buffer_rect = damage; | 735 frame->gl_frame_data->sub_buffer_rect = damage; |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1105 view_->OnSwapCompositorFrame( | 1150 view_->OnSwapCompositorFrame( |
| 1106 1, MakeDelegatedFrame(2.f, frame_size, gfx::Rect(frame_size))); | 1151 1, MakeDelegatedFrame(2.f, frame_size, gfx::Rect(frame_size))); |
| 1107 | 1152 |
| 1108 // When we get a new frame with the same frame size in physical pixels, but a | 1153 // When we get a new frame with the same frame size in physical pixels, but a |
| 1109 // different scale, we should generate a new frame provider, as the final | 1154 // different scale, we should generate a new frame provider, as the final |
| 1110 // result will need to be scaled differently to the screen. | 1155 // result will need to be scaled differently to the screen. |
| 1111 EXPECT_NE(frame_provider.get(), view_->frame_provider_.get()); | 1156 EXPECT_NE(frame_provider.get(), view_->frame_provider_.get()); |
| 1112 } | 1157 } |
| 1113 | 1158 |
| 1114 } // namespace content | 1159 } // namespace content |
| OLD | NEW |