OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "ui/aura/window.h" | 5 #include "ui/aura/window.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
11 #include "ui/aura/client/stacking_client.h" | 11 #include "ui/aura/client/stacking_client.h" |
12 #include "ui/aura/desktop.h" | |
13 #include "ui/aura/desktop_observer.h" | |
14 #include "ui/aura/event.h" | 12 #include "ui/aura/event.h" |
15 #include "ui/aura/focus_manager.h" | 13 #include "ui/aura/focus_manager.h" |
| 14 #include "ui/aura/root_window.h" |
| 15 #include "ui/aura/root_window_observer.h" |
16 #include "ui/aura/test/aura_test_base.h" | 16 #include "ui/aura/test/aura_test_base.h" |
17 #include "ui/aura/test/event_generator.h" | 17 #include "ui/aura/test/event_generator.h" |
18 #include "ui/aura/test/test_windows.h" | 18 #include "ui/aura/test/test_windows.h" |
19 #include "ui/aura/test/test_window_delegate.h" | 19 #include "ui/aura/test/test_window_delegate.h" |
20 #include "ui/aura/window_delegate.h" | 20 #include "ui/aura/window_delegate.h" |
21 #include "ui/aura/window_observer.h" | 21 #include "ui/aura/window_observer.h" |
22 #include "ui/base/hit_test.h" | 22 #include "ui/base/hit_test.h" |
23 #include "ui/base/keycodes/keyboard_codes.h" | 23 #include "ui/base/keycodes/keyboard_codes.h" |
24 #include "ui/gfx/canvas_skia.h" | 24 #include "ui/gfx/canvas_skia.h" |
25 #include "ui/gfx/compositor/layer.h" | 25 #include "ui/gfx/compositor/layer.h" |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 scoped_ptr<Window> w1111( | 195 scoped_ptr<Window> w1111( |
196 CreateTestWindow(SK_ColorRED, 1111, gfx::Rect(5, 5, 50, 50), w111.get())); | 196 CreateTestWindow(SK_ColorRED, 1111, gfx::Rect(5, 5, 50, 50), w111.get())); |
197 scoped_ptr<Window> w12( | 197 scoped_ptr<Window> w12( |
198 CreateTestWindow(SK_ColorMAGENTA, 12, gfx::Rect(10, 420, 25, 25), | 198 CreateTestWindow(SK_ColorMAGENTA, 12, gfx::Rect(10, 420, 25, 25), |
199 w1.get())); | 199 w1.get())); |
200 scoped_ptr<Window> w121( | 200 scoped_ptr<Window> w121( |
201 CreateTestWindow(SK_ColorYELLOW, 121, gfx::Rect(5, 5, 5, 5), w12.get())); | 201 CreateTestWindow(SK_ColorYELLOW, 121, gfx::Rect(5, 5, 5, 5), w12.get())); |
202 scoped_ptr<Window> w13( | 202 scoped_ptr<Window> w13( |
203 CreateTestWindow(SK_ColorGRAY, 13, gfx::Rect(5, 470, 50, 50), w1.get())); | 203 CreateTestWindow(SK_ColorGRAY, 13, gfx::Rect(5, 470, 50, 50), w1.get())); |
204 | 204 |
205 Window* root = Desktop::GetInstance(); | 205 Window* root = RootWindow::GetInstance(); |
206 w1->parent()->SetBounds(gfx::Rect(500, 500)); | 206 w1->parent()->SetBounds(gfx::Rect(500, 500)); |
207 EXPECT_EQ(NULL, root->GetEventHandlerForPoint(gfx::Point(5, 5))); | 207 EXPECT_EQ(NULL, root->GetEventHandlerForPoint(gfx::Point(5, 5))); |
208 EXPECT_EQ(w1.get(), root->GetEventHandlerForPoint(gfx::Point(11, 11))); | 208 EXPECT_EQ(w1.get(), root->GetEventHandlerForPoint(gfx::Point(11, 11))); |
209 EXPECT_EQ(w11.get(), root->GetEventHandlerForPoint(gfx::Point(16, 16))); | 209 EXPECT_EQ(w11.get(), root->GetEventHandlerForPoint(gfx::Point(16, 16))); |
210 EXPECT_EQ(w111.get(), root->GetEventHandlerForPoint(gfx::Point(21, 21))); | 210 EXPECT_EQ(w111.get(), root->GetEventHandlerForPoint(gfx::Point(21, 21))); |
211 EXPECT_EQ(w1111.get(), root->GetEventHandlerForPoint(gfx::Point(26, 26))); | 211 EXPECT_EQ(w1111.get(), root->GetEventHandlerForPoint(gfx::Point(26, 26))); |
212 EXPECT_EQ(w12.get(), root->GetEventHandlerForPoint(gfx::Point(21, 431))); | 212 EXPECT_EQ(w12.get(), root->GetEventHandlerForPoint(gfx::Point(21, 431))); |
213 EXPECT_EQ(w121.get(), root->GetEventHandlerForPoint(gfx::Point(26, 436))); | 213 EXPECT_EQ(w121.get(), root->GetEventHandlerForPoint(gfx::Point(26, 436))); |
214 EXPECT_EQ(w13.get(), root->GetEventHandlerForPoint(gfx::Point(26, 481))); | 214 EXPECT_EQ(w13.get(), root->GetEventHandlerForPoint(gfx::Point(26, 481))); |
215 } | 215 } |
216 | 216 |
217 TEST_F(WindowTest, GetTopWindowContainingPoint) { | 217 TEST_F(WindowTest, GetTopWindowContainingPoint) { |
218 Window* root = Desktop::GetInstance(); | 218 Window* root = RootWindow::GetInstance(); |
219 root->SetBounds(gfx::Rect(0, 0, 300, 300)); | 219 root->SetBounds(gfx::Rect(0, 0, 300, 300)); |
220 | 220 |
221 scoped_ptr<Window> w1( | 221 scoped_ptr<Window> w1( |
222 CreateTestWindow(SK_ColorWHITE, 1, gfx::Rect(10, 10, 100, 100), NULL)); | 222 CreateTestWindow(SK_ColorWHITE, 1, gfx::Rect(10, 10, 100, 100), NULL)); |
223 scoped_ptr<Window> w11( | 223 scoped_ptr<Window> w11( |
224 CreateTestWindow(SK_ColorGREEN, 11, gfx::Rect(0, 0, 120, 120), w1.get())); | 224 CreateTestWindow(SK_ColorGREEN, 11, gfx::Rect(0, 0, 120, 120), w1.get())); |
225 | 225 |
226 scoped_ptr<Window> w2( | 226 scoped_ptr<Window> w2( |
227 CreateTestWindow(SK_ColorRED, 2, gfx::Rect(5, 5, 55, 55), NULL)); | 227 CreateTestWindow(SK_ColorRED, 2, gfx::Rect(5, 5, 55, 55), NULL)); |
228 | 228 |
(...skipping 18 matching lines...) Expand all Loading... |
247 EXPECT_EQ(NULL, root->GetTopWindowContainingPoint(gfx::Point(110, 110))); | 247 EXPECT_EQ(NULL, root->GetTopWindowContainingPoint(gfx::Point(110, 110))); |
248 EXPECT_EQ(w31.get(), root->GetTopWindowContainingPoint(gfx::Point(200, 200))); | 248 EXPECT_EQ(w31.get(), root->GetTopWindowContainingPoint(gfx::Point(200, 200))); |
249 EXPECT_EQ(w31.get(), root->GetTopWindowContainingPoint(gfx::Point(220, 220))); | 249 EXPECT_EQ(w31.get(), root->GetTopWindowContainingPoint(gfx::Point(220, 220))); |
250 EXPECT_EQ(NULL, root->GetTopWindowContainingPoint(gfx::Point(260, 260))); | 250 EXPECT_EQ(NULL, root->GetTopWindowContainingPoint(gfx::Point(260, 260))); |
251 } | 251 } |
252 | 252 |
253 TEST_F(WindowTest, GetToplevelWindow) { | 253 TEST_F(WindowTest, GetToplevelWindow) { |
254 const gfx::Rect kBounds(0, 0, 10, 10); | 254 const gfx::Rect kBounds(0, 0, 10, 10); |
255 TestWindowDelegate delegate; | 255 TestWindowDelegate delegate; |
256 | 256 |
257 Window* root = aura::Desktop::GetInstance(); | 257 Window* root = aura::RootWindow::GetInstance(); |
258 scoped_ptr<Window> w1(CreateTestWindowWithId(1, root)); | 258 scoped_ptr<Window> w1(CreateTestWindowWithId(1, root)); |
259 scoped_ptr<Window> w11( | 259 scoped_ptr<Window> w11( |
260 CreateTestWindowWithDelegate(&delegate, 11, kBounds, w1.get())); | 260 CreateTestWindowWithDelegate(&delegate, 11, kBounds, w1.get())); |
261 scoped_ptr<Window> w111(CreateTestWindowWithId(111, w11.get())); | 261 scoped_ptr<Window> w111(CreateTestWindowWithId(111, w11.get())); |
262 scoped_ptr<Window> w1111( | 262 scoped_ptr<Window> w1111( |
263 CreateTestWindowWithDelegate(&delegate, 1111, kBounds, w111.get())); | 263 CreateTestWindowWithDelegate(&delegate, 1111, kBounds, w111.get())); |
264 | 264 |
265 EXPECT_TRUE(root->GetToplevelWindow() == NULL); | 265 EXPECT_TRUE(root->GetToplevelWindow() == NULL); |
266 EXPECT_TRUE(w1->GetToplevelWindow() == NULL); | 266 EXPECT_TRUE(w1->GetToplevelWindow() == NULL); |
267 EXPECT_EQ(w11.get(), w11->GetToplevelWindow()); | 267 EXPECT_EQ(w11.get(), w11->GetToplevelWindow()); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 EXPECT_EQ(&child1, parent.children()[1]); | 366 EXPECT_EQ(&child1, parent.children()[1]); |
367 EXPECT_EQ(&child3, parent.children()[2]); | 367 EXPECT_EQ(&child3, parent.children()[2]); |
368 ASSERT_EQ(3u, parent.layer()->children().size()); | 368 ASSERT_EQ(3u, parent.layer()->children().size()); |
369 EXPECT_EQ(child2.layer(), parent.layer()->children()[0]); | 369 EXPECT_EQ(child2.layer(), parent.layer()->children()[0]); |
370 EXPECT_EQ(child1.layer(), parent.layer()->children()[1]); | 370 EXPECT_EQ(child1.layer(), parent.layer()->children()[1]); |
371 EXPECT_EQ(child3.layer(), parent.layer()->children()[2]); | 371 EXPECT_EQ(child3.layer(), parent.layer()->children()[2]); |
372 } | 372 } |
373 | 373 |
374 // Various destruction assertions. | 374 // Various destruction assertions. |
375 TEST_F(WindowTest, CaptureTests) { | 375 TEST_F(WindowTest, CaptureTests) { |
376 aura::Desktop* desktop = aura::Desktop::GetInstance(); | 376 aura::RootWindow* root_window = aura::RootWindow::GetInstance(); |
377 CaptureWindowDelegateImpl delegate; | 377 CaptureWindowDelegateImpl delegate; |
378 scoped_ptr<Window> window(CreateTestWindowWithDelegate( | 378 scoped_ptr<Window> window(CreateTestWindowWithDelegate( |
379 &delegate, 0, gfx::Rect(0, 0, 20, 20), NULL)); | 379 &delegate, 0, gfx::Rect(0, 0, 20, 20), NULL)); |
380 EXPECT_FALSE(window->HasCapture()); | 380 EXPECT_FALSE(window->HasCapture()); |
381 | 381 |
382 // Do a capture. | 382 // Do a capture. |
383 window->SetCapture(); | 383 window->SetCapture(); |
384 EXPECT_TRUE(window->HasCapture()); | 384 EXPECT_TRUE(window->HasCapture()); |
385 EXPECT_EQ(0, delegate.capture_lost_count()); | 385 EXPECT_EQ(0, delegate.capture_lost_count()); |
386 EventGenerator generator(gfx::Point(50, 50)); | 386 EventGenerator generator(gfx::Point(50, 50)); |
387 generator.PressLeftButton(); | 387 generator.PressLeftButton(); |
388 EXPECT_EQ(1, delegate.mouse_event_count()); | 388 EXPECT_EQ(1, delegate.mouse_event_count()); |
389 generator.ReleaseLeftButton(); | 389 generator.ReleaseLeftButton(); |
390 | 390 |
391 EXPECT_EQ(2, delegate.mouse_event_count()); | 391 EXPECT_EQ(2, delegate.mouse_event_count()); |
392 delegate.set_mouse_event_count(0); | 392 delegate.set_mouse_event_count(0); |
393 | 393 |
394 TouchEvent touchev(ui::ET_TOUCH_PRESSED, gfx::Point(50, 50), 0); | 394 TouchEvent touchev(ui::ET_TOUCH_PRESSED, gfx::Point(50, 50), 0); |
395 desktop->DispatchTouchEvent(&touchev); | 395 root_window->DispatchTouchEvent(&touchev); |
396 EXPECT_EQ(1, delegate.touch_event_count()); | 396 EXPECT_EQ(1, delegate.touch_event_count()); |
397 delegate.set_touch_event_count(0); | 397 delegate.set_touch_event_count(0); |
398 | 398 |
399 window->ReleaseCapture(); | 399 window->ReleaseCapture(); |
400 EXPECT_FALSE(window->HasCapture()); | 400 EXPECT_FALSE(window->HasCapture()); |
401 EXPECT_EQ(1, delegate.capture_lost_count()); | 401 EXPECT_EQ(1, delegate.capture_lost_count()); |
402 | 402 |
403 generator.PressLeftButton(); | 403 generator.PressLeftButton(); |
404 EXPECT_EQ(0, delegate.mouse_event_count()); | 404 EXPECT_EQ(0, delegate.mouse_event_count()); |
405 | 405 |
406 desktop->DispatchTouchEvent(&touchev); | 406 root_window->DispatchTouchEvent(&touchev); |
407 EXPECT_EQ(0, delegate.touch_event_count()); | 407 EXPECT_EQ(0, delegate.touch_event_count()); |
408 | 408 |
409 // Removing the capture window from parent should reset the capture window | 409 // Removing the capture window from parent should reset the capture window |
410 // in the desktop. | 410 // in the root window. |
411 window->SetCapture(); | 411 window->SetCapture(); |
412 EXPECT_EQ(window.get(), desktop->capture_window()); | 412 EXPECT_EQ(window.get(), root_window->capture_window()); |
413 window->parent()->RemoveChild(window.get()); | 413 window->parent()->RemoveChild(window.get()); |
414 EXPECT_FALSE(window->HasCapture()); | 414 EXPECT_FALSE(window->HasCapture()); |
415 EXPECT_EQ(NULL, desktop->capture_window()); | 415 EXPECT_EQ(NULL, root_window->capture_window()); |
416 } | 416 } |
417 | 417 |
418 // Verifies capture is reset when a window is destroyed. | 418 // Verifies capture is reset when a window is destroyed. |
419 TEST_F(WindowTest, ReleaseCaptureOnDestroy) { | 419 TEST_F(WindowTest, ReleaseCaptureOnDestroy) { |
420 Desktop* desktop = Desktop::GetInstance(); | 420 RootWindow* root_window = RootWindow::GetInstance(); |
421 CaptureWindowDelegateImpl delegate; | 421 CaptureWindowDelegateImpl delegate; |
422 scoped_ptr<Window> window(CreateTestWindowWithDelegate( | 422 scoped_ptr<Window> window(CreateTestWindowWithDelegate( |
423 &delegate, 0, gfx::Rect(0, 0, 20, 20), NULL)); | 423 &delegate, 0, gfx::Rect(0, 0, 20, 20), NULL)); |
424 EXPECT_FALSE(window->HasCapture()); | 424 EXPECT_FALSE(window->HasCapture()); |
425 | 425 |
426 // Do a capture. | 426 // Do a capture. |
427 window->SetCapture(); | 427 window->SetCapture(); |
428 EXPECT_TRUE(window->HasCapture()); | 428 EXPECT_TRUE(window->HasCapture()); |
429 | 429 |
430 // Destroy the window. | 430 // Destroy the window. |
431 window.reset(); | 431 window.reset(); |
432 | 432 |
433 // Make sure the desktop doesn't reference the window anymore. | 433 // Make sure the root window doesn't reference the window anymore. |
434 EXPECT_EQ(NULL, desktop->mouse_pressed_handler()); | 434 EXPECT_EQ(NULL, root_window->mouse_pressed_handler()); |
435 EXPECT_EQ(NULL, desktop->capture_window()); | 435 EXPECT_EQ(NULL, root_window->capture_window()); |
436 } | 436 } |
437 | 437 |
438 TEST_F(WindowTest, GetScreenBounds) { | 438 TEST_F(WindowTest, GetScreenBounds) { |
439 scoped_ptr<Window> viewport(CreateTestWindowWithBounds( | 439 scoped_ptr<Window> viewport(CreateTestWindowWithBounds( |
440 gfx::Rect(0, 0, 300, 300), NULL)); | 440 gfx::Rect(0, 0, 300, 300), NULL)); |
441 scoped_ptr<Window> child(CreateTestWindowWithBounds( | 441 scoped_ptr<Window> child(CreateTestWindowWithBounds( |
442 gfx::Rect(0, 0, 100, 100), viewport.get())); | 442 gfx::Rect(0, 0, 100, 100), viewport.get())); |
443 // Sanity check. | 443 // Sanity check. |
444 EXPECT_EQ("0,0 100x100", child->GetScreenBounds().ToString()); | 444 EXPECT_EQ("0,0 100x100", child->GetScreenBounds().ToString()); |
445 | 445 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 bool entered_; | 478 bool entered_; |
479 bool exited_; | 479 bool exited_; |
480 | 480 |
481 DISALLOW_COPY_AND_ASSIGN(MouseEnterExitWindowDelegate); | 481 DISALLOW_COPY_AND_ASSIGN(MouseEnterExitWindowDelegate); |
482 }; | 482 }; |
483 | 483 |
484 | 484 |
485 // Verifies that the WindowDelegate receives MouseExit and MouseEnter events for | 485 // Verifies that the WindowDelegate receives MouseExit and MouseEnter events for |
486 // mouse transitions from window to window. | 486 // mouse transitions from window to window. |
487 TEST_F(WindowTest, MouseEnterExit) { | 487 TEST_F(WindowTest, MouseEnterExit) { |
488 Desktop* desktop = Desktop::GetInstance(); | 488 RootWindow* root_window = RootWindow::GetInstance(); |
489 | 489 |
490 MouseEnterExitWindowDelegate d1; | 490 MouseEnterExitWindowDelegate d1; |
491 scoped_ptr<Window> w1( | 491 scoped_ptr<Window> w1( |
492 CreateTestWindowWithDelegate(&d1, 1, gfx::Rect(10, 10, 50, 50), NULL)); | 492 CreateTestWindowWithDelegate(&d1, 1, gfx::Rect(10, 10, 50, 50), NULL)); |
493 MouseEnterExitWindowDelegate d2; | 493 MouseEnterExitWindowDelegate d2; |
494 scoped_ptr<Window> w2( | 494 scoped_ptr<Window> w2( |
495 CreateTestWindowWithDelegate(&d2, 2, gfx::Rect(70, 70, 50, 50), NULL)); | 495 CreateTestWindowWithDelegate(&d2, 2, gfx::Rect(70, 70, 50, 50), NULL)); |
496 | 496 |
497 gfx::Point move_point = w1->bounds().CenterPoint(); | 497 gfx::Point move_point = w1->bounds().CenterPoint(); |
498 Window::ConvertPointToWindow(w1->parent(), desktop, &move_point); | 498 Window::ConvertPointToWindow(w1->parent(), root_window, &move_point); |
499 MouseEvent mouseev1(ui::ET_MOUSE_MOVED, move_point, 0); | 499 MouseEvent mouseev1(ui::ET_MOUSE_MOVED, move_point, 0); |
500 desktop->DispatchMouseEvent(&mouseev1); | 500 root_window->DispatchMouseEvent(&mouseev1); |
501 | 501 |
502 EXPECT_TRUE(d1.entered()); | 502 EXPECT_TRUE(d1.entered()); |
503 EXPECT_FALSE(d1.exited()); | 503 EXPECT_FALSE(d1.exited()); |
504 EXPECT_FALSE(d2.entered()); | 504 EXPECT_FALSE(d2.entered()); |
505 EXPECT_FALSE(d2.exited()); | 505 EXPECT_FALSE(d2.exited()); |
506 | 506 |
507 move_point = w2->bounds().CenterPoint(); | 507 move_point = w2->bounds().CenterPoint(); |
508 Window::ConvertPointToWindow(w2->parent(), desktop, &move_point); | 508 Window::ConvertPointToWindow(w2->parent(), root_window, &move_point); |
509 MouseEvent mouseev2(ui::ET_MOUSE_MOVED, move_point, 0); | 509 MouseEvent mouseev2(ui::ET_MOUSE_MOVED, move_point, 0); |
510 desktop->DispatchMouseEvent(&mouseev2); | 510 root_window->DispatchMouseEvent(&mouseev2); |
511 | 511 |
512 EXPECT_TRUE(d1.entered()); | 512 EXPECT_TRUE(d1.entered()); |
513 EXPECT_TRUE(d1.exited()); | 513 EXPECT_TRUE(d1.exited()); |
514 EXPECT_TRUE(d2.entered()); | 514 EXPECT_TRUE(d2.entered()); |
515 EXPECT_FALSE(d2.exited()); | 515 EXPECT_FALSE(d2.exited()); |
516 } | 516 } |
517 | 517 |
518 namespace { | 518 namespace { |
519 | 519 |
520 class ActiveWindowDelegate : public TestWindowDelegate { | 520 class ActiveWindowDelegate : public TestWindowDelegate { |
(...skipping 22 matching lines...) Expand all Loading... |
543 int hit_count_; | 543 int hit_count_; |
544 | 544 |
545 DISALLOW_COPY_AND_ASSIGN(ActiveWindowDelegate); | 545 DISALLOW_COPY_AND_ASSIGN(ActiveWindowDelegate); |
546 }; | 546 }; |
547 | 547 |
548 } // namespace | 548 } // namespace |
549 | 549 |
550 // Verifies that when WindowDelegate::OnLostActive is invoked the window is not | 550 // Verifies that when WindowDelegate::OnLostActive is invoked the window is not |
551 // active. | 551 // active. |
552 TEST_F(WindowTest, NotActiveInLostActive) { | 552 TEST_F(WindowTest, NotActiveInLostActive) { |
553 Desktop* desktop = Desktop::GetInstance(); | 553 RootWindow* root_window = RootWindow::GetInstance(); |
554 | 554 |
555 ActiveWindowDelegate d1; | 555 ActiveWindowDelegate d1; |
556 scoped_ptr<Window> w1( | 556 scoped_ptr<Window> w1( |
557 CreateTestWindowWithDelegate(&d1, 1, gfx::Rect(10, 10, 50, 50), NULL)); | 557 CreateTestWindowWithDelegate(&d1, 1, gfx::Rect(10, 10, 50, 50), NULL)); |
558 d1.set_window(w1.get()); | 558 d1.set_window(w1.get()); |
559 scoped_ptr<Window> w2( | 559 scoped_ptr<Window> w2( |
560 CreateTestWindowWithDelegate(NULL, 1, gfx::Rect(10, 10, 50, 50), NULL)); | 560 CreateTestWindowWithDelegate(NULL, 1, gfx::Rect(10, 10, 50, 50), NULL)); |
561 | 561 |
562 // Activate w1. | 562 // Activate w1. |
563 desktop->SetActiveWindow(w1.get(), NULL); | 563 root_window->SetActiveWindow(w1.get(), NULL); |
564 EXPECT_EQ(w1.get(), desktop->active_window()); | 564 EXPECT_EQ(w1.get(), root_window->active_window()); |
565 | 565 |
566 // Should not have gotten a OnLostActive yet. | 566 // Should not have gotten a OnLostActive yet. |
567 EXPECT_EQ(0, d1.hit_count()); | 567 EXPECT_EQ(0, d1.hit_count()); |
568 | 568 |
569 // SetActiveWindow(NULL) should not change the active window. | 569 // SetActiveWindow(NULL) should not change the active window. |
570 desktop->SetActiveWindow(NULL, NULL); | 570 root_window->SetActiveWindow(NULL, NULL); |
571 EXPECT_TRUE(desktop->active_window() == w1.get()); | 571 EXPECT_TRUE(root_window->active_window() == w1.get()); |
572 | 572 |
573 // Now activate another window. | 573 // Now activate another window. |
574 desktop->SetActiveWindow(w2.get(), NULL); | 574 root_window->SetActiveWindow(w2.get(), NULL); |
575 | 575 |
576 // Should have gotten OnLostActive and w1 should not have been active at that | 576 // Should have gotten OnLostActive and w1 should not have been active at that |
577 // time. | 577 // time. |
578 EXPECT_EQ(1, d1.hit_count()); | 578 EXPECT_EQ(1, d1.hit_count()); |
579 EXPECT_FALSE(d1.was_active()); | 579 EXPECT_FALSE(d1.was_active()); |
580 } | 580 } |
581 | 581 |
582 // Creates a window with a delegate (w111) that can handle events at a lower | 582 // Creates a window with a delegate (w111) that can handle events at a lower |
583 // z-index than a window without a delegate (w12). w12 is sized to fill the | 583 // z-index than a window without a delegate (w12). w12 is sized to fill the |
584 // entire bounds of the container. This test verifies that | 584 // entire bounds of the container. This test verifies that |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
770 EXPECT_FALSE(w2->IsActive()); | 770 EXPECT_FALSE(w2->IsActive()); |
771 EXPECT_EQ(w1.get(), parent->children()[1]); | 771 EXPECT_EQ(w1.get(), parent->children()[1]); |
772 | 772 |
773 // Deactivate w1 and make sure w2 becomes active and frontmost. | 773 // Deactivate w1 and make sure w2 becomes active and frontmost. |
774 w1->Deactivate(); | 774 w1->Deactivate(); |
775 EXPECT_FALSE(w1->IsActive()); | 775 EXPECT_FALSE(w1->IsActive()); |
776 EXPECT_TRUE(w2->IsActive()); | 776 EXPECT_TRUE(w2->IsActive()); |
777 EXPECT_EQ(w2.get(), parent->children()[1]); | 777 EXPECT_EQ(w2.get(), parent->children()[1]); |
778 } | 778 } |
779 | 779 |
780 // Tests transformation on the desktop. | 780 // Tests transformation on the root window. |
781 TEST_F(WindowTest, Transform) { | 781 TEST_F(WindowTest, Transform) { |
782 Desktop* desktop = Desktop::GetInstance(); | 782 RootWindow* root_window = RootWindow::GetInstance(); |
783 gfx::Size size = desktop->GetHostSize(); | 783 gfx::Size size = root_window->GetHostSize(); |
784 EXPECT_EQ(gfx::Rect(size), | 784 EXPECT_EQ(gfx::Rect(size), |
785 gfx::Screen::GetMonitorAreaNearestPoint(gfx::Point())); | 785 gfx::Screen::GetMonitorAreaNearestPoint(gfx::Point())); |
786 | 786 |
787 // Rotate it clock-wise 90 degrees. | 787 // Rotate it clock-wise 90 degrees. |
788 ui::Transform transform; | 788 ui::Transform transform; |
789 transform.SetRotate(90.0f); | 789 transform.SetRotate(90.0f); |
790 transform.ConcatTranslate(size.width(), 0); | 790 transform.ConcatTranslate(size.width(), 0); |
791 desktop->SetTransform(transform); | 791 root_window->SetTransform(transform); |
792 | 792 |
793 // The size should be the transformed size. | 793 // The size should be the transformed size. |
794 gfx::Size transformed_size(size.height(), size.width()); | 794 gfx::Size transformed_size(size.height(), size.width()); |
795 EXPECT_EQ(transformed_size.ToString(), desktop->GetHostSize().ToString()); | 795 EXPECT_EQ(transformed_size.ToString(), root_window->GetHostSize().ToString()); |
796 EXPECT_EQ(gfx::Rect(transformed_size).ToString(), | 796 EXPECT_EQ(gfx::Rect(transformed_size).ToString(), |
797 desktop->bounds().ToString()); | 797 root_window->bounds().ToString()); |
798 EXPECT_EQ(gfx::Rect(transformed_size).ToString(), | 798 EXPECT_EQ(gfx::Rect(transformed_size).ToString(), |
799 gfx::Screen::GetMonitorAreaNearestPoint(gfx::Point()).ToString()); | 799 gfx::Screen::GetMonitorAreaNearestPoint(gfx::Point()).ToString()); |
800 } | 800 } |
801 | 801 |
802 // Various assertions for transient children. | 802 // Various assertions for transient children. |
803 TEST_F(WindowTest, TransientChildren) { | 803 TEST_F(WindowTest, TransientChildren) { |
804 scoped_ptr<Window> parent(CreateTestWindowWithId(0, NULL)); | 804 scoped_ptr<Window> parent(CreateTestWindowWithId(0, NULL)); |
805 scoped_ptr<Window> w1(CreateTestWindowWithId(1, parent.get())); | 805 scoped_ptr<Window> w1(CreateTestWindowWithId(1, parent.get())); |
806 scoped_ptr<Window> w3(CreateTestWindowWithId(3, parent.get())); | 806 scoped_ptr<Window> w3(CreateTestWindowWithId(3, parent.get())); |
807 Window* w2 = CreateTestWindowWithId(2, parent.get()); | 807 Window* w2 = CreateTestWindowWithId(2, parent.get()); |
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1085 EXPECT_EQ(2, w1->GetIntProperty(key)); | 1085 EXPECT_EQ(2, w1->GetIntProperty(key)); |
1086 EXPECT_EQ(reinterpret_cast<void*>(2), w1->GetProperty(key)); | 1086 EXPECT_EQ(reinterpret_cast<void*>(2), w1->GetProperty(key)); |
1087 EXPECT_EQ("name=test old=1 new=2", PropertyChangeInfoAndClear()); | 1087 EXPECT_EQ("name=test old=1 new=2", PropertyChangeInfoAndClear()); |
1088 w1->SetProperty(key, NULL); | 1088 w1->SetProperty(key, NULL); |
1089 EXPECT_EQ("name=test old=2 new=0", PropertyChangeInfoAndClear()); | 1089 EXPECT_EQ("name=test old=2 new=0", PropertyChangeInfoAndClear()); |
1090 | 1090 |
1091 // Sanity check to see if |PropertyChangeInfoAndClear| really clears. | 1091 // Sanity check to see if |PropertyChangeInfoAndClear| really clears. |
1092 EXPECT_EQ("name= old=0 new=0", PropertyChangeInfoAndClear()); | 1092 EXPECT_EQ("name= old=0 new=0", PropertyChangeInfoAndClear()); |
1093 } | 1093 } |
1094 | 1094 |
1095 class DesktopObserverTest : public WindowTest, | 1095 class RootWindowObserverTest : public WindowTest, |
1096 public DesktopObserver { | 1096 public RootWindowObserver { |
1097 public: | 1097 public: |
1098 DesktopObserverTest() : active_(NULL) { | 1098 RootWindowObserverTest() : active_(NULL) { |
1099 } | 1099 } |
1100 | 1100 |
1101 virtual ~DesktopObserverTest() {} | 1101 virtual ~RootWindowObserverTest() {} |
1102 | 1102 |
1103 Window* active() const { return active_; } | 1103 Window* active() const { return active_; } |
1104 | 1104 |
1105 void Reset() { | 1105 void Reset() { |
1106 active_ = NULL; | 1106 active_ = NULL; |
1107 } | 1107 } |
1108 | 1108 |
1109 private: | 1109 private: |
1110 virtual void SetUp() OVERRIDE { | 1110 virtual void SetUp() OVERRIDE { |
1111 WindowTest::SetUp(); | 1111 WindowTest::SetUp(); |
1112 Desktop::GetInstance()->AddObserver(this); | 1112 RootWindow::GetInstance()->AddObserver(this); |
1113 } | 1113 } |
1114 | 1114 |
1115 virtual void TearDown() OVERRIDE { | 1115 virtual void TearDown() OVERRIDE { |
1116 Desktop::GetInstance()->RemoveObserver(this); | 1116 RootWindow::GetInstance()->RemoveObserver(this); |
1117 WindowTest::TearDown(); | 1117 WindowTest::TearDown(); |
1118 } | 1118 } |
1119 | 1119 |
1120 virtual void OnActiveWindowChanged(Window* active) OVERRIDE { | 1120 virtual void OnActiveWindowChanged(Window* active) OVERRIDE { |
1121 active_ = active; | 1121 active_ = active; |
1122 } | 1122 } |
1123 | 1123 |
1124 Window* active_; | 1124 Window* active_; |
1125 | 1125 |
1126 DISALLOW_COPY_AND_ASSIGN(DesktopObserverTest); | 1126 DISALLOW_COPY_AND_ASSIGN(RootWindowObserverTest); |
1127 }; | 1127 }; |
1128 | 1128 |
1129 TEST_F(DesktopObserverTest, WindowActivationObserve) { | 1129 TEST_F(RootWindowObserverTest, WindowActivationObserve) { |
1130 scoped_ptr<Window> w1(CreateTestWindowWithId(1, NULL)); | 1130 scoped_ptr<Window> w1(CreateTestWindowWithId(1, NULL)); |
1131 scoped_ptr<Window> w2(CreateTestWindowWithId(2, NULL)); | 1131 scoped_ptr<Window> w2(CreateTestWindowWithId(2, NULL)); |
1132 scoped_ptr<Window> w3(CreateTestWindowWithId(3, w1.get())); | 1132 scoped_ptr<Window> w3(CreateTestWindowWithId(3, w1.get())); |
1133 | 1133 |
1134 EXPECT_EQ(NULL, active()); | 1134 EXPECT_EQ(NULL, active()); |
1135 | 1135 |
1136 w2->Activate(); | 1136 w2->Activate(); |
1137 EXPECT_EQ(w2.get(), active()); | 1137 EXPECT_EQ(w2.get(), active()); |
1138 | 1138 |
1139 w3->Activate(); | 1139 w3->Activate(); |
1140 EXPECT_EQ(w2.get(), active()); | 1140 EXPECT_EQ(w2.get(), active()); |
1141 | 1141 |
1142 w1->Activate(); | 1142 w1->Activate(); |
1143 EXPECT_EQ(w1.get(), active()); | 1143 EXPECT_EQ(w1.get(), active()); |
1144 } | 1144 } |
1145 | 1145 |
1146 } // namespace test | 1146 } // namespace test |
1147 } // namespace aura | 1147 } // namespace aura |
OLD | NEW |