Skip to content

Commit

Permalink
Revert "[Media Router] Converts integration tests to run on Chromium …
Browse files Browse the repository at this point in the history
…waterfall."

This reverts commit aa57fe6.

Reason for revert:

Findit (https://goo.gl/kROfz5) identified CL at revision 543005 as the
culprit for failures in the build cycles as shown on:
https://findit-for-me.appspot.com/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtL2FhNTdmZTZkYzk2YjQwYTU4YWNjMWVkNmMyNjhmNDdhODgxYjU5MGUM

Sample Failed Build: https://ci.chromium.org/buildbot/chromium.memory/Linux%20MSan%20Tests/8508

Sample Failed Step: browser_tests

Original change's description:
> [Media Router] Converts integration tests to run on Chromium waterfall.
> 
> This updates the Media Router integration tests so they run in the
> Chromium waterfall with the open source Media Router component
> extension and its mock (test) Media Route Provider.
> 
> Additional changes:
> 
> - Removes extension from top level BUILD.gn as it is only used for
>   browser tests at the moment.
> - Splits the targets for Media Router browser tests into integration tests
>   (part of main browser_tests suite), e2e tests (which require the
>   external component extension), perf tests, and shared support code.
> - Renames the "test" extension to the "telemetry" extension used for perf
>   tests to avoid confusion.
> - Updates README files
> - One test is not compatible with the Chromium component and need
>   to be fixed.  Bugs 818767 filed for follow-up.
> 
> Bug: 698796
> Change-Id: I6cc9302ffd72de95630ce33ca3617b3b73b9e722
> Reviewed-on: https://chromium-review.googlesource.com/917214
> Commit-Queue: mark a. foltz <mfoltz@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Derek Cheng <imcheng@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#543005}

Change-Id: Ifd1f688a7b89397491d849a6766f8d0510425e05
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 698796
Reviewed-on: https://chromium-review.googlesource.com/962101
Cr-Commit-Position: refs/heads/master@{#543034}
  • Loading branch information
Findit committed Mar 14, 2018
1 parent 2a1ee5c commit 8915f83
Show file tree
Hide file tree
Showing 13 changed files with 116 additions and 206 deletions.
1 change: 1 addition & 0 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ group("gn_all") {
if (!is_ios && !is_android && !is_chromecast && !is_fuchsia) {
deps += [
"//chrome",
"//chrome/browser/resources/media_router/extension:all",
"//chrome/test:browser_tests",
"//chrome/test:interactive_ui_tests",
"//chrome/test:sync_integration_tests",
Expand Down
2 changes: 1 addition & 1 deletion chrome/test/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -1326,7 +1326,7 @@ test("browser_tests") {

deps += [
"//chrome/common/extensions/api",
"//chrome/test/media_router:browser_tests",
"//chrome/test/media_router:media_router_browsertests",
"//components/guest_view/browser:test_support",
"//components/keep_alive_registry",

Expand Down
166 changes: 54 additions & 112 deletions chrome/test/media_router/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -2,151 +2,93 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("browser_tests") {
group("media_router_perf_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [
"media_router_e2e_browsertest.cc",
"media_router_e2e_browsertest.h",
"media_router_e2e_ui_browsertest.cc",
"media_router_integration_browsertest.cc",
"media_router_integration_browsertest.h",
"media_router_integration_ui_browsertest.cc",
"media_router_one_ua_integration_browsertest.cc",
data = [
"$root_out_dir/media_router/test_extension/",
"$root_out_dir/mr_extension/release/",
"internal/",
"telemetry/",
]
deps = [
":test_support",
"//chrome/app:generated_resources",
"//chrome/browser",
"//chrome/browser/media/router",
"//chrome/browser/ui",
"//chrome/common",
"//chrome/common/media_router:router",
"//chrome/test:test_support_ui",
"//content/public/browser",
"//content/test:test_support",
"//media:test_support",
"//net",
"//net:test_support",
"//testing/gtest",
"//ui/base",
"//url",
]
data_deps = [
":browser_test_resources",
"//chrome/browser/resources/media_router/extension:media_router",
]
data = [ "$root_gen_dir/chrome/browser/resources/media_router/extension/" ]
}

copy("browser_test_resources") {
testonly = true
sources = [
"resources/basic_test.html",
"resources/close_route_with_error_on_send.json",
"resources/common.js",
"resources/fail_create_route.json",
"resources/fail_reconnect_session.html",
"resources/fail_reconnect_session.json",
"resources/local_media_sink.json",
"resources/local_media_sink_route_fail.json",
"resources/no_provider.json",
"resources/no_sinks.json",
"resources/no_supported_sinks.json",
"resources/presentation_receiver.html",
"resources/route_creation_timed_out.json",
]
outputs = [
"$root_out_dir/media_router/browser_test_resources/{{source_file_part}}",
":test_extension_resource_files",
"//tools/perf:perf",
]
}

# Run separately from the Chromium waterfall with the external component
# extension. See README.md
group("media_router_e2e_tests") {
group("media_router_tests") {
testonly = true
data_deps = [
":browser_test_resources",
":e2e_test_resources",
"//chrome/test:browser_tests",
]
data = [
"$root_out_dir/mr_extension/",
"internal/",
"../../../media/test/data/player.html",
"../../../media/test/data/bear-vp9.webm",
]
}

copy("e2e_test_resources") {
testonly = true
sources = [
"../../../media/test/data/bear-vp9.webm",
"../../../media/test/data/player.html",
]
# Browser test resource files.
media_router_integration_test_resources = [
"resources/basic_test.html",
"resources/close_route_with_error_on_send.json",
"resources/common.js",
"resources/fail_create_route.json",
"resources/fail_reconnect_session.html",
"resources/fail_reconnect_session.json",
"resources/local_media_sink.json",
"resources/local_media_sink_route_fail.json",
"resources/no_provider.json",
"resources/no_sinks.json",
"resources/no_supported_sinks.json",
"resources/presentation_receiver.html",
"resources/route_creation_timed_out.json",
]

media_router_test_extension_resources = [
"telemetry/extension/manifest.json",
"telemetry/extension/script.js",
]

copy("test_extension_resource_files") {
sources = media_router_test_extension_resources
outputs = [
"$root_out_dir/media_router/browser_test_resources/{{source_file_part}}",
"$root_out_dir/media_router/test_extension/{{source_file_part}}",
]
}

# Run separately. TODO: Documentation on how to run
group("swarming_tests") {
testonly = true
data_deps = [
":browser_test_resources",
"//chrome/test:browser_tests",
]
data = [
"internal/",
"$root_out_dir/mr_extension/",
copy("browser_tests_resource_files") {
sources = media_router_integration_test_resources
outputs = [
"$root_out_dir/media_router/browser_test_resources/{{source_file_part}}",
]
}

source_set("test_support") {
source_set("media_router_browsertests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [
"media_router_base_browsertest.cc",
"media_router_base_browsertest.h",
"media_router_e2e_browsertest.cc",
"media_router_e2e_browsertest.h",
"media_router_e2e_ui_browsertest.cc",
"media_router_integration_browsertest.cc",
"media_router_integration_browsertest.h",
"media_router_integration_ui_browsertest.cc",
"media_router_one_ua_integration_browsertest.cc",
"test_media_sinks_observer.cc",
"test_media_sinks_observer.h",
]
public_deps = [
"//base",
"//chrome/browser/extensions",
"//extensions/browser",
]
deps = [
"//chrome/browser/media/router",
":browser_tests_resource_files",
"//chrome/browser/media/router:test_support",
"//chrome/common:constants",
"//chrome/test:test_support",
"//chrome/test:test_support_ui",
"//content/public/common",
"//content/test:test_support",
"//extensions/common",
"//extensions/browser",
"//media:test_support",
"//skia",
"//testing/gtest",
]
}

group("media_router_perf_tests") {
testonly = true
data = [
"$root_out_dir/media_router/telemetry_extension/",
"$root_out_dir/mr_extension/release/",
"internal/",
"telemetry/",
]
deps = [
"//tools/perf:perf",
]
data_deps = [
":telemetry_extension_resources",
]
}

copy("telemetry_extension_resources") {
sources = [
"telemetry/extension/manifest.json",
"telemetry/extension/script.js",
]
outputs = [
"$root_out_dir/media_router/telemetry_extension/{{source_file_part}}",
]
}
39 changes: 11 additions & 28 deletions chrome/test/media_router/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,39 +6,22 @@
# Media Router Integration and E2E Browser Tests

This directory contains the integration and end-to-end browser tests for Media
Router. The Media Router uses various Media Route Providers to connect to
different types of displays.
Router. Note that running these tests requires a dev build of the Media Router
component extension, which isn't open source. The project for upstreaming the
component extension is [tracked by this bug](http://crbug.com/698796).

## Media Route Providers

The tests are run with one of two component extensions:

* The open source Media Router component extension in
chrome/browser/resources/media_router/extension includes a mock Media Route
Provider, `mr.TestProvider`.
* The closed source Media Router external component extension includes the Cast
Media Route Provider.

## Tests
## Test classes

* `MediaRouterIntegrationBrowserTest`: Tests that Media Router behaves as
specified by the Presentation API, and that its dialog is shown as expected
using the test provider `mr.TestProvider`. Test cases that specifically test the
functionalities of the Media Router dialog are in
`media_router_integration_ui_browsertest.cc`.
specified by the Presentation API, and that its dialog is shown as expected.
Uses `mr.TestProvider` (provided the component extension) as the Media Route
Provider. Test cases that specifically test the functionalities of the Media
Router dialog are in `media_router_integration_ui_browsertest.cc`.

* `MediaRouterIntegrationIncognitoBrowserTest`: Same as
`MediaRouterIntegrationBrowserTest`, except for that the tests are run using an
incognito profile.

* `MediaRouterE2EBrowserTest`: Tests Chromecast-specific functionality of Media
Router using the Cast Media Route Provider. Requires installing the Media
Router external component extension and an actual Chromecast device.

* `MediaRouterIntegrationOneUABrowserTest`: Tests that the Presentation API can
be used to start presentations using offscreen tabs, and that basic Presentation
API usage with offscreen tabs is working.

* `MediaRouterIntegrationOneUANoReceiverBrowserTest`: Tests Presentation API
behavior when there is no compatible presentation receiver for the requested
URL.
* `MediaRouterE2EBrowserTest`: Tests the casting functionality of Media Router
using the Cast Media Route Provider (provided by the component extension) and an
actual Chromecast device.
6 changes: 3 additions & 3 deletions chrome/test/media_router/media_router_base_browsertest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -113,12 +113,12 @@ void MediaRouterBaseBrowserTest::ParseCommandLine() {
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
extension_unpacked_ = command_line->GetSwitchValuePath(kExtensionUnpacked);

// No extension provided. Use the default component extension in Chromium.
// Check if there is mr_extension folder under PRODUCT_DIR folder.
if (extension_unpacked_.empty()) {
base::FilePath base_dir;
ASSERT_TRUE(PathService::Get(base::DIR_MODULE, &base_dir));
base::FilePath extension_path = base_dir.Append(FILE_PATH_LITERAL(
"gen/chrome/browser/resources/media_router/extension"));
base::FilePath extension_path =
base_dir.Append(FILE_PATH_LITERAL("mr_extension/"));
if (PathExists(extension_path)) {
extension_unpacked_ = extension_path;
}
Expand Down
Loading

0 comments on commit 8915f83

Please sign in to comment.