Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(751)

Side by Side Diff: ash/shelf/shelf_view_unittest.cc

Issue 2786693002: Add PointerDetails to ui::MouseEvent's constructors (Closed)
Patch Set: mouse event constructor Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "ash/common/shelf/shelf_view.h" 5 #include "ash/common/shelf/shelf_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <memory> 8 #include <memory>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 EXPECT_GE(item_bounds.y(), 0); 438 EXPECT_GE(item_bounds.y(), 0);
439 EXPECT_LE(item_bounds.right(), shelf_view_bounds.width()); 439 EXPECT_LE(item_bounds.right(), shelf_view_bounds.width());
440 EXPECT_LE(item_bounds.bottom(), shelf_view_bounds.height()); 440 EXPECT_LE(item_bounds.bottom(), shelf_view_bounds.height());
441 } 441 }
442 } 442 }
443 } 443 }
444 444
445 // Simulate a mouse press event on the shelf's view at |view_index|. 445 // Simulate a mouse press event on the shelf's view at |view_index|.
446 views::View* SimulateViewPressed(ShelfView::Pointer pointer, int view_index) { 446 views::View* SimulateViewPressed(ShelfView::Pointer pointer, int view_index) {
447 views::View* view = test_api_->GetViewAt(view_index); 447 views::View* view = test_api_->GetViewAt(view_index);
448 ui::MouseEvent pressed_event(ui::ET_MOUSE_PRESSED, gfx::Point(), 448 ui::MouseEvent pressed_event(
449 view->GetBoundsInScreen().origin(), 449 ui::ET_MOUSE_PRESSED, gfx::Point(), view->GetBoundsInScreen().origin(),
450 ui::EventTimeForNow(), 0, 0); 450 ui::EventTimeForNow(), 0, 0,
451 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
451 shelf_view_->PointerPressedOnButton(view, pointer, pressed_event); 452 shelf_view_->PointerPressedOnButton(view, pointer, pressed_event);
452 return view; 453 return view;
453 } 454 }
454 455
455 // Similar to SimulateViewPressed, but the index must not be for the app list, 456 // Similar to SimulateViewPressed, but the index must not be for the app list,
456 // since the app list button is not a ShelfButton. 457 // since the app list button is not a ShelfButton.
457 ShelfButton* SimulateButtonPressed(ShelfView::Pointer pointer, 458 ShelfButton* SimulateButtonPressed(ShelfView::Pointer pointer,
458 int button_index) { 459 int button_index) {
459 EXPECT_NE(TYPE_APP_LIST, model_->items()[button_index].type); 460 EXPECT_NE(TYPE_APP_LIST, model_->items()[button_index].type);
460 ShelfButton* button = test_api_->GetButton(button_index); 461 ShelfButton* button = test_api_->GetButton(button_index);
461 EXPECT_EQ(button, SimulateViewPressed(pointer, button_index)); 462 EXPECT_EQ(button, SimulateViewPressed(pointer, button_index));
462 return button; 463 return button;
463 } 464 }
464 465
465 // Simulates a single mouse click. 466 // Simulates a single mouse click.
466 void SimulateClick(int button_index) { 467 void SimulateClick(int button_index) {
467 ShelfButton* button = SimulateButtonPressed(ShelfView::MOUSE, button_index); 468 ShelfButton* button = SimulateButtonPressed(ShelfView::MOUSE, button_index);
468 ui::MouseEvent release_event(ui::ET_MOUSE_RELEASED, gfx::Point(), 469 ui::MouseEvent release_event(
469 button->GetBoundsInScreen().origin(), 470 ui::ET_MOUSE_RELEASED, gfx::Point(),
470 ui::EventTimeForNow(), 0, 0); 471 button->GetBoundsInScreen().origin(), ui::EventTimeForNow(), 0, 0,
472 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
471 test_api_->ButtonPressed( 473 test_api_->ButtonPressed(
472 button, release_event, 474 button, release_event,
473 views::test::InkDropHostViewTestApi(button).GetInkDrop()); 475 views::test::InkDropHostViewTestApi(button).GetInkDrop());
474 shelf_view_->PointerReleasedOnButton(button, ShelfView::MOUSE, false); 476 shelf_view_->PointerReleasedOnButton(button, ShelfView::MOUSE, false);
475 } 477 }
476 478
477 // Simulates the second click of a double click. 479 // Simulates the second click of a double click.
478 void SimulateDoubleClick(int button_index) { 480 void SimulateDoubleClick(int button_index) {
479 ShelfButton* button = SimulateButtonPressed(ShelfView::MOUSE, button_index); 481 ShelfButton* button = SimulateButtonPressed(ShelfView::MOUSE, button_index);
480 ui::MouseEvent release_event(ui::ET_MOUSE_RELEASED, gfx::Point(), 482 ui::MouseEvent release_event(
481 button->GetBoundsInScreen().origin(), 483 ui::ET_MOUSE_RELEASED, gfx::Point(),
482 ui::EventTimeForNow(), ui::EF_IS_DOUBLE_CLICK, 484 button->GetBoundsInScreen().origin(), ui::EventTimeForNow(),
483 0); 485 ui::EF_IS_DOUBLE_CLICK, 0,
486 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
484 test_api_->ButtonPressed( 487 test_api_->ButtonPressed(
485 button, release_event, 488 button, release_event,
486 views::test::InkDropHostViewTestApi(button).GetInkDrop()); 489 views::test::InkDropHostViewTestApi(button).GetInkDrop());
487 shelf_view_->PointerReleasedOnButton(button, ShelfView::MOUSE, false); 490 shelf_view_->PointerReleasedOnButton(button, ShelfView::MOUSE, false);
488 } 491 }
489 492
490 void DoDrag(int dist_x, 493 void DoDrag(int dist_x,
491 int dist_y, 494 int dist_y,
492 views::View* button, 495 views::View* button,
493 ShelfView::Pointer pointer, 496 ShelfView::Pointer pointer,
494 views::View* to) { 497 views::View* to) {
495 ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, gfx::Point(dist_x, dist_y), 498 ui::MouseEvent drag_event(
496 to->GetBoundsInScreen().origin(), 499 ui::ET_MOUSE_DRAGGED, gfx::Point(dist_x, dist_y),
497 ui::EventTimeForNow(), 0, 0); 500 to->GetBoundsInScreen().origin(), ui::EventTimeForNow(), 0, 0,
501 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
498 shelf_view_->PointerDraggedOnButton(button, pointer, drag_event); 502 shelf_view_->PointerDraggedOnButton(button, pointer, drag_event);
499 } 503 }
500 504
501 /* 505 /*
502 * Trigger ContinueDrag of the shelf 506 * Trigger ContinueDrag of the shelf
503 * The argument progressively means whether to simulate the drag progress (a 507 * The argument progressively means whether to simulate the drag progress (a
504 * series of changes of the posistion of dragged item), like the normal user 508 * series of changes of the posistion of dragged item), like the normal user
505 * drag behavior. 509 * drag behavior.
506 */ 510 */
507 void ContinueDrag(views::View* button, 511 void ContinueDrag(views::View* button,
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after
1249 // the shelf item gets selected. 1253 // the shelf item gets selected.
1250 ShelfItemSelectionTracker* selection_tracker = new ShelfItemSelectionTracker; 1254 ShelfItemSelectionTracker* selection_tracker = new ShelfItemSelectionTracker;
1251 model_->SetShelfItemDelegate( 1255 model_->SetShelfItemDelegate(
1252 shelf_id, base::WrapUnique<ShelfItemSelectionTracker>(selection_tracker)); 1256 shelf_id, base::WrapUnique<ShelfItemSelectionTracker>(selection_tracker));
1253 1257
1254 gfx::Vector2d press_offset(5, 30); 1258 gfx::Vector2d press_offset(5, 30);
1255 gfx::Point press_location = gfx::Point() + press_offset; 1259 gfx::Point press_location = gfx::Point() + press_offset;
1256 gfx::Point press_location_in_screen = 1260 gfx::Point press_location_in_screen =
1257 button->GetBoundsInScreen().origin() + press_offset; 1261 button->GetBoundsInScreen().origin() + press_offset;
1258 1262
1259 ui::MouseEvent click_event(ui::ET_MOUSE_PRESSED, press_location, 1263 ui::MouseEvent click_event(
1260 press_location_in_screen, ui::EventTimeForNow(), 1264 ui::ET_MOUSE_PRESSED, press_location, press_location_in_screen,
1261 ui::EF_LEFT_MOUSE_BUTTON, 0); 1265 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
1266 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
1262 button->OnMousePressed(click_event); 1267 button->OnMousePressed(click_event);
1263 1268
1264 ui::MouseEvent drag_event1( 1269 ui::MouseEvent drag_event1(
1265 ui::ET_MOUSE_DRAGGED, press_location + gfx::Vector2d(0, 1), 1270 ui::ET_MOUSE_DRAGGED, press_location + gfx::Vector2d(0, 1),
1266 press_location_in_screen + gfx::Vector2d(0, 1), ui::EventTimeForNow(), 1271 press_location_in_screen + gfx::Vector2d(0, 1), ui::EventTimeForNow(),
1267 ui::EF_LEFT_MOUSE_BUTTON, 0); 1272 ui::EF_LEFT_MOUSE_BUTTON, 0,
1273 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
1268 button->OnMouseDragged(drag_event1); 1274 button->OnMouseDragged(drag_event1);
1269 1275
1270 ui::MouseEvent drag_event2( 1276 ui::MouseEvent drag_event2(
1271 ui::ET_MOUSE_DRAGGED, press_location + gfx::Vector2d(-1, 0), 1277 ui::ET_MOUSE_DRAGGED, press_location + gfx::Vector2d(-1, 0),
1272 press_location_in_screen + gfx::Vector2d(-1, 0), ui::EventTimeForNow(), 1278 press_location_in_screen + gfx::Vector2d(-1, 0), ui::EventTimeForNow(),
1273 ui::EF_LEFT_MOUSE_BUTTON, 0); 1279 ui::EF_LEFT_MOUSE_BUTTON, 0,
1280 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
1274 button->OnMouseDragged(drag_event2); 1281 button->OnMouseDragged(drag_event2);
1275 1282
1276 ui::MouseEvent release_event( 1283 ui::MouseEvent release_event(
1277 ui::ET_MOUSE_RELEASED, press_location + gfx::Vector2d(-1, 0), 1284 ui::ET_MOUSE_RELEASED, press_location + gfx::Vector2d(-1, 0),
1278 press_location_in_screen + gfx::Vector2d(-1, 0), ui::EventTimeForNow(), 1285 press_location_in_screen + gfx::Vector2d(-1, 0), ui::EventTimeForNow(),
1279 ui::EF_LEFT_MOUSE_BUTTON, 0); 1286 ui::EF_LEFT_MOUSE_BUTTON, 0,
1287 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
1280 button->OnMouseReleased(release_event); 1288 button->OnMouseReleased(release_event);
1281 1289
1282 EXPECT_TRUE(selection_tracker->WasSelected()); 1290 EXPECT_TRUE(selection_tracker->WasSelected());
1283 } 1291 }
1284 1292
1285 // Confirm that item status changes are reflected in the buttons. 1293 // Confirm that item status changes are reflected in the buttons.
1286 TEST_F(ShelfViewTest, ShelfItemStatus) { 1294 TEST_F(ShelfViewTest, ShelfItemStatus) {
1287 // All buttons should be visible. 1295 // All buttons should be visible.
1288 ASSERT_EQ(test_api_->GetButtonCount(), test_api_->GetLastVisibleIndex() + 1); 1296 ASSERT_EQ(test_api_->GetButtonCount(), test_api_->GetLastVisibleIndex() + 1);
1289 1297
(...skipping 997 matching lines...) Expand 10 before | Expand all | Expand 10 after
2287 } 2295 }
2288 2296
2289 // Tests that clicking on a shelf item that does not show a menu transitions ink 2297 // Tests that clicking on a shelf item that does not show a menu transitions ink
2290 // drop states correctly. 2298 // drop states correctly.
2291 TEST_F(ShelfViewInkDropTest, ShelfButtonWithoutMenuPressRelease) { 2299 TEST_F(ShelfViewInkDropTest, ShelfButtonWithoutMenuPressRelease) {
2292 InitBrowserButtonInkDrop(); 2300 InitBrowserButtonInkDrop();
2293 2301
2294 views::CustomButton* button = browser_button_; 2302 views::CustomButton* button = browser_button_;
2295 gfx::Point mouse_location = button->GetLocalBounds().CenterPoint(); 2303 gfx::Point mouse_location = button->GetLocalBounds().CenterPoint();
2296 2304
2297 ui::MouseEvent press_event(ui::ET_MOUSE_PRESSED, mouse_location, 2305 ui::MouseEvent press_event(
2298 mouse_location, ui::EventTimeForNow(), 2306 ui::ET_MOUSE_PRESSED, mouse_location, mouse_location,
2299 ui::EF_LEFT_MOUSE_BUTTON, 0); 2307 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2308 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2300 button->OnMousePressed(press_event); 2309 button->OnMousePressed(press_event);
2301 EXPECT_EQ(views::InkDropState::ACTION_PENDING, 2310 EXPECT_EQ(views::InkDropState::ACTION_PENDING,
2302 browser_button_ink_drop_->GetTargetInkDropState()); 2311 browser_button_ink_drop_->GetTargetInkDropState());
2303 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2312 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2304 ElementsAre(views::InkDropState::ACTION_PENDING)); 2313 ElementsAre(views::InkDropState::ACTION_PENDING));
2305 2314
2306 ui::MouseEvent release_event(ui::ET_MOUSE_RELEASED, mouse_location, 2315 ui::MouseEvent release_event(
2307 mouse_location, ui::EventTimeForNow(), 2316 ui::ET_MOUSE_RELEASED, mouse_location, mouse_location,
2308 ui::EF_LEFT_MOUSE_BUTTON, 0); 2317 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2318 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2309 button->OnMouseReleased(release_event); 2319 button->OnMouseReleased(release_event);
2310 EXPECT_EQ(views::InkDropState::HIDDEN, 2320 EXPECT_EQ(views::InkDropState::HIDDEN,
2311 browser_button_ink_drop_->GetTargetInkDropState()); 2321 browser_button_ink_drop_->GetTargetInkDropState());
2312 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2322 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2313 ElementsAre(views::InkDropState::ACTION_TRIGGERED)); 2323 ElementsAre(views::InkDropState::ACTION_TRIGGERED));
2314 } 2324 }
2315 2325
2316 // Tests that dragging outside of a shelf item transitions ink drop states 2326 // Tests that dragging outside of a shelf item transitions ink drop states
2317 // correctly. 2327 // correctly.
2318 TEST_F(ShelfViewInkDropTest, ShelfButtonWithoutMenuPressDragReleaseOutside) { 2328 TEST_F(ShelfViewInkDropTest, ShelfButtonWithoutMenuPressDragReleaseOutside) {
2319 InitBrowserButtonInkDrop(); 2329 InitBrowserButtonInkDrop();
2320 2330
2321 views::CustomButton* button = browser_button_; 2331 views::CustomButton* button = browser_button_;
2322 gfx::Point mouse_location = button->GetLocalBounds().CenterPoint(); 2332 gfx::Point mouse_location = button->GetLocalBounds().CenterPoint();
2323 2333
2324 ui::MouseEvent press_event(ui::ET_MOUSE_PRESSED, mouse_location, 2334 ui::MouseEvent press_event(
2325 mouse_location, ui::EventTimeForNow(), 2335 ui::ET_MOUSE_PRESSED, mouse_location, mouse_location,
2326 ui::EF_LEFT_MOUSE_BUTTON, 0); 2336 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2337 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2327 button->OnMousePressed(press_event); 2338 button->OnMousePressed(press_event);
2328 EXPECT_EQ(views::InkDropState::ACTION_PENDING, 2339 EXPECT_EQ(views::InkDropState::ACTION_PENDING,
2329 browser_button_ink_drop_->GetTargetInkDropState()); 2340 browser_button_ink_drop_->GetTargetInkDropState());
2330 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2341 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2331 ElementsAre(views::InkDropState::ACTION_PENDING)); 2342 ElementsAre(views::InkDropState::ACTION_PENDING));
2332 2343
2333 mouse_location.Offset(test_api_->GetMinimumDragDistance() / 2, 0); 2344 mouse_location.Offset(test_api_->GetMinimumDragDistance() / 2, 0);
2334 ui::MouseEvent drag_event_small(ui::ET_MOUSE_DRAGGED, mouse_location, 2345 ui::MouseEvent drag_event_small(
2335 mouse_location, ui::EventTimeForNow(), 2346 ui::ET_MOUSE_DRAGGED, mouse_location, mouse_location,
2336 ui::EF_LEFT_MOUSE_BUTTON, 0); 2347 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2348 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2337 button->OnMouseDragged(drag_event_small); 2349 button->OnMouseDragged(drag_event_small);
2338 EXPECT_EQ(views::InkDropState::ACTION_PENDING, 2350 EXPECT_EQ(views::InkDropState::ACTION_PENDING,
2339 browser_button_ink_drop_->GetTargetInkDropState()); 2351 browser_button_ink_drop_->GetTargetInkDropState());
2340 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2352 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2341 IsEmpty()); 2353 IsEmpty());
2342 2354
2343 mouse_location.Offset(test_api_->GetMinimumDragDistance(), 0); 2355 mouse_location.Offset(test_api_->GetMinimumDragDistance(), 0);
2344 ui::MouseEvent drag_event_large(ui::ET_MOUSE_DRAGGED, mouse_location, 2356 ui::MouseEvent drag_event_large(
2345 mouse_location, ui::EventTimeForNow(), 2357 ui::ET_MOUSE_DRAGGED, mouse_location, mouse_location,
2346 ui::EF_LEFT_MOUSE_BUTTON, 0); 2358 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2359 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2347 button->OnMouseDragged(drag_event_large); 2360 button->OnMouseDragged(drag_event_large);
2348 EXPECT_EQ(views::InkDropState::HIDDEN, 2361 EXPECT_EQ(views::InkDropState::HIDDEN,
2349 browser_button_ink_drop_->GetTargetInkDropState()); 2362 browser_button_ink_drop_->GetTargetInkDropState());
2350 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2363 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2351 ElementsAre(views::InkDropState::HIDDEN)); 2364 ElementsAre(views::InkDropState::HIDDEN));
2352 2365
2353 ui::MouseEvent release_event(ui::ET_MOUSE_RELEASED, mouse_location, 2366 ui::MouseEvent release_event(
2354 mouse_location, ui::EventTimeForNow(), 2367 ui::ET_MOUSE_RELEASED, mouse_location, mouse_location,
2355 ui::EF_LEFT_MOUSE_BUTTON, 0); 2368 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2369 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2356 button->OnMouseReleased(release_event); 2370 button->OnMouseReleased(release_event);
2357 EXPECT_EQ(views::InkDropState::HIDDEN, 2371 EXPECT_EQ(views::InkDropState::HIDDEN,
2358 browser_button_ink_drop_->GetTargetInkDropState()); 2372 browser_button_ink_drop_->GetTargetInkDropState());
2359 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2373 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2360 IsEmpty()); 2374 IsEmpty());
2361 } 2375 }
2362 2376
2363 // Tests that dragging outside of a shelf item and back transitions ink drop 2377 // Tests that dragging outside of a shelf item and back transitions ink drop
2364 // states correctly. 2378 // states correctly.
2365 TEST_F(ShelfViewInkDropTest, ShelfButtonWithoutMenuPressDragReleaseInside) { 2379 TEST_F(ShelfViewInkDropTest, ShelfButtonWithoutMenuPressDragReleaseInside) {
2366 InitBrowserButtonInkDrop(); 2380 InitBrowserButtonInkDrop();
2367 2381
2368 views::CustomButton* button = browser_button_; 2382 views::CustomButton* button = browser_button_;
2369 gfx::Point mouse_location = button->GetLocalBounds().CenterPoint(); 2383 gfx::Point mouse_location = button->GetLocalBounds().CenterPoint();
2370 2384
2371 ui::MouseEvent press_event(ui::ET_MOUSE_PRESSED, mouse_location, 2385 ui::MouseEvent press_event(
2372 mouse_location, ui::EventTimeForNow(), 2386 ui::ET_MOUSE_PRESSED, mouse_location, mouse_location,
2373 ui::EF_LEFT_MOUSE_BUTTON, 0); 2387 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2388 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2374 button->OnMousePressed(press_event); 2389 button->OnMousePressed(press_event);
2375 EXPECT_EQ(views::InkDropState::ACTION_PENDING, 2390 EXPECT_EQ(views::InkDropState::ACTION_PENDING,
2376 browser_button_ink_drop_->GetTargetInkDropState()); 2391 browser_button_ink_drop_->GetTargetInkDropState());
2377 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2392 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2378 ElementsAre(views::InkDropState::ACTION_PENDING)); 2393 ElementsAre(views::InkDropState::ACTION_PENDING));
2379 2394
2380 mouse_location.Offset(test_api_->GetMinimumDragDistance() * 2, 0); 2395 mouse_location.Offset(test_api_->GetMinimumDragDistance() * 2, 0);
2381 ui::MouseEvent drag_event_outside(ui::ET_MOUSE_DRAGGED, mouse_location, 2396 ui::MouseEvent drag_event_outside(
2382 mouse_location, ui::EventTimeForNow(), 2397 ui::ET_MOUSE_DRAGGED, mouse_location, mouse_location,
2383 ui::EF_LEFT_MOUSE_BUTTON, 0); 2398 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2399 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2384 button->OnMouseDragged(drag_event_outside); 2400 button->OnMouseDragged(drag_event_outside);
2385 EXPECT_EQ(views::InkDropState::HIDDEN, 2401 EXPECT_EQ(views::InkDropState::HIDDEN,
2386 browser_button_ink_drop_->GetTargetInkDropState()); 2402 browser_button_ink_drop_->GetTargetInkDropState());
2387 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2403 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2388 ElementsAre(views::InkDropState::HIDDEN)); 2404 ElementsAre(views::InkDropState::HIDDEN));
2389 2405
2390 mouse_location.Offset(-test_api_->GetMinimumDragDistance() * 2, 0); 2406 mouse_location.Offset(-test_api_->GetMinimumDragDistance() * 2, 0);
2391 ui::MouseEvent drag_event_inside(ui::ET_MOUSE_DRAGGED, mouse_location, 2407 ui::MouseEvent drag_event_inside(
2392 mouse_location, ui::EventTimeForNow(), 2408 ui::ET_MOUSE_DRAGGED, mouse_location, mouse_location,
2393 ui::EF_LEFT_MOUSE_BUTTON, 0); 2409 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2410 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2394 button->OnMouseDragged(drag_event_inside); 2411 button->OnMouseDragged(drag_event_inside);
2395 EXPECT_EQ(views::InkDropState::HIDDEN, 2412 EXPECT_EQ(views::InkDropState::HIDDEN,
2396 browser_button_ink_drop_->GetTargetInkDropState()); 2413 browser_button_ink_drop_->GetTargetInkDropState());
2397 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2414 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2398 IsEmpty()); 2415 IsEmpty());
2399 2416
2400 ui::MouseEvent release_event(ui::ET_MOUSE_RELEASED, mouse_location, 2417 ui::MouseEvent release_event(
2401 mouse_location, ui::EventTimeForNow(), 2418 ui::ET_MOUSE_RELEASED, mouse_location, mouse_location,
2402 ui::EF_LEFT_MOUSE_BUTTON, 0); 2419 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2420 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2403 button->OnMouseReleased(release_event); 2421 button->OnMouseReleased(release_event);
2404 EXPECT_EQ(views::InkDropState::HIDDEN, 2422 EXPECT_EQ(views::InkDropState::HIDDEN,
2405 browser_button_ink_drop_->GetTargetInkDropState()); 2423 browser_button_ink_drop_->GetTargetInkDropState());
2406 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2424 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2407 IsEmpty()); 2425 IsEmpty());
2408 } 2426 }
2409 2427
2410 // Tests that clicking on a shelf item that shows an app list menu transitions 2428 // Tests that clicking on a shelf item that shows an app list menu transitions
2411 // ink drop state correctly. 2429 // ink drop state correctly.
2412 TEST_F(ShelfViewInkDropTest, ShelfButtonWithMenuPressRelease) { 2430 TEST_F(ShelfViewInkDropTest, ShelfButtonWithMenuPressRelease) {
2413 InitBrowserButtonInkDrop(); 2431 InitBrowserButtonInkDrop();
2414 2432
2415 // Set a delegate for the shelf item that returns an app list menu. 2433 // Set a delegate for the shelf item that returns an app list menu.
2416 ShelfID browser_shelf_id = model_->items()[browser_index_].id; 2434 ShelfID browser_shelf_id = model_->items()[browser_index_].id;
2417 model_->SetShelfItemDelegate(browser_shelf_id, 2435 model_->SetShelfItemDelegate(browser_shelf_id,
2418 base::MakeUnique<ListMenuShelfItemDelegate>()); 2436 base::MakeUnique<ListMenuShelfItemDelegate>());
2419 2437
2420 views::CustomButton* button = browser_button_; 2438 views::CustomButton* button = browser_button_;
2421 gfx::Point mouse_location = button->GetLocalBounds().CenterPoint(); 2439 gfx::Point mouse_location = button->GetLocalBounds().CenterPoint();
2422 2440
2423 ui::MouseEvent press_event(ui::ET_MOUSE_PRESSED, mouse_location, 2441 ui::MouseEvent press_event(
2424 mouse_location, ui::EventTimeForNow(), 2442 ui::ET_MOUSE_PRESSED, mouse_location, mouse_location,
2425 ui::EF_LEFT_MOUSE_BUTTON, 0); 2443 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2444 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2426 button->OnMousePressed(press_event); 2445 button->OnMousePressed(press_event);
2427 EXPECT_EQ(views::InkDropState::ACTION_PENDING, 2446 EXPECT_EQ(views::InkDropState::ACTION_PENDING,
2428 browser_button_ink_drop_->GetTargetInkDropState()); 2447 browser_button_ink_drop_->GetTargetInkDropState());
2429 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2448 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2430 ElementsAre(views::InkDropState::ACTION_PENDING)); 2449 ElementsAre(views::InkDropState::ACTION_PENDING));
2431 2450
2432 // Mouse release will spawn a menu which we will then close. 2451 // Mouse release will spawn a menu which we will then close.
2433 ui::MouseEvent release_event(ui::ET_MOUSE_RELEASED, mouse_location, 2452 ui::MouseEvent release_event(
2434 mouse_location, ui::EventTimeForNow(), 2453 ui::ET_MOUSE_RELEASED, mouse_location, mouse_location,
2435 ui::EF_LEFT_MOUSE_BUTTON, 0); 2454 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0,
2455 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2436 button->OnMouseReleased(release_event); 2456 button->OnMouseReleased(release_event);
2437 test_api_->CloseMenu(); 2457 test_api_->CloseMenu();
2438 EXPECT_EQ(views::InkDropState::HIDDEN, 2458 EXPECT_EQ(views::InkDropState::HIDDEN,
2439 browser_button_ink_drop_->GetTargetInkDropState()); 2459 browser_button_ink_drop_->GetTargetInkDropState());
2440 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(), 2460 EXPECT_THAT(browser_button_ink_drop_->GetAndResetRequestedStates(),
2441 ElementsAre(views::InkDropState::ACTIVATED, 2461 ElementsAre(views::InkDropState::ACTIVATED,
2442 views::InkDropState::DEACTIVATED)); 2462 views::InkDropState::DEACTIVATED));
2443 } 2463 }
2444 2464
2445 namespace { 2465 namespace {
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
2989 EXPECT_EQ(views::InkDropState::ACTIVATED, 3009 EXPECT_EQ(views::InkDropState::ACTIVATED,
2990 overflow_button_ink_drop_->GetTargetInkDropState()); 3010 overflow_button_ink_drop_->GetTargetInkDropState());
2991 EXPECT_THAT(overflow_button_ink_drop_->GetAndResetRequestedStates(), 3011 EXPECT_THAT(overflow_button_ink_drop_->GetAndResetRequestedStates(),
2992 IsEmpty()); 3012 IsEmpty());
2993 3013
2994 ASSERT_TRUE(test_api_->IsShowingOverflowBubble()); 3014 ASSERT_TRUE(test_api_->IsShowingOverflowBubble());
2995 } 3015 }
2996 3016
2997 } // namespace test 3017 } // namespace test
2998 } // namespace ash 3018 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698