# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/dart/test.gni")
import("//build/testing/environments.gni")

dart_test("can_play_video_test") {
  sources = [ "can_play_video_test.dart" ]

  deps = [
    "//sdk/testing/sl4f/client",
    "//third_party/dart-pkg/pub/image",
    "//third_party/dart-pkg/pub/matcher",
    "//third_party/dart-pkg/pub/test",
  ]

  _untagged_envs = [
    nuc_env,
    astro_env,
  ]
  environments = []
  foreach(env, _untagged_envs) {
    if (!defined(env.tags)) {
      env.tags = []
    }
    env.tags += [ "e2e-workstation" ]
    environments += [ env ]
  }
}

group("test") {
  testonly = true

  deps = [ ":can_play_video_test($host_toolchain)" ]
}
