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

Side by Side Diff: ash/drag_drop/drag_drop_controller_unittest.cc

Issue 9421016: Change EventGenerator to take a RootWindow at construction instead of just assuming one via RootWin… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 10 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 | Annotate | Revision Log
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/drag_drop/drag_drop_controller.h" 5 #include "ash/drag_drop/drag_drop_controller.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/test/ash_test_base.h" 8 #include "ash/test/ash_test_base.h"
9 #include "ash/wm/root_window_event_filter.h" 9 #include "ash/wm/root_window_event_filter.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 private: 209 private:
210 DISALLOW_COPY_AND_ASSIGN(DragDropControllerTest); 210 DISALLOW_COPY_AND_ASSIGN(DragDropControllerTest);
211 }; 211 };
212 212
213 TEST_F(DragDropControllerTest, DragDropInSingleViewTest) { 213 TEST_F(DragDropControllerTest, DragDropInSingleViewTest) {
214 scoped_ptr<views::Widget> widget(CreateNewWidget()); 214 scoped_ptr<views::Widget> widget(CreateNewWidget());
215 DragTestView* drag_view = new DragTestView; 215 DragTestView* drag_view = new DragTestView;
216 AddViewToWidgetAndResize(widget.get(), drag_view); 216 AddViewToWidgetAndResize(widget.get(), drag_view);
217 ui::OSExchangeData data; 217 ui::OSExchangeData data;
218 data.SetString(UTF8ToUTF16("I am being dragged")); 218 data.SetString(UTF8ToUTF16("I am being dragged"));
219 aura::test::EventGenerator generator(widget->GetNativeView()); 219 aura::test::EventGenerator generator(Shell::GetRootWindow(),
220 widget->GetNativeView());
220 generator.PressLeftButton(); 221 generator.PressLeftButton();
221 222
222 int num_drags = 17; 223 int num_drags = 17;
223 for (int i = 0; i < num_drags; ++i) { 224 for (int i = 0; i < num_drags; ++i) {
224 // Because we are not doing a blocking drag and drop, the original 225 // Because we are not doing a blocking drag and drop, the original
225 // OSDragExchangeData object is lost as soon as we return from the drag 226 // OSDragExchangeData object is lost as soon as we return from the drag
226 // initiation in DragDropController::StartDragAndDrop(). Hence we set the 227 // initiation in DragDropController::StartDragAndDrop(). Hence we set the
227 // drag_data_ to a fake drag data object that we created. 228 // drag_data_ to a fake drag data object that we created.
228 if (i > 0) 229 if (i > 0)
229 UpdateDragData(&data); 230 UpdateDragData(&data);
(...skipping 20 matching lines...) Expand all
250 TEST_F(DragDropControllerTest, DragDropInMultipleViewsSingleWidgetTest) { 251 TEST_F(DragDropControllerTest, DragDropInMultipleViewsSingleWidgetTest) {
251 scoped_ptr<views::Widget> widget(CreateNewWidget()); 252 scoped_ptr<views::Widget> widget(CreateNewWidget());
252 DragTestView* drag_view1 = new DragTestView; 253 DragTestView* drag_view1 = new DragTestView;
253 AddViewToWidgetAndResize(widget.get(), drag_view1); 254 AddViewToWidgetAndResize(widget.get(), drag_view1);
254 DragTestView* drag_view2 = new DragTestView; 255 DragTestView* drag_view2 = new DragTestView;
255 AddViewToWidgetAndResize(widget.get(), drag_view2); 256 AddViewToWidgetAndResize(widget.get(), drag_view2);
256 257
257 ui::OSExchangeData data; 258 ui::OSExchangeData data;
258 data.SetString(UTF8ToUTF16("I am being dragged")); 259 data.SetString(UTF8ToUTF16("I am being dragged"));
259 260
260 aura::test::EventGenerator generator; 261 aura::test::EventGenerator generator(Shell::GetRootWindow());
261 generator.MoveMouseRelativeTo(widget->GetNativeView(), 262 generator.MoveMouseRelativeTo(widget->GetNativeView(),
262 drag_view1->bounds().CenterPoint()); 263 drag_view1->bounds().CenterPoint());
263 generator.PressLeftButton(); 264 generator.PressLeftButton();
264 265
265 int num_drags = drag_view1->width(); 266 int num_drags = drag_view1->width();
266 for (int i = 0; i < num_drags; ++i) { 267 for (int i = 0; i < num_drags; ++i) {
267 // Because we are not doing a blocking drag and drop, the original 268 // Because we are not doing a blocking drag and drop, the original
268 // OSDragExchangeData object is lost as soon as we return from the drag 269 // OSDragExchangeData object is lost as soon as we return from the drag
269 // initiation in DragDropController::StartDragAndDrop(). Hence we set the 270 // initiation in DragDropController::StartDragAndDrop(). Hence we set the
270 // drag_data_ to a fake drag data object that we created. 271 // drag_data_ to a fake drag data object that we created.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 DragTestView* drag_view2 = new DragTestView; 308 DragTestView* drag_view2 = new DragTestView;
308 AddViewToWidgetAndResize(widget2.get(), drag_view2); 309 AddViewToWidgetAndResize(widget2.get(), drag_view2);
309 gfx::Rect widget1_bounds = widget1->GetClientAreaScreenBounds(); 310 gfx::Rect widget1_bounds = widget1->GetClientAreaScreenBounds();
310 gfx::Rect widget2_bounds = widget2->GetClientAreaScreenBounds(); 311 gfx::Rect widget2_bounds = widget2->GetClientAreaScreenBounds();
311 widget2->SetBounds(gfx::Rect(widget1_bounds.width(), 0, 312 widget2->SetBounds(gfx::Rect(widget1_bounds.width(), 0,
312 widget2_bounds.width(), widget2_bounds.height())); 313 widget2_bounds.width(), widget2_bounds.height()));
313 314
314 ui::OSExchangeData data; 315 ui::OSExchangeData data;
315 data.SetString(UTF8ToUTF16("I am being dragged")); 316 data.SetString(UTF8ToUTF16("I am being dragged"));
316 317
317 aura::test::EventGenerator generator(widget1->GetNativeView()); 318 aura::test::EventGenerator generator(Shell::GetRootWindow(),
319 widget1->GetNativeView());
318 generator.PressLeftButton(); 320 generator.PressLeftButton();
319 321
320 int num_drags = drag_view1->width(); 322 int num_drags = drag_view1->width();
321 for (int i = 0; i < num_drags; ++i) { 323 for (int i = 0; i < num_drags; ++i) {
322 // Because we are not doing a blocking drag and drop, the original 324 // Because we are not doing a blocking drag and drop, the original
323 // OSDragExchangeData object is lost as soon as we return from the drag 325 // OSDragExchangeData object is lost as soon as we return from the drag
324 // initiation in DragDropController::StartDragAndDrop(). Hence we set the 326 // initiation in DragDropController::StartDragAndDrop(). Hence we set the
325 // drag_data_ to a fake drag data object that we created. 327 // drag_data_ to a fake drag data object that we created.
326 if (i > 0) 328 if (i > 0)
327 UpdateDragData(&data); 329 UpdateDragData(&data);
(...skipping 27 matching lines...) Expand all
355 } 357 }
356 358
357 TEST_F(DragDropControllerTest, ViewRemovedWhileInDragDropTest) { 359 TEST_F(DragDropControllerTest, ViewRemovedWhileInDragDropTest) {
358 scoped_ptr<views::Widget> widget(CreateNewWidget()); 360 scoped_ptr<views::Widget> widget(CreateNewWidget());
359 scoped_ptr<DragTestView> drag_view(new DragTestView); 361 scoped_ptr<DragTestView> drag_view(new DragTestView);
360 AddViewToWidgetAndResize(widget.get(), drag_view.get()); 362 AddViewToWidgetAndResize(widget.get(), drag_view.get());
361 gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint(); 363 gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint();
362 ui::OSExchangeData data; 364 ui::OSExchangeData data;
363 data.SetString(UTF8ToUTF16("I am being dragged")); 365 data.SetString(UTF8ToUTF16("I am being dragged"));
364 366
365 aura::test::EventGenerator generator; 367 aura::test::EventGenerator generator(Shell::GetRootWindow());
366 generator.MoveMouseToCenterOf(widget->GetNativeView()); 368 generator.MoveMouseToCenterOf(widget->GetNativeView());
367 generator.PressLeftButton(); 369 generator.PressLeftButton();
368 370
369 int num_drags_1 = 17; 371 int num_drags_1 = 17;
370 for (int i = 0; i < num_drags_1; ++i) { 372 for (int i = 0; i < num_drags_1; ++i) {
371 // Because we are not doing a blocking drag and drop, the original 373 // Because we are not doing a blocking drag and drop, the original
372 // OSDragExchangeData object is lost as soon as we return from the drag 374 // OSDragExchangeData object is lost as soon as we return from the drag
373 // initiation in DragDropController::StartDragAndDrop(). Hence we set the 375 // initiation in DragDropController::StartDragAndDrop(). Hence we set the
374 // drag_data_ to a fake drag data object that we created. 376 // drag_data_ to a fake drag data object that we created.
375 if (i > 0) 377 if (i > 0)
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 EXPECT_FALSE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), 414 EXPECT_FALSE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(),
413 ui::Clipboard::BUFFER_STANDARD)); 415 ui::Clipboard::BUFFER_STANDARD));
414 std::string result; 416 std::string result;
415 cb->ReadAsciiText(ui::Clipboard::BUFFER_STANDARD, &result); 417 cb->ReadAsciiText(ui::Clipboard::BUFFER_STANDARD, &result);
416 EXPECT_EQ("", result); 418 EXPECT_EQ("", result);
417 419
418 scoped_ptr<views::Widget> widget(CreateNewWidget()); 420 scoped_ptr<views::Widget> widget(CreateNewWidget());
419 DragTestView* drag_view = new DragTestView; 421 DragTestView* drag_view = new DragTestView;
420 AddViewToWidgetAndResize(widget.get(), drag_view); 422 AddViewToWidgetAndResize(widget.get(), drag_view);
421 423
422 aura::test::EventGenerator generator(widget->GetNativeView()); 424 aura::test::EventGenerator generator(Shell::GetRootWindow(),
425 widget->GetNativeView());
423 ui::OSExchangeData data; 426 ui::OSExchangeData data;
424 std::string data_str("I am being dragged"); 427 std::string data_str("I am being dragged");
425 data.SetString(ASCIIToUTF16(data_str)); 428 data.SetString(ASCIIToUTF16(data_str));
426 429
427 generator.PressLeftButton(); 430 generator.PressLeftButton();
428 generator.MoveMouseBy(0, drag_view->VerticalDragThreshold() + 1); 431 generator.MoveMouseBy(0, drag_view->VerticalDragThreshold() + 1);
429 432
430 EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), 433 EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(),
431 ui::Clipboard::BUFFER_STANDARD)); 434 ui::Clipboard::BUFFER_STANDARD));
432 cb->ReadAsciiText(ui::Clipboard::BUFFER_STANDARD, &result); 435 cb->ReadAsciiText(ui::Clipboard::BUFFER_STANDARD, &result);
433 EXPECT_EQ(data_str, result); 436 EXPECT_EQ(data_str, result);
434 } 437 }
435 438
436 TEST_F(DragDropControllerTest, WindowDestroyedDuringDragDrop) { 439 TEST_F(DragDropControllerTest, WindowDestroyedDuringDragDrop) {
437 scoped_ptr<views::Widget> widget(CreateNewWidget()); 440 scoped_ptr<views::Widget> widget(CreateNewWidget());
438 DragTestView* drag_view = new DragTestView; 441 DragTestView* drag_view = new DragTestView;
439 AddViewToWidgetAndResize(widget.get(), drag_view); 442 AddViewToWidgetAndResize(widget.get(), drag_view);
440 aura::Window* window = widget->GetNativeView(); 443 aura::Window* window = widget->GetNativeView();
441 444
442 ui::OSExchangeData data; 445 ui::OSExchangeData data;
443 data.SetString(UTF8ToUTF16("I am being dragged")); 446 data.SetString(UTF8ToUTF16("I am being dragged"));
444 aura::test::EventGenerator generator(widget->GetNativeView()); 447 aura::test::EventGenerator generator(Shell::GetRootWindow(),
448 widget->GetNativeView());
445 generator.PressLeftButton(); 449 generator.PressLeftButton();
446 450
447 int num_drags = 17; 451 int num_drags = 17;
448 for (int i = 0; i < num_drags; ++i) { 452 for (int i = 0; i < num_drags; ++i) {
449 // Because we are not doing a blocking drag and drop, the original 453 // Because we are not doing a blocking drag and drop, the original
450 // OSDragExchangeData object is lost as soon as we return from the drag 454 // OSDragExchangeData object is lost as soon as we return from the drag
451 // initiation in DragDropController::StartDragAndDrop(). Hence we set the 455 // initiation in DragDropController::StartDragAndDrop(). Hence we set the
452 // drag_data_ to a fake drag data object that we created. 456 // drag_data_ to a fake drag data object that we created.
453 if (i > 0) 457 if (i > 0)
454 UpdateDragData(&data); 458 UpdateDragData(&data);
(...skipping 18 matching lines...) Expand all
473 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); 477 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
474 EXPECT_TRUE(drag_drop_controller_->drop_received_); 478 EXPECT_TRUE(drag_drop_controller_->drop_received_);
475 } 479 }
476 480
477 TEST_F(DragDropControllerTest, SyntheticEventsDuringDragDrop) { 481 TEST_F(DragDropControllerTest, SyntheticEventsDuringDragDrop) {
478 scoped_ptr<views::Widget> widget(CreateNewWidget()); 482 scoped_ptr<views::Widget> widget(CreateNewWidget());
479 DragTestView* drag_view = new DragTestView; 483 DragTestView* drag_view = new DragTestView;
480 AddViewToWidgetAndResize(widget.get(), drag_view); 484 AddViewToWidgetAndResize(widget.get(), drag_view);
481 ui::OSExchangeData data; 485 ui::OSExchangeData data;
482 data.SetString(UTF8ToUTF16("I am being dragged")); 486 data.SetString(UTF8ToUTF16("I am being dragged"));
483 aura::test::EventGenerator generator(widget->GetNativeView()); 487 aura::test::EventGenerator generator(Shell::GetRootWindow(),
488 widget->GetNativeView());
484 generator.PressLeftButton(); 489 generator.PressLeftButton();
485 490
486 int num_drags = 17; 491 int num_drags = 17;
487 for (int i = 0; i < num_drags; ++i) { 492 for (int i = 0; i < num_drags; ++i) {
488 // Because we are not doing a blocking drag and drop, the original 493 // Because we are not doing a blocking drag and drop, the original
489 // OSDragExchangeData object is lost as soon as we return from the drag 494 // OSDragExchangeData object is lost as soon as we return from the drag
490 // initiation in DragDropController::StartDragAndDrop(). Hence we set the 495 // initiation in DragDropController::StartDragAndDrop(). Hence we set the
491 // drag_data_ to a fake drag data object that we created. 496 // drag_data_ to a fake drag data object that we created.
492 if (i > 0) 497 if (i > 0)
493 UpdateDragData(&data); 498 UpdateDragData(&data);
(...skipping 20 matching lines...) Expand all
514 EXPECT_EQ(1, drag_view->num_drag_enters_); 519 EXPECT_EQ(1, drag_view->num_drag_enters_);
515 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 520 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
516 drag_view->num_drag_updates_); 521 drag_view->num_drag_updates_);
517 EXPECT_EQ(1, drag_view->num_drops_); 522 EXPECT_EQ(1, drag_view->num_drops_);
518 EXPECT_EQ(0, drag_view->num_drag_exits_); 523 EXPECT_EQ(0, drag_view->num_drag_exits_);
519 EXPECT_TRUE(drag_view->drag_done_received_); 524 EXPECT_TRUE(drag_view->drag_done_received_);
520 } 525 }
521 526
522 } // namespace test 527 } // namespace test
523 } // namespace aura 528 } // namespace aura
OLDNEW
« no previous file with comments | « ash/accelerators/accelerator_filter_unittest.cc ('k') | ash/ime/input_method_event_filter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698