blob: e0fbaedafaa59fd5e9e85f44318f237a62243b22 [file] [log] [blame]
// Copyright 2015 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/media/router/media_source.h"
#include "chrome/browser/media/router/media_source_helper.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace media_router {
TEST(MediaSourcesTest, IsMirroringMediaSource) {
EXPECT_TRUE(IsTabMirroringMediaSource(MediaSourceForTab(123)));
EXPECT_TRUE(IsDesktopMirroringMediaSource(MediaSourceForDesktop()));
EXPECT_TRUE(IsMirroringMediaSource(MediaSourceForTab(123)));
EXPECT_TRUE(IsMirroringMediaSource(MediaSourceForDesktop()));
EXPECT_FALSE(IsMirroringMediaSource(MediaSourceForCastApp("CastApp")));
EXPECT_FALSE(
IsMirroringMediaSource(MediaSourceForPresentationUrl("http://url")));
}
TEST(MediaSourcesTest, CreateMediaSource) {
EXPECT_EQ("urn:x-org.chromium.media:source:tab:123",
MediaSourceForTab(123).id());
EXPECT_EQ("urn:x-org.chromium.media:source:desktop",
MediaSourceForDesktop().id());
EXPECT_EQ("urn:x-com.google.cast:application:DEADBEEF",
MediaSourceForCastApp("DEADBEEF").id());
EXPECT_EQ("http://example.com/",
MediaSourceForPresentationUrl("http://example.com/").id());
}
TEST(MediaSourcesTest, IsValidMediaSource) {
EXPECT_TRUE(IsValidMediaSource(MediaSourceForTab(123)));
EXPECT_TRUE(IsValidMediaSource(MediaSourceForDesktop()));
EXPECT_TRUE(IsValidMediaSource(MediaSourceForCastApp("DEADBEEF")));
EXPECT_TRUE(
IsValidMediaSource(MediaSourceForPresentationUrl("http://example.com/")));
EXPECT_TRUE(IsValidMediaSource(
MediaSourceForPresentationUrl("https://example.com/")));
// Disallowed scheme
EXPECT_FALSE(IsValidMediaSource(
MediaSourceForPresentationUrl("file:///some/local/path")));
// Not a URL
EXPECT_FALSE(
IsValidMediaSource(MediaSourceForPresentationUrl("totally not a url")));
}
TEST(MediaSourcesTest, PresentationUrlFromMediaSource) {
EXPECT_EQ("", PresentationUrlFromMediaSource(MediaSourceForTab(123)));
EXPECT_EQ("", PresentationUrlFromMediaSource(MediaSourceForDesktop()));
EXPECT_EQ("http://example.com/",
PresentationUrlFromMediaSource(
MediaSourceForPresentationUrl("http://example.com/")));
}
} // namespace media_router