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 "chrome/browser/ui/fullscreen/fullscreen_controller_state_test.h" | 5 #include "chrome/browser/ui/fullscreen/fullscreen_controller_state_test.h" |
6 | 6 |
7 #include <memory.h> | 7 #include <memory.h> |
8 | 8 |
9 #include <iomanip> | 9 #include <iomanip> |
10 #include <iostream> | 10 #include <iostream> |
11 | 11 |
12 #include "chrome/browser/ui/browser.h" | 12 #include "chrome/browser/ui/browser.h" |
13 #include "chrome/browser/ui/browser_tabstrip.h" | 13 #include "chrome/browser/ui/browser_tabstrip.h" |
14 #include "chrome/browser/ui/browser_window.h" | 14 #include "chrome/browser/ui/browser_window.h" |
15 #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" | 15 #include "chrome/browser/ui/fullscreen/fullscreen_controller.h" |
16 #include "content/public/common/url_constants.h" | 16 #include "content/public/common/url_constants.h" |
17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
18 | 18 |
| 19 #if defined(OS_MACOSX) |
| 20 #include "base/mac/mac_util.h" |
| 21 #endif |
| 22 |
19 FullscreenControllerStateTest::FullscreenControllerStateTest() | 23 FullscreenControllerStateTest::FullscreenControllerStateTest() |
20 : state_(STATE_NORMAL), | 24 : state_(STATE_NORMAL), |
21 reentrant_(false) { | 25 reentrant_(false) { |
22 // Human specified state machine data. | 26 // Human specified state machine data. |
23 // For each state, for each event, define the resulting state. | 27 // For each state, for each event, define the resulting state. |
24 State transition_table_data[][NUM_EVENTS] = { | 28 State transition_table_data[][NUM_EVENTS] = { |
25 { // STATE_NORMAL: | 29 { // STATE_NORMAL: |
26 STATE_TO_BROWSER_FULLSCREEN_NO_CHROME, // Event TOGGLE_FULLSCREEN | 30 STATE_TO_BROWSER_FULLSCREEN_NO_CHROME, // Event TOGGLE_FULLSCREEN |
27 STATE_TO_TAB_FULLSCREEN, // Event TAB_FULLSCREEN_TRUE | 31 STATE_TO_TAB_FULLSCREEN, // Event TAB_FULLSCREEN_TRUE |
28 STATE_NORMAL, // Event TAB_FULLSCREEN_FALSE | 32 STATE_NORMAL, // Event TAB_FULLSCREEN_FALSE |
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 | 290 |
287 debugging_log_ << " InvokeEvent(" << std::left | 291 debugging_log_ << " InvokeEvent(" << std::left |
288 << std::setw(MAX_EVENT_NAME_LENGTH) << GetEventString(event) | 292 << std::setw(MAX_EVENT_NAME_LENGTH) << GetEventString(event) |
289 << ") to " | 293 << ") to " |
290 << std::setw(MAX_STATE_NAME_LENGTH) << GetStateString(next_state); | 294 << std::setw(MAX_STATE_NAME_LENGTH) << GetStateString(next_state); |
291 | 295 |
292 state_ = next_state; | 296 state_ = next_state; |
293 | 297 |
294 switch (event) { | 298 switch (event) { |
295 case TOGGLE_FULLSCREEN: | 299 case TOGGLE_FULLSCREEN: |
| 300 #if defined(OS_MACOSX) |
| 301 GetFullscreenController()->TogglePresentationMode(); |
| 302 #else |
296 GetFullscreenController()->ToggleFullscreenMode(); | 303 GetFullscreenController()->ToggleFullscreenMode(); |
| 304 #endif |
297 break; | 305 break; |
298 case TAB_FULLSCREEN_TRUE: | 306 case TAB_FULLSCREEN_TRUE: |
299 GetFullscreenController()->ToggleFullscreenModeForTab( | 307 GetFullscreenController()->ToggleFullscreenModeForTab( |
300 chrome::GetActiveWebContents(GetBrowser()), true); | 308 chrome::GetActiveWebContents(GetBrowser()), true); |
301 break; | 309 break; |
302 case TAB_FULLSCREEN_FALSE: | 310 case TAB_FULLSCREEN_FALSE: |
303 GetFullscreenController()->ToggleFullscreenModeForTab( | 311 GetFullscreenController()->ToggleFullscreenModeForTab( |
304 chrome::GetActiveWebContents(GetBrowser()), false); | 312 chrome::GetActiveWebContents(GetBrowser()), false); |
305 break; | 313 break; |
306 #if defined(OS_WIN) | 314 #if defined(OS_WIN) |
(...skipping 29 matching lines...) Expand all Loading... |
336 | 344 |
337 VerifyWindowState(); | 345 VerifyWindowState(); |
338 | 346 |
339 return true; | 347 return true; |
340 } | 348 } |
341 | 349 |
342 void FullscreenControllerStateTest::VerifyWindowState() { | 350 void FullscreenControllerStateTest::VerifyWindowState() { |
343 switch (state_) { | 351 switch (state_) { |
344 case STATE_NORMAL: | 352 case STATE_NORMAL: |
345 #if defined(OS_MACOSX) | 353 #if defined(OS_MACOSX) |
346 EXPECT_FALSE(GetBrowser()->window()->InPresentationMode()) | 354 EXPECT_FALSE(GetBrowser()->window()->IsFullscreenWithChrome()) |
| 355 << GetAndClearDebugLog(); |
| 356 EXPECT_FALSE(GetBrowser()->window()->IsFullscreenWithoutChrome()) |
347 << GetAndClearDebugLog(); | 357 << GetAndClearDebugLog(); |
348 #endif | 358 #endif |
349 EXPECT_FALSE(GetFullscreenController()->IsFullscreenForBrowser()) | 359 EXPECT_FALSE(GetFullscreenController()->IsFullscreenForBrowser()) |
350 << GetAndClearDebugLog(); | 360 << GetAndClearDebugLog(); |
351 EXPECT_FALSE(GetFullscreenController()->IsFullscreenForTabOrPending()) | 361 EXPECT_FALSE(GetFullscreenController()->IsFullscreenForTabOrPending()) |
352 << GetAndClearDebugLog(); | 362 << GetAndClearDebugLog(); |
353 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) | 363 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) |
354 << GetAndClearDebugLog(); | 364 << GetAndClearDebugLog(); |
355 break; | 365 break; |
356 case STATE_BROWSER_FULLSCREEN_NO_CHROME: | 366 case STATE_BROWSER_FULLSCREEN_NO_CHROME: |
357 #if defined(OS_MACOSX) | 367 #if defined(OS_MACOSX) |
358 EXPECT_FALSE(GetBrowser()->window()->InPresentationMode()) | 368 EXPECT_FALSE(GetBrowser()->window()->IsFullscreenWithChrome()) |
| 369 << GetAndClearDebugLog(); |
| 370 EXPECT_TRUE(GetBrowser()->window()->IsFullscreenWithoutChrome()) |
359 << GetAndClearDebugLog(); | 371 << GetAndClearDebugLog(); |
360 #endif | 372 #endif |
361 EXPECT_TRUE(GetFullscreenController()->IsFullscreenForBrowser()) | 373 EXPECT_TRUE(GetFullscreenController()->IsFullscreenForBrowser()) |
362 << GetAndClearDebugLog(); | 374 << GetAndClearDebugLog(); |
363 EXPECT_FALSE(GetFullscreenController()->IsFullscreenForTabOrPending()) | 375 EXPECT_FALSE(GetFullscreenController()->IsFullscreenForTabOrPending()) |
364 << GetAndClearDebugLog(); | 376 << GetAndClearDebugLog(); |
365 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) | 377 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) |
366 << GetAndClearDebugLog(); | 378 << GetAndClearDebugLog(); |
367 break; | 379 break; |
368 #if defined(OS_WIN) | 380 #if defined(OS_WIN) |
369 case STATE_METRO_SNAP: | 381 case STATE_METRO_SNAP: |
370 // No expectation for InPresentationMode. | 382 // http://crbug.com/169138 |
| 383 // No expectation for IsFullscreenWithChrome() or |
| 384 // IsFullscreenWithoutChrome() |
371 | 385 |
372 // TODO(scheib) IsFullscreenForBrowser and IsFullscreenForTabOrPending | 386 // TODO(scheib) IsFullscreenForBrowser and IsFullscreenForTabOrPending |
373 // are returning true and false in interactive tests with real window. | 387 // are returning true and false in interactive tests with real window. |
374 // With only a single Metro Snap state in this test framework it isn't | 388 // With only a single Metro Snap state in this test framework it isn't |
375 // fair to try to have an expectation anyway. | 389 // fair to try to have an expectation anyway. |
376 // | 390 // |
377 // No expectation for IsFullscreenForBrowser. | 391 // No expectation for IsFullscreenForBrowser. |
378 // No expectation for IsFullscreenForTabOrPending. | 392 // No expectation for IsFullscreenForTabOrPending. |
379 EXPECT_TRUE(GetFullscreenController()->IsInMetroSnapMode()) | 393 EXPECT_TRUE(GetFullscreenController()->IsInMetroSnapMode()) |
380 << GetAndClearDebugLog(); | 394 << GetAndClearDebugLog(); |
381 break; | 395 break; |
382 #endif | 396 #endif |
383 case STATE_TAB_FULLSCREEN: | 397 case STATE_TAB_FULLSCREEN: |
384 #if defined(OS_MACOSX) | 398 #if defined(OS_MACOSX) |
385 EXPECT_TRUE(GetBrowser()->window()->InPresentationMode()) | 399 EXPECT_FALSE(GetBrowser()->window()->IsFullscreenWithChrome()) |
| 400 << GetAndClearDebugLog(); |
| 401 EXPECT_TRUE(GetBrowser()->window()->IsFullscreenWithoutChrome()) |
386 << GetAndClearDebugLog(); | 402 << GetAndClearDebugLog(); |
387 #endif | 403 #endif |
388 EXPECT_FALSE(GetFullscreenController()->IsFullscreenForBrowser()) | 404 EXPECT_FALSE(GetFullscreenController()->IsFullscreenForBrowser()) |
389 << GetAndClearDebugLog(); | 405 << GetAndClearDebugLog(); |
390 EXPECT_TRUE(GetFullscreenController()->IsFullscreenForTabOrPending()) | 406 EXPECT_TRUE(GetFullscreenController()->IsFullscreenForTabOrPending()) |
391 << GetAndClearDebugLog(); | 407 << GetAndClearDebugLog(); |
392 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) | 408 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) |
393 << GetAndClearDebugLog(); | 409 << GetAndClearDebugLog(); |
394 break; | 410 break; |
395 case STATE_TAB_BROWSER_FULLSCREEN: | 411 case STATE_TAB_BROWSER_FULLSCREEN: |
396 #if defined(OS_MACOSX) | 412 #if defined(OS_MACOSX) |
397 EXPECT_FALSE(GetBrowser()->window()->InPresentationMode()) | 413 EXPECT_FALSE(GetBrowser()->window()->IsFullscreenWithChrome()) |
| 414 << GetAndClearDebugLog(); |
| 415 EXPECT_TRUE(GetBrowser()->window()->IsFullscreenWithoutChrome()) |
398 << GetAndClearDebugLog(); | 416 << GetAndClearDebugLog(); |
399 #endif | 417 #endif |
400 EXPECT_TRUE(GetFullscreenController()->IsFullscreenForBrowser()) | 418 EXPECT_TRUE(GetFullscreenController()->IsFullscreenForBrowser()) |
401 << GetAndClearDebugLog(); | 419 << GetAndClearDebugLog(); |
402 EXPECT_TRUE(GetFullscreenController()->IsFullscreenForTabOrPending()) | 420 EXPECT_TRUE(GetFullscreenController()->IsFullscreenForTabOrPending()) |
403 << GetAndClearDebugLog(); | 421 << GetAndClearDebugLog(); |
404 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) | 422 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) |
405 << GetAndClearDebugLog(); | 423 << GetAndClearDebugLog(); |
406 break; | 424 break; |
407 case STATE_TO_NORMAL: | 425 case STATE_TO_NORMAL: |
408 #if defined(OS_MACOSX) | 426 #if defined(OS_MACOSX) |
409 EXPECT_FALSE(GetBrowser()->window()->InPresentationMode()) | 427 EXPECT_FALSE(GetBrowser()->window()->IsFullscreenWithChrome()) |
| 428 << GetAndClearDebugLog(); |
| 429 EXPECT_FALSE(GetBrowser()->window()->IsFullscreenWithoutChrome()) |
410 << GetAndClearDebugLog(); | 430 << GetAndClearDebugLog(); |
411 #endif | 431 #endif |
412 // No expectation for IsFullscreenForBrowser. | 432 // No expectation for IsFullscreenForBrowser. |
413 // No expectation for IsFullscreenForTabOrPending. | 433 // No expectation for IsFullscreenForTabOrPending. |
414 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) | 434 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) |
415 << GetAndClearDebugLog(); | 435 << GetAndClearDebugLog(); |
416 break; | 436 break; |
417 case STATE_TO_BROWSER_FULLSCREEN_NO_CHROME: | 437 case STATE_TO_BROWSER_FULLSCREEN_NO_CHROME: |
418 #if defined(OS_MACOSX) | 438 #if defined(OS_MACOSX) |
419 EXPECT_FALSE(GetBrowser()->window()->InPresentationMode()) | 439 EXPECT_FALSE(GetBrowser()->window()->IsFullscreenWithChrome()) |
| 440 << GetAndClearDebugLog(); |
| 441 EXPECT_TRUE(GetBrowser()->window()->IsFullscreenWithoutChrome()) |
420 << GetAndClearDebugLog(); | 442 << GetAndClearDebugLog(); |
421 EXPECT_TRUE(GetFullscreenController()->IsFullscreenForBrowser()) | 443 EXPECT_TRUE(GetFullscreenController()->IsFullscreenForBrowser()) |
422 << GetAndClearDebugLog(); | 444 << GetAndClearDebugLog(); |
423 #else | 445 #else |
424 EXPECT_FALSE(GetFullscreenController()->IsFullscreenForBrowser()) | 446 EXPECT_FALSE(GetFullscreenController()->IsFullscreenForBrowser()) |
425 << GetAndClearDebugLog(); | 447 << GetAndClearDebugLog(); |
426 #endif | 448 #endif |
427 // No expectation for IsFullscreenForTabOrPending. | 449 // No expectation for IsFullscreenForTabOrPending. |
428 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) | 450 EXPECT_FALSE(GetFullscreenController()->IsInMetroSnapMode()) |
429 << GetAndClearDebugLog(); | 451 << GetAndClearDebugLog(); |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
603 << GetAndClearDebugLog(); | 625 << GetAndClearDebugLog(); |
604 | 626 |
605 debugging_log_ << " Then,\n"; | 627 debugging_log_ << " Then,\n"; |
606 ASSERT_TRUE(InvokeEvent(event)) << GetAndClearDebugLog(); | 628 ASSERT_TRUE(InvokeEvent(event)) << GetAndClearDebugLog(); |
607 } | 629 } |
608 | 630 |
609 FullscreenController* FullscreenControllerStateTest::GetFullscreenController() { | 631 FullscreenController* FullscreenControllerStateTest::GetFullscreenController() { |
610 return GetBrowser()->fullscreen_controller(); | 632 return GetBrowser()->fullscreen_controller(); |
611 } | 633 } |
612 | 634 |
OLD | NEW |