Commit 1781e782 authored by Jazz Xu's avatar Jazz Xu Committed by Commit Bot

CrOS GMC: Add freeze controls unittest.

Add unittest that tests controls are frozen while we waiting for new
session.

Bug: 1128883
Change-Id: I37bc04d27366dcba3670da2038c7ba270c382b87
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2426506
Commit-Queue: Jazz Xu <jazzhsu@chromium.org>
Reviewed-by: default avatarTommy Steimel <steimel@chromium.org>
Reviewed-by: default avatarTetsui Ohkubo <tetsui@chromium.org>
Reviewed-by: default avatarYoshiki Iguchi <yoshiki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#811592}
parent 6b349f67
......@@ -340,6 +340,76 @@ TEST_F(UnifiedMediaControlsControllerTest,
EXPECT_FALSE(delegate()->IsControlsVisible());
}
TEST_F(UnifiedMediaControlsControllerTest, FreezeControlsWhenUpdateSession) {
auto request_id = base::UnguessableToken::Create();
controller()->MediaSessionChanged(request_id);
EnableAction(MediaSessionAction::kPlay);
EnableAction(MediaSessionAction::kPause);
SimulateMediaPlaybackStateChanged(
media_session::mojom::MediaPlaybackState::kPlaying);
// Initial state of media controls.
EXPECT_TRUE(GetActionButton(MediaSessionAction::kPause)->GetVisible());
EXPECT_FALSE(
GetActionButton(MediaSessionAction::kPreviousTrack)->GetVisible());
EXPECT_EQ(title_label()->GetText(), base::ASCIIToUTF16(""));
EXPECT_EQ(artist_label()->GetText(), base::ASCIIToUTF16(""));
EXPECT_FALSE(artwork_view()->GetVisible());
controller()->MediaSessionChanged(base::nullopt);
// Test that metadata update is ignored when we waiting for new session.
media_session::MediaMetadata metadata;
metadata.title = base::ASCIIToUTF16("title");
metadata.artist = base::ASCIIToUTF16("artist");
controller()->MediaSessionMetadataChanged(metadata);
EXPECT_EQ(title_label()->GetText(), base::ASCIIToUTF16(""));
EXPECT_EQ(artist_label()->GetText(), base::ASCIIToUTF16(""));
// Test that media seeesion info update is ignored when we waiting for new
// session.
SimulateMediaPlaybackStateChanged(
media_session::mojom::MediaPlaybackState::kPaused);
EXPECT_TRUE(GetActionButton(MediaSessionAction::kPause)->GetVisible());
// Test that artwork update is ignored when we waiting for new session.
SkBitmap artwork;
artwork.allocN32Pixels(40, 40);
controller()->MediaControllerImageChanged(
media_session::mojom::MediaSessionImageType::kArtwork, artwork);
EXPECT_FALSE(artwork_view()->GetVisible());
// Test that enabled action update is ignored when we waiting for new session.
EnableAction(MediaSessionAction::kPreviousTrack);
EXPECT_FALSE(
GetActionButton(MediaSessionAction::kPreviousTrack)->GetVisible());
// Resume the session, now we should start updating controls.
controller()->MediaSessionChanged(request_id);
// Test that metadata is updated.
controller()->MediaSessionMetadataChanged(metadata);
EXPECT_EQ(metadata.title, title_label()->GetText());
EXPECT_EQ(metadata.artist, artist_label()->GetText());
// Test that media session info is updated.
SimulateMediaPlaybackStateChanged(
media_session::mojom::MediaPlaybackState::kPaused);
EXPECT_EQ(GetActionButton(MediaSessionAction::kPause), nullptr);
EXPECT_NE(GetActionButton(MediaSessionAction::kPlay), nullptr);
// Test that artwork is updated.
controller()->MediaControllerImageChanged(
media_session::mojom::MediaSessionImageType::kArtwork, artwork);
EXPECT_TRUE(artwork_view()->GetVisible());
// Test that enabled actions are updated.
EnableAction(MediaSessionAction::kPreviousTrack);
EXPECT_TRUE(
GetActionButton(MediaSessionAction::kPreviousTrack)->GetVisible());
}
TEST_F(UnifiedMediaControlsControllerTest,
NotifyDelegateWhenMediaControlsViewClicked) {
CreateWidget();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment