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

Side by Side Diff: content/browser/media/session/media_session_impl_browsertest.cc

Issue 2758773003: Clean up MediaSessionImpl state interfaces (Closed)
Patch Set: Created 3 years, 9 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/media/session/media_session_impl.h" 5 #include "content/browser/media/session/media_session_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <list> 9 #include <list>
10 #include <vector> 10 #include <vector>
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 108
109 void RemovePlayers(MockMediaSessionPlayerObserver* player_observer) { 109 void RemovePlayers(MockMediaSessionPlayerObserver* player_observer) {
110 media_session_->RemovePlayers(player_observer); 110 media_session_->RemovePlayers(player_observer);
111 } 111 }
112 112
113 void OnPlayerPaused(MockMediaSessionPlayerObserver* player_observer, 113 void OnPlayerPaused(MockMediaSessionPlayerObserver* player_observer,
114 int player_id) { 114 int player_id) {
115 media_session_->OnPlayerPaused(player_observer, player_id); 115 media_session_->OnPlayerPaused(player_observer, player_id);
116 } 116 }
117 117
118 bool HasAudioFocus() { return media_session_->IsActiveForTest(); } 118 bool IsActive() { return media_session_->IsActive(); }
119 119
120 content::AudioFocusManager::AudioFocusType GetSessionAudioFocusType() { 120 content::AudioFocusManager::AudioFocusType GetSessionAudioFocusType() {
121 return media_session_->audio_focus_type(); 121 return media_session_->audio_focus_type();
122 } 122 }
123 123
124 bool IsControllable() { return media_session_->IsControllable(); } 124 bool IsControllable() { return media_session_->IsControllable(); }
125 125
126 bool IsSuspended() { return media_session_->IsSuspended(); }
127
128 void UIResume() { media_session_->Resume(MediaSession::SuspendType::UI); } 126 void UIResume() { media_session_->Resume(MediaSession::SuspendType::UI); }
129 127
130 void SystemResume() { 128 void SystemResume() {
131 media_session_->OnResumeInternal(MediaSession::SuspendType::SYSTEM); 129 media_session_->OnResumeInternal(MediaSession::SuspendType::SYSTEM);
132 } 130 }
133 131
134 void UISuspend() { media_session_->Suspend(MediaSession::SuspendType::UI); } 132 void UISuspend() { media_session_->Suspend(MediaSession::SuspendType::UI); }
135 133
136 void SystemSuspend(bool temporary) { 134 void SystemSuspend(bool temporary) {
137 media_session_->OnSuspendInternal(MediaSession::SuspendType::SYSTEM, 135 media_session_->OnSuspendInternal(MediaSession::SuspendType::SYSTEM,
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 297
300 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(0)); 298 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(0));
301 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(1)); 299 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(1));
302 300
303 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 301 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
304 302
305 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(2)); 303 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(2));
306 } 304 }
307 305
308 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, AudioFocusInitialState) { 306 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, AudioFocusInitialState) {
309 EXPECT_FALSE(HasAudioFocus()); 307 EXPECT_FALSE(IsActive());
310 } 308 }
311 309
312 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, StartPlayerGivesFocus) { 310 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, StartPlayerGivesFocus) {
313 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 311 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
314 312
315 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 313 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
316 314
317 EXPECT_TRUE(HasAudioFocus()); 315 EXPECT_TRUE(IsActive());
318 } 316 }
319 317
320 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 318 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
321 SuspendGivesAwayAudioFocus) { 319 SuspendGivesAwayAudioFocus) {
322 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 320 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
323 321
324 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 322 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
325 323
326 SystemSuspend(true); 324 SystemSuspend(true);
327 325
328 EXPECT_FALSE(HasAudioFocus()); 326 EXPECT_FALSE(IsActive());
329 } 327 }
330 328
331 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, StopGivesAwayAudioFocus) { 329 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, StopGivesAwayAudioFocus) {
332 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 330 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
333 331
334 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 332 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
335 333
336 media_session_->Stop(MediaSession::SuspendType::UI); 334 media_session_->Stop(MediaSession::SuspendType::UI);
337 335
338 EXPECT_FALSE(HasAudioFocus()); 336 EXPECT_FALSE(IsActive());
339 } 337 }
340 338
341 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeGivesBackAudioFocus) { 339 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeGivesBackAudioFocus) {
342 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 340 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
343 341
344 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 342 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
345 343
346 SystemSuspend(true); 344 SystemSuspend(true);
347 SystemResume(); 345 SystemResume();
348 346
349 EXPECT_TRUE(HasAudioFocus()); 347 EXPECT_TRUE(IsActive());
350 } 348 }
351 349
352 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 350 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
353 RemovingLastPlayerDropsAudioFocus) { 351 RemovingLastPlayerDropsAudioFocus) {
354 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 352 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
355 353
356 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 354 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
357 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 355 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
358 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 356 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
359 357
360 RemovePlayer(player_observer.get(), 0); 358 RemovePlayer(player_observer.get(), 0);
361 EXPECT_TRUE(HasAudioFocus()); 359 EXPECT_TRUE(IsActive());
362 RemovePlayer(player_observer.get(), 1); 360 RemovePlayer(player_observer.get(), 1);
363 EXPECT_TRUE(HasAudioFocus()); 361 EXPECT_TRUE(IsActive());
364 RemovePlayer(player_observer.get(), 2); 362 RemovePlayer(player_observer.get(), 2);
365 EXPECT_FALSE(HasAudioFocus()); 363 EXPECT_FALSE(IsActive());
366 } 364 }
367 365
368 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 366 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
369 RemovingLastPlayerFromManyObserversDropsAudioFocus) { 367 RemovingLastPlayerFromManyObserversDropsAudioFocus) {
370 auto player_observer_1 = base::MakeUnique<MockMediaSessionPlayerObserver>(); 368 auto player_observer_1 = base::MakeUnique<MockMediaSessionPlayerObserver>();
371 auto player_observer_2 = base::MakeUnique<MockMediaSessionPlayerObserver>(); 369 auto player_observer_2 = base::MakeUnique<MockMediaSessionPlayerObserver>();
372 auto player_observer_3 = base::MakeUnique<MockMediaSessionPlayerObserver>(); 370 auto player_observer_3 = base::MakeUnique<MockMediaSessionPlayerObserver>();
373 371
374 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent); 372 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent);
375 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent); 373 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent);
376 StartNewPlayer(player_observer_3.get(), media::MediaContentType::Persistent); 374 StartNewPlayer(player_observer_3.get(), media::MediaContentType::Persistent);
377 375
378 RemovePlayer(player_observer_1.get(), 0); 376 RemovePlayer(player_observer_1.get(), 0);
379 EXPECT_TRUE(HasAudioFocus()); 377 EXPECT_TRUE(IsActive());
380 RemovePlayer(player_observer_2.get(), 0); 378 RemovePlayer(player_observer_2.get(), 0);
381 EXPECT_TRUE(HasAudioFocus()); 379 EXPECT_TRUE(IsActive());
382 RemovePlayer(player_observer_3.get(), 0); 380 RemovePlayer(player_observer_3.get(), 0);
383 EXPECT_FALSE(HasAudioFocus()); 381 EXPECT_FALSE(IsActive());
384 } 382 }
385 383
386 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 384 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
387 RemovingAllPlayersFromObserversDropsAudioFocus) { 385 RemovingAllPlayersFromObserversDropsAudioFocus) {
388 auto player_observer_1 = base::MakeUnique<MockMediaSessionPlayerObserver>(); 386 auto player_observer_1 = base::MakeUnique<MockMediaSessionPlayerObserver>();
389 auto player_observer_2 = base::MakeUnique<MockMediaSessionPlayerObserver>(); 387 auto player_observer_2 = base::MakeUnique<MockMediaSessionPlayerObserver>();
390 388
391 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent); 389 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent);
392 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent); 390 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent);
393 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent); 391 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent);
394 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent); 392 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent);
395 393
396 RemovePlayers(player_observer_1.get()); 394 RemovePlayers(player_observer_1.get());
397 EXPECT_TRUE(HasAudioFocus()); 395 EXPECT_TRUE(IsActive());
398 RemovePlayers(player_observer_2.get()); 396 RemovePlayers(player_observer_2.get());
399 EXPECT_FALSE(HasAudioFocus()); 397 EXPECT_FALSE(IsActive());
400 } 398 }
401 399
402 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumePlayGivesAudioFocus) { 400 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumePlayGivesAudioFocus) {
403 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 401 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
404 402
405 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 403 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
406 404
407 RemovePlayer(player_observer.get(), 0); 405 RemovePlayer(player_observer.get(), 0);
408 EXPECT_FALSE(HasAudioFocus()); 406 EXPECT_FALSE(IsActive());
409 407
410 EXPECT_TRUE( 408 EXPECT_TRUE(
411 AddPlayer(player_observer.get(), 0, media::MediaContentType::Persistent)); 409 AddPlayer(player_observer.get(), 0, media::MediaContentType::Persistent));
412 EXPECT_TRUE(HasAudioFocus()); 410 EXPECT_TRUE(IsActive());
413 } 411 }
414 412
415 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 413 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
416 ResumeSuspendAreSentOnlyOncePerPlayers) { 414 ResumeSuspendAreSentOnlyOncePerPlayers) {
417 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 415 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
418 416
419 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 417 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
420 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 418 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
421 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 419 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
422 420
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ControlsShowForContent) { 516 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ControlsShowForContent) {
519 EXPECT_CALL(*mock_media_session_observer(), 517 EXPECT_CALL(*mock_media_session_observer(),
520 MediaSessionStateChanged(true, false)); 518 MediaSessionStateChanged(true, false));
521 519
522 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 520 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
523 521
524 // Starting a player with a content type should show the media controls. 522 // Starting a player with a content type should show the media controls.
525 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 523 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
526 524
527 EXPECT_TRUE(IsControllable()); 525 EXPECT_TRUE(IsControllable());
528 EXPECT_FALSE(IsSuspended()); 526 EXPECT_TRUE(IsActive());
529 } 527 }
530 528
531 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 529 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
532 ControlsNoShowForTransient) { 530 ControlsNoShowForTransient) {
533 EXPECT_CALL(*mock_media_session_observer(), 531 EXPECT_CALL(*mock_media_session_observer(),
534 MediaSessionStateChanged(false, false)); 532 MediaSessionStateChanged(false, false));
535 533
536 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 534 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
537 535
538 // Starting a player with a transient type should not show the media controls. 536 // Starting a player with a transient type should not show the media controls.
539 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 537 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
540 538
541 EXPECT_FALSE(IsControllable()); 539 EXPECT_FALSE(IsControllable());
542 EXPECT_FALSE(IsSuspended()); 540 EXPECT_TRUE(IsActive());
543 } 541 }
544 542
545 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ControlsHideWhenStopped) { 543 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ControlsHideWhenStopped) {
546 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 544 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
547 MediaSessionStateChanged(true, false)); 545 MediaSessionStateChanged(true, false));
548 EXPECT_CALL(*mock_media_session_observer(), 546 EXPECT_CALL(*mock_media_session_observer(),
549 MediaSessionStateChanged(false, true)) 547 MediaSessionStateChanged(false, true))
550 .After(showControls); 548 .After(showControls);
551 549
552 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 550 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
553 551
554 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 552 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
555 553
556 RemovePlayers(player_observer.get()); 554 RemovePlayers(player_observer.get());
557 555
558 EXPECT_FALSE(IsControllable()); 556 EXPECT_FALSE(IsControllable());
559 EXPECT_TRUE(IsSuspended()); 557 EXPECT_FALSE(IsActive());
560 } 558 }
561 559
562 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 560 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
563 ControlsShownAcceptTransient) { 561 ControlsShownAcceptTransient) {
564 EXPECT_CALL(*mock_media_session_observer(), 562 EXPECT_CALL(*mock_media_session_observer(),
565 MediaSessionStateChanged(true, false)); 563 MediaSessionStateChanged(true, false));
566 564
567 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 565 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
568 566
569 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 567 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
570 568
571 // Transient player join the session without affecting the controls. 569 // Transient player join the session without affecting the controls.
572 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 570 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
573 571
574 EXPECT_TRUE(IsControllable()); 572 EXPECT_TRUE(IsControllable());
575 EXPECT_FALSE(IsSuspended()); 573 EXPECT_TRUE(IsActive());
576 } 574 }
577 575
578 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 576 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
579 ControlsShownAfterContentAdded) { 577 ControlsShownAfterContentAdded) {
580 Expectation dontShowControls = EXPECT_CALL( 578 Expectation dontShowControls = EXPECT_CALL(
581 *mock_media_session_observer(), MediaSessionStateChanged(false, false)); 579 *mock_media_session_observer(), MediaSessionStateChanged(false, false));
582 EXPECT_CALL(*mock_media_session_observer(), 580 EXPECT_CALL(*mock_media_session_observer(),
583 MediaSessionStateChanged(true, false)) 581 MediaSessionStateChanged(true, false))
584 .After(dontShowControls); 582 .After(dontShowControls);
585 583
586 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 584 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
587 585
588 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 586 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
589 587
590 // The controls are shown when the content player is added. 588 // The controls are shown when the content player is added.
591 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 589 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
592 590
593 EXPECT_TRUE(IsControllable()); 591 EXPECT_TRUE(IsControllable());
594 EXPECT_FALSE(IsSuspended()); 592 EXPECT_TRUE(IsActive());
595 } 593 }
596 594
597 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 595 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
598 ControlsStayIfOnlyOnePlayerHasBeenPaused) { 596 ControlsStayIfOnlyOnePlayerHasBeenPaused) {
599 EXPECT_CALL(*mock_media_session_observer(), 597 EXPECT_CALL(*mock_media_session_observer(),
600 MediaSessionStateChanged(true, false)); 598 MediaSessionStateChanged(true, false));
601 599
602 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 600 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
603 601
604 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 602 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
605 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 603 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
606 604
607 // Removing only content player doesn't hide the controls since the session 605 // Removing only content player doesn't hide the controls since the session
608 // is still active. 606 // is still active.
609 RemovePlayer(player_observer.get(), 0); 607 RemovePlayer(player_observer.get(), 0);
610 608
611 EXPECT_TRUE(IsControllable()); 609 EXPECT_TRUE(IsControllable());
612 EXPECT_FALSE(IsSuspended()); 610 EXPECT_TRUE(IsActive());
613 } 611 }
614 612
615 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 613 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
616 ControlsHideWhenTheLastPlayerIsRemoved) { 614 ControlsHideWhenTheLastPlayerIsRemoved) {
617 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 615 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
618 MediaSessionStateChanged(true, false)); 616 MediaSessionStateChanged(true, false));
619 EXPECT_CALL(*mock_media_session_observer(), 617 EXPECT_CALL(*mock_media_session_observer(),
620 MediaSessionStateChanged(false, true)) 618 MediaSessionStateChanged(false, true))
621 .After(showControls); 619 .After(showControls);
622 620
623 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 621 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
624 622
625 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 623 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
626 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 624 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
627 625
628 RemovePlayer(player_observer.get(), 0); 626 RemovePlayer(player_observer.get(), 0);
629 627
630 EXPECT_TRUE(IsControllable()); 628 EXPECT_TRUE(IsControllable());
631 EXPECT_FALSE(IsSuspended()); 629 EXPECT_TRUE(IsActive());
632 630
633 RemovePlayer(player_observer.get(), 1); 631 RemovePlayer(player_observer.get(), 1);
634 632
635 EXPECT_FALSE(IsControllable()); 633 EXPECT_FALSE(IsControllable());
636 EXPECT_TRUE(IsSuspended()); 634 EXPECT_FALSE(IsActive());
637 } 635 }
638 636
639 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 637 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
640 ControlsHideWhenAllThePlayersAreRemoved) { 638 ControlsHideWhenAllThePlayersAreRemoved) {
641 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 639 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
642 MediaSessionStateChanged(true, false)); 640 MediaSessionStateChanged(true, false));
643 EXPECT_CALL(*mock_media_session_observer(), 641 EXPECT_CALL(*mock_media_session_observer(),
644 MediaSessionStateChanged(false, true)) 642 MediaSessionStateChanged(false, true))
645 .After(showControls); 643 .After(showControls);
646 644
647 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 645 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
648 646
649 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 647 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
650 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 648 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
651 649
652 RemovePlayers(player_observer.get()); 650 RemovePlayers(player_observer.get());
653 651
654 EXPECT_FALSE(IsControllable()); 652 EXPECT_FALSE(IsControllable());
655 EXPECT_TRUE(IsSuspended()); 653 EXPECT_FALSE(IsActive());
656 } 654 }
657 655
658 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 656 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
659 ControlsNotHideWhenTheLastPlayerIsPaused) { 657 ControlsNotHideWhenTheLastPlayerIsPaused) {
660 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 658 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
661 MediaSessionStateChanged(true, false)); 659 MediaSessionStateChanged(true, false));
662 EXPECT_CALL(*mock_media_session_observer(), 660 EXPECT_CALL(*mock_media_session_observer(),
663 MediaSessionStateChanged(true, true)) 661 MediaSessionStateChanged(true, true))
664 .After(showControls); 662 .After(showControls);
665 663
666 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 664 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
667 665
668 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 666 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
669 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 667 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
670 668
671 OnPlayerPaused(player_observer.get(), 0); 669 OnPlayerPaused(player_observer.get(), 0);
672 670
673 EXPECT_TRUE(IsControllable()); 671 EXPECT_TRUE(IsControllable());
674 EXPECT_FALSE(IsSuspended()); 672 EXPECT_TRUE(IsActive());
675 673
676 OnPlayerPaused(player_observer.get(), 1); 674 OnPlayerPaused(player_observer.get(), 1);
677 675
678 EXPECT_TRUE(IsControllable()); 676 EXPECT_TRUE(IsControllable());
679 EXPECT_TRUE(IsSuspended()); 677 EXPECT_FALSE(IsActive());
680 } 678 }
681 679
682 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 680 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
683 SuspendTemporaryUpdatesControls) { 681 SuspendTemporaryUpdatesControls) {
684 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 682 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
685 MediaSessionStateChanged(true, false)); 683 MediaSessionStateChanged(true, false));
686 EXPECT_CALL(*mock_media_session_observer(), 684 EXPECT_CALL(*mock_media_session_observer(),
687 MediaSessionStateChanged(true, true)) 685 MediaSessionStateChanged(true, true))
688 .After(showControls); 686 .After(showControls);
689 687
690 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 688 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
691 689
692 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 690 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
693 691
694 SystemSuspend(true); 692 SystemSuspend(true);
695 693
696 EXPECT_TRUE(IsControllable()); 694 EXPECT_TRUE(IsControllable());
697 EXPECT_TRUE(IsSuspended()); 695 EXPECT_FALSE(IsActive());
698 } 696 }
699 697
700 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 698 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
701 ControlsUpdatedWhenResumed) { 699 ControlsUpdatedWhenResumed) {
702 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 700 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
703 MediaSessionStateChanged(true, false)); 701 MediaSessionStateChanged(true, false));
704 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 702 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
705 MediaSessionStateChanged(true, true)) 703 MediaSessionStateChanged(true, true))
706 .After(showControls); 704 .After(showControls);
707 EXPECT_CALL(*mock_media_session_observer(), 705 EXPECT_CALL(*mock_media_session_observer(),
708 MediaSessionStateChanged(true, false)) 706 MediaSessionStateChanged(true, false))
709 .After(pauseControls); 707 .After(pauseControls);
710 708
711 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 709 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
712 710
713 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 711 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
714 SystemSuspend(true); 712 SystemSuspend(true);
715 SystemResume(); 713 SystemResume();
716 714
717 EXPECT_TRUE(IsControllable()); 715 EXPECT_TRUE(IsControllable());
718 EXPECT_FALSE(IsSuspended()); 716 EXPECT_TRUE(IsActive());
719 } 717 }
720 718
721 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 719 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
722 ControlsHideWhenSessionSuspendedPermanently) { 720 ControlsHideWhenSessionSuspendedPermanently) {
723 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 721 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
724 MediaSessionStateChanged(true, false)); 722 MediaSessionStateChanged(true, false));
725 EXPECT_CALL(*mock_media_session_observer(), 723 EXPECT_CALL(*mock_media_session_observer(),
726 MediaSessionStateChanged(false, true)) 724 MediaSessionStateChanged(false, true))
727 .After(showControls); 725 .After(showControls);
728 726
729 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 727 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
730 728
731 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 729 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
732 730
733 SystemSuspend(false); 731 SystemSuspend(false);
734 732
735 EXPECT_FALSE(IsControllable()); 733 EXPECT_FALSE(IsControllable());
736 EXPECT_TRUE(IsSuspended()); 734 EXPECT_FALSE(IsActive());
737 } 735 }
738 736
739 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 737 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
740 ConstrolsHideWhenSessionStops) { 738 ConstrolsHideWhenSessionStops) {
741 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 739 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
742 MediaSessionStateChanged(true, false)); 740 MediaSessionStateChanged(true, false));
743 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 741 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
744 MediaSessionStateChanged(true, true)) 742 MediaSessionStateChanged(true, true))
745 .After(showControls); 743 .After(showControls);
746 EXPECT_CALL(*mock_media_session_observer(), 744 EXPECT_CALL(*mock_media_session_observer(),
747 MediaSessionStateChanged(false, true)) 745 MediaSessionStateChanged(false, true))
748 .After(pauseControls); 746 .After(pauseControls);
749 747
750 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 748 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
751 749
752 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 750 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
753 751
754 media_session_->Stop(MediaSession::SuspendType::UI); 752 media_session_->Stop(MediaSession::SuspendType::UI);
755 753
756 EXPECT_FALSE(IsControllable()); 754 EXPECT_FALSE(IsControllable());
757 EXPECT_TRUE(IsSuspended()); 755 EXPECT_FALSE(IsActive());
758 } 756 }
759 757
760 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 758 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
761 ControlsHideWhenSessionChangesFromContentToTransient) { 759 ControlsHideWhenSessionChangesFromContentToTransient) {
762 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 760 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
763 MediaSessionStateChanged(true, false)); 761 MediaSessionStateChanged(true, false));
764 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 762 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
765 MediaSessionStateChanged(true, true)) 763 MediaSessionStateChanged(true, true))
766 .After(showControls); 764 .After(showControls);
767 EXPECT_CALL(*mock_media_session_observer(), 765 EXPECT_CALL(*mock_media_session_observer(),
768 MediaSessionStateChanged(false, false)) 766 MediaSessionStateChanged(false, false))
769 .After(pauseControls); 767 .After(pauseControls);
770 768
771 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 769 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
772 770
773 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 771 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
774 SystemSuspend(true); 772 SystemSuspend(true);
775 773
776 // This should reset the session and change it to a transient, so 774 // This should reset the session and change it to a transient, so
777 // hide the controls. 775 // hide the controls.
778 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 776 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
779 777
780 EXPECT_FALSE(IsControllable()); 778 EXPECT_FALSE(IsControllable());
781 EXPECT_FALSE(IsSuspended()); 779 EXPECT_TRUE(IsActive());
782 } 780 }
783 781
784 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 782 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
785 ControlsUpdatedWhenNewPlayerResetsSession) { 783 ControlsUpdatedWhenNewPlayerResetsSession) {
786 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 784 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
787 MediaSessionStateChanged(true, false)); 785 MediaSessionStateChanged(true, false));
788 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 786 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
789 MediaSessionStateChanged(true, true)) 787 MediaSessionStateChanged(true, true))
790 .After(showControls); 788 .After(showControls);
791 EXPECT_CALL(*mock_media_session_observer(), 789 EXPECT_CALL(*mock_media_session_observer(),
792 MediaSessionStateChanged(true, false)) 790 MediaSessionStateChanged(true, false))
793 .After(pauseControls); 791 .After(pauseControls);
794 792
795 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 793 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
796 794
797 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 795 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
798 SystemSuspend(true); 796 SystemSuspend(true);
799 797
800 // This should reset the session and update the controls. 798 // This should reset the session and update the controls.
801 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 799 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
802 800
803 EXPECT_TRUE(IsControllable()); 801 EXPECT_TRUE(IsControllable());
804 EXPECT_FALSE(IsSuspended()); 802 EXPECT_TRUE(IsActive());
805 } 803 }
806 804
807 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 805 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
808 ControlsResumedWhenPlayerIsResumed) { 806 ControlsResumedWhenPlayerIsResumed) {
809 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 807 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
810 MediaSessionStateChanged(true, false)); 808 MediaSessionStateChanged(true, false));
811 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 809 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
812 MediaSessionStateChanged(true, true)) 810 MediaSessionStateChanged(true, true))
813 .After(showControls); 811 .After(showControls);
814 EXPECT_CALL(*mock_media_session_observer(), 812 EXPECT_CALL(*mock_media_session_observer(),
815 MediaSessionStateChanged(true, false)) 813 MediaSessionStateChanged(true, false))
816 .After(pauseControls); 814 .After(pauseControls);
817 815
818 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 816 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
819 817
820 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 818 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
821 SystemSuspend(true); 819 SystemSuspend(true);
822 820
823 // This should resume the session and update the controls. 821 // This should resume the session and update the controls.
824 AddPlayer(player_observer.get(), 0, media::MediaContentType::Persistent); 822 AddPlayer(player_observer.get(), 0, media::MediaContentType::Persistent);
825 823
826 EXPECT_TRUE(IsControllable()); 824 EXPECT_TRUE(IsControllable());
827 EXPECT_FALSE(IsSuspended()); 825 EXPECT_TRUE(IsActive());
828 } 826 }
829 827
830 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 828 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
831 ControlsUpdatedDueToResumeSessionAction) { 829 ControlsUpdatedDueToResumeSessionAction) {
832 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 830 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
833 MediaSessionStateChanged(true, false)); 831 MediaSessionStateChanged(true, false));
834 EXPECT_CALL(*mock_media_session_observer(), 832 EXPECT_CALL(*mock_media_session_observer(),
835 MediaSessionStateChanged(true, true)) 833 MediaSessionStateChanged(true, true))
836 .After(showControls); 834 .After(showControls);
837 835
838 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 836 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
839 837
840 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 838 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
841 UISuspend(); 839 UISuspend();
842 840
843 EXPECT_TRUE(IsControllable()); 841 EXPECT_TRUE(IsControllable());
844 EXPECT_TRUE(IsSuspended()); 842 EXPECT_FALSE(IsActive());
845 } 843 }
846 844
847 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 845 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
848 ControlsUpdatedDueToSuspendSessionAction) { 846 ControlsUpdatedDueToSuspendSessionAction) {
849 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 847 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
850 MediaSessionStateChanged(true, false)); 848 MediaSessionStateChanged(true, false));
851 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 849 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
852 MediaSessionStateChanged(true, true)) 850 MediaSessionStateChanged(true, true))
853 .After(showControls); 851 .After(showControls);
854 EXPECT_CALL(*mock_media_session_observer(), 852 EXPECT_CALL(*mock_media_session_observer(),
855 MediaSessionStateChanged(true, false)) 853 MediaSessionStateChanged(true, false))
856 .After(pauseControls); 854 .After(pauseControls);
857 855
858 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 856 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
859 857
860 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 858 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
861 UISuspend(); 859 UISuspend();
862 UIResume(); 860 UIResume();
863 861
864 EXPECT_TRUE(IsControllable()); 862 EXPECT_TRUE(IsControllable());
865 EXPECT_FALSE(IsSuspended()); 863 EXPECT_TRUE(IsActive());
866 } 864 }
867 865
868 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 866 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
869 ControlsDontShowWhenOneShotIsPresent) { 867 ControlsDontShowWhenOneShotIsPresent) {
870 EXPECT_CALL(*mock_media_session_observer(), 868 EXPECT_CALL(*mock_media_session_observer(),
871 MediaSessionStateChanged(false, false)); 869 MediaSessionStateChanged(false, false));
872 870
873 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 871 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
874 872
875 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot); 873 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot);
876 874
877 EXPECT_FALSE(IsControllable()); 875 EXPECT_FALSE(IsControllable());
878 EXPECT_FALSE(IsSuspended()); 876 EXPECT_TRUE(IsActive());
879 877
880 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 878 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
881 EXPECT_FALSE(IsControllable()); 879 EXPECT_FALSE(IsControllable());
882 EXPECT_FALSE(IsSuspended()); 880 EXPECT_TRUE(IsActive());
883 881
884 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 882 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
885 EXPECT_FALSE(IsControllable()); 883 EXPECT_FALSE(IsControllable());
886 EXPECT_FALSE(IsSuspended()); 884 EXPECT_TRUE(IsActive());
887 } 885 }
888 886
889 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 887 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
890 ControlsHiddenAfterRemoveOneShotWithoutOtherPlayers) { 888 ControlsHiddenAfterRemoveOneShotWithoutOtherPlayers) {
891 Expectation expect_1 = EXPECT_CALL(*mock_media_session_observer(), 889 Expectation expect_1 = EXPECT_CALL(*mock_media_session_observer(),
892 MediaSessionStateChanged(false, false)); 890 MediaSessionStateChanged(false, false));
893 Expectation expect_2 = EXPECT_CALL(*mock_media_session_observer(), 891 Expectation expect_2 = EXPECT_CALL(*mock_media_session_observer(),
894 MediaSessionStateChanged(false, true)) 892 MediaSessionStateChanged(false, true))
895 .After(expect_1); 893 .After(expect_1);
896 EXPECT_CALL(*mock_media_session_observer(), MediaSessionStateChanged(true, _)) 894 EXPECT_CALL(*mock_media_session_observer(), MediaSessionStateChanged(true, _))
897 .Times(0) 895 .Times(0)
898 .After(expect_2); 896 .After(expect_2);
899 897
900 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 898 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
901 899
902 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot); 900 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot);
903 RemovePlayer(player_observer.get(), 0); 901 RemovePlayer(player_observer.get(), 0);
904 902
905 EXPECT_FALSE(IsControllable()); 903 EXPECT_FALSE(IsControllable());
906 EXPECT_TRUE(IsSuspended()); 904 EXPECT_FALSE(IsActive());
907 } 905 }
908 906
909 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 907 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
910 ControlsShowAfterRemoveOneShotWithPersistentPresent) { 908 ControlsShowAfterRemoveOneShotWithPersistentPresent) {
911 Expectation uncontrollable = EXPECT_CALL( 909 Expectation uncontrollable = EXPECT_CALL(
912 *mock_media_session_observer(), MediaSessionStateChanged(false, false)); 910 *mock_media_session_observer(), MediaSessionStateChanged(false, false));
913 911
914 EXPECT_CALL(*mock_media_session_observer(), 912 EXPECT_CALL(*mock_media_session_observer(),
915 MediaSessionStateChanged(true, false)) 913 MediaSessionStateChanged(true, false))
916 .After(uncontrollable); 914 .After(uncontrollable);
917 915
918 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 916 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
919 917
920 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot); 918 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot);
921 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 919 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
922 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 920 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
923 921
924 RemovePlayer(player_observer.get(), 0); 922 RemovePlayer(player_observer.get(), 0);
925 923
926 EXPECT_TRUE(IsControllable()); 924 EXPECT_TRUE(IsControllable());
927 EXPECT_FALSE(IsSuspended()); 925 EXPECT_TRUE(IsActive());
928 } 926 }
929 927
930 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 928 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
931 DontSuspendWhenOneShotIsPresent) { 929 DontSuspendWhenOneShotIsPresent) {
932 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 930 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
933 931
934 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot); 932 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot);
935 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 933 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
936 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 934 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
937 935
938 SystemSuspend(false); 936 SystemSuspend(false);
939 937
940 EXPECT_FALSE(IsControllable()); 938 EXPECT_FALSE(IsControllable());
941 EXPECT_FALSE(IsSuspended()); 939 EXPECT_TRUE(IsActive());
942 940
943 EXPECT_EQ(0, player_observer->received_suspend_calls()); 941 EXPECT_EQ(0, player_observer->received_suspend_calls());
944 } 942 }
945 943
946 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 944 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
947 DontResumeBySystemUISuspendedSessions) { 945 DontResumeBySystemUISuspendedSessions) {
948 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 946 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
949 947
950 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 948 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
951 949
952 UISuspend(); 950 UISuspend();
953 EXPECT_TRUE(IsControllable()); 951 EXPECT_TRUE(IsControllable());
954 EXPECT_TRUE(IsSuspended()); 952 EXPECT_FALSE(IsActive());
955 953
956 SystemResume(); 954 SystemResume();
957 EXPECT_TRUE(IsControllable()); 955 EXPECT_TRUE(IsControllable());
958 EXPECT_TRUE(IsSuspended()); 956 EXPECT_FALSE(IsActive());
959 } 957 }
960 958
961 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 959 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
962 AllowUIResumeForSystemSuspend) { 960 AllowUIResumeForSystemSuspend) {
963 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 961 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
964 962
965 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 963 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
966 964
967 SystemSuspend(true); 965 SystemSuspend(true);
968 EXPECT_TRUE(IsControllable()); 966 EXPECT_TRUE(IsControllable());
969 EXPECT_TRUE(IsSuspended()); 967 EXPECT_FALSE(IsActive());
970 968
971 UIResume(); 969 UIResume();
972 EXPECT_TRUE(IsControllable()); 970 EXPECT_TRUE(IsControllable());
973 EXPECT_FALSE(IsSuspended()); 971 EXPECT_TRUE(IsActive());
974 } 972 }
975 973
976 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeSuspendFromUI) { 974 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeSuspendFromUI) {
977 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 975 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
978 976
979 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 977 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
980 978
981 UISuspend(); 979 UISuspend();
982 EXPECT_TRUE(IsControllable()); 980 EXPECT_TRUE(IsControllable());
983 EXPECT_TRUE(IsSuspended()); 981 EXPECT_FALSE(IsActive());
984 982
985 UIResume(); 983 UIResume();
986 EXPECT_TRUE(IsControllable()); 984 EXPECT_TRUE(IsControllable());
987 EXPECT_FALSE(IsSuspended()); 985 EXPECT_TRUE(IsActive());
988 } 986 }
989 987
990 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeSuspendFromSystem) { 988 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeSuspendFromSystem) {
991 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 989 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
992 990
993 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 991 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
994 992
995 SystemSuspend(true); 993 SystemSuspend(true);
996 EXPECT_TRUE(IsControllable()); 994 EXPECT_TRUE(IsControllable());
997 EXPECT_TRUE(IsSuspended()); 995 EXPECT_FALSE(IsActive());
998 996
999 SystemResume(); 997 SystemResume();
1000 EXPECT_TRUE(IsControllable()); 998 EXPECT_TRUE(IsControllable());
1001 EXPECT_FALSE(IsSuspended()); 999 EXPECT_TRUE(IsActive());
1002 } 1000 }
1003 1001
1004 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, OneShotTakesGainFocus) { 1002 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, OneShotTakesGainFocus) {
1005 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 1003 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
1006 1004
1007 EXPECT_CALL( 1005 EXPECT_CALL(
1008 *mock_audio_focus_delegate(), 1006 *mock_audio_focus_delegate(),
1009 RequestAudioFocus(content::AudioFocusManager::AudioFocusType::Gain)) 1007 RequestAudioFocus(content::AudioFocusManager::AudioFocusType::Gain))
1010 .Times(1); 1008 .Times(1);
1011 EXPECT_CALL(*mock_audio_focus_delegate(), 1009 EXPECT_CALL(*mock_audio_focus_delegate(),
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
1406 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 1404 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
1407 clock->Advance(base::TimeDelta::FromMilliseconds(1000)); 1405 clock->Advance(base::TimeDelta::FromMilliseconds(1000));
1408 media_session_->Stop(MediaSession::SuspendType::UI); 1406 media_session_->Stop(MediaSession::SuspendType::UI);
1409 1407
1410 std::unique_ptr<base::HistogramSamples> samples( 1408 std::unique_ptr<base::HistogramSamples> samples(
1411 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); 1409 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
1412 EXPECT_EQ(2, samples->TotalCount()); 1410 EXPECT_EQ(2, samples->TotalCount());
1413 EXPECT_EQ(1, samples->GetCount(1000)); 1411 EXPECT_EQ(1, samples->GetCount(1000));
1414 EXPECT_EQ(1, samples->GetCount(10000)); 1412 EXPECT_EQ(1, samples->GetCount(10000));
1415 } 1413 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698