| Index: chrome/browser/ui/webui/media_router/cast_modes_with_media_sources_unittest.cc
|
| diff --git a/chrome/browser/ui/webui/media_router/cast_modes_with_media_sources_unittest.cc b/chrome/browser/ui/webui/media_router/cast_modes_with_media_sources_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0cb889c1a844e5dbd0f2e5bd6cdcff022a4dbb02
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/webui/media_router/cast_modes_with_media_sources_unittest.cc
|
| @@ -0,0 +1,75 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/ui/webui/media_router/cast_modes_with_media_sources.h"
|
| +
|
| +#include "chrome/browser/media/router/media_source_helper.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace media_router {
|
| +
|
| +TEST(MediaRouterCastModesWithMediaSourcesTest, AddAndRemoveSources) {
|
| + const MediaSource defaultSource1(MediaSourceForPresentationUrl("http://1"));
|
| + const MediaSource defaultSource2(MediaSourceForPresentationUrl("http://2"));
|
| + const MediaSource tabSourceA(MediaSourceForTab(123));
|
| + const CastModeSet castModeSetEmpty;
|
| + const CastModeSet castModeSetDefault({MediaCastMode::DEFAULT});
|
| + const CastModeSet castModeSetTab({MediaCastMode::TAB_MIRROR});
|
| + const CastModeSet castModeSetDefaultAndTab(
|
| + {MediaCastMode::DEFAULT, MediaCastMode::TAB_MIRROR});
|
| +
|
| + CastModesWithMediaSources sources;
|
| + EXPECT_TRUE(sources.IsEmpty());
|
| + EXPECT_EQ(sources.GetCastModes(), castModeSetEmpty);
|
| +
|
| + // After the below addition, |sources| should contain:
|
| + // [Default: 1]
|
| + sources.AddSource(defaultSource1, MediaCastMode::DEFAULT);
|
| + EXPECT_TRUE(sources.HasSource(defaultSource1, MediaCastMode::DEFAULT));
|
| + EXPECT_FALSE(sources.HasSource(defaultSource2, MediaCastMode::DEFAULT));
|
| + EXPECT_FALSE(sources.HasSource(defaultSource1, MediaCastMode::TAB_MIRROR));
|
| + EXPECT_FALSE(sources.IsEmpty());
|
| + EXPECT_EQ(sources.GetCastModes(), castModeSetDefault);
|
| +
|
| + // Trying to remove non-existing sources should be no-op.
|
| + sources.RemoveSource(defaultSource2, MediaCastMode::DEFAULT);
|
| + sources.RemoveSource(defaultSource1, MediaCastMode::TAB_MIRROR);
|
| + sources.RemoveSource(tabSourceA, MediaCastMode::TAB_MIRROR);
|
| + EXPECT_TRUE(sources.HasSource(defaultSource1, MediaCastMode::DEFAULT));
|
| + EXPECT_EQ(sources.GetCastModes(), castModeSetDefault);
|
| +
|
| + // [Default: 1; Tab: A]
|
| + sources.AddSource(tabSourceA, MediaCastMode::TAB_MIRROR);
|
| + EXPECT_TRUE(sources.HasSource(defaultSource1, MediaCastMode::DEFAULT));
|
| + EXPECT_TRUE(sources.HasSource(tabSourceA, MediaCastMode::TAB_MIRROR));
|
| + EXPECT_EQ(sources.GetCastModes(), castModeSetDefaultAndTab);
|
| +
|
| + // [Default: 1,2; Tab: A]
|
| + sources.AddSource(defaultSource2, MediaCastMode::DEFAULT);
|
| + EXPECT_TRUE(sources.HasSource(defaultSource2, MediaCastMode::DEFAULT));
|
| + EXPECT_EQ(sources.GetCastModes(), castModeSetDefaultAndTab);
|
| +
|
| + // [Default: 2; Tab: A]
|
| + sources.RemoveSource(defaultSource1, MediaCastMode::DEFAULT);
|
| + EXPECT_FALSE(sources.HasSource(defaultSource1, MediaCastMode::DEFAULT));
|
| + EXPECT_TRUE(sources.HasSource(defaultSource2, MediaCastMode::DEFAULT));
|
| + EXPECT_EQ(sources.GetCastModes(), castModeSetDefaultAndTab);
|
| +
|
| + // [Tab: A]
|
| + sources.RemoveSource(defaultSource2, MediaCastMode::DEFAULT);
|
| + EXPECT_FALSE(sources.HasSource(defaultSource1, MediaCastMode::DEFAULT));
|
| + EXPECT_FALSE(sources.IsEmpty());
|
| + EXPECT_EQ(sources.GetCastModes(), castModeSetTab);
|
| +
|
| + // []
|
| + sources.RemoveSource(tabSourceA, MediaCastMode::TAB_MIRROR);
|
| + EXPECT_FALSE(sources.HasSource(defaultSource1, MediaCastMode::DEFAULT));
|
| + EXPECT_FALSE(sources.HasSource(defaultSource2, MediaCastMode::DEFAULT));
|
| + EXPECT_FALSE(sources.HasSource(tabSourceA, MediaCastMode::TAB_MIRROR));
|
| + EXPECT_TRUE(sources.IsEmpty());
|
| + EXPECT_EQ(sources.GetCastModes(), castModeSetEmpty);
|
| +}
|
| +
|
| +} // namespace media_router
|
|
|