# Copyright 2021 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

group("gn_all") {
  testonly = true
  deps = [
    ":default",
    "//cobalt/bindings/testing:bindings_test",
    "//cobalt/browser:browser_test",
    "//cobalt/dom:dom_test",
    "//cobalt/dom/testing:dom_testing",
    "//cobalt/dom_parser:dom_parser_test",
    "//cobalt/encoding:text_encoding_test",
    "//cobalt/extension:extension_test",
    "//cobalt/layout:layout_test",
    "//cobalt/layout_tests",
    "//cobalt/layout_tests:web_platform_tests",
    "//cobalt/loader:loader_test",
    "//cobalt/loader/image/sandbox:image_decoder_sandbox",
    "//cobalt/media/sandbox:media_sandbox",
    "//cobalt/media/sandbox:web_media_player_sandbox",
    "//cobalt/media_capture:media_capture_test",
    "//cobalt/media_session:media_session_test",
    "//cobalt/media_stream:media_stream_test",
    "//cobalt/renderer:renderer_test",
    "//cobalt/renderer/sandbox:renderer_sandbox",
    "//cobalt/renderer/sandbox:scaling_text_sandbox",
    "//cobalt/speech/sandbox:speech_sandbox",
    "//cobalt/web_animations:web_animations_test",
    "//cobalt/webdriver:webdriver_test",
    "//cobalt/websocket:websocket_test",
    "//cobalt/xhr:xhr_test",
  ]

  if (sb_is_evergreen) {
    deps += [
      "//components/update_client:cobalt_slot_management_test",
      "//components/update_client:update_client_test",
    ]
  }
}

group("default") {
  deps = [
    "//cobalt/browser:cobalt",
    "//cobalt/browser:cobalt_install",
    "//cobalt/renderer:default_options",
    "//cobalt/script:engine_shell",
    "//third_party/brotli:dec_no_dictionary_data",
  ]

  if (sb_is_evergreen) {
    deps += [
      "//base/util/values:values_util",
      "//cobalt/updater",
      "//components/client_update_protocol",
      "//components/crx_file",
      "//components/prefs",
      "//components/update_client",
      "//third_party/llvm-project/compiler-rt:compiler_rt",
      "//third_party/llvm-project/libcxx:cxx",
      "//third_party/llvm-project/libcxxabi:cxxabi",
      "//third_party/llvm-project/libunwind:unwind_evergreen",
      "//third_party/musl:c",
    ]
  }
}
