# Copyright 2022 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.

copy("demos_testdata") {
  sources = [
    "animations-demo/index.html",
    "animations-demo/layer_fern.css",
    "animations-demo/layer_fern.js",
    "animations-demo/layer_intro.css",
    "animations-demo/layer_intro.js",
    "animations-demo/layer_sun.css",
    "animations-demo/layer_sun.js",
    "background-mode-demo/background-mode-demo.html",
    "background-mode-demo/background-mode-demo.js",
    "cobalt-oxide/cobalt-oxide.css",
    "cobalt-oxide/cobalt-oxide.html",
    "cobalt-oxide/cobalt-oxide.js",
    "color-transitions-demo/color-transitions-demo.html",
    "crash-demo/crash-demo.html",
    "deep-link-demo/deep-link-demo.html",
    "deviceorientation-demo/deviceorientation-demo.html",
    "disable-jit/index.html",
    "dom-gc-demo/dom-gc-demo.html",
    "draw/index.html",
    "dual-playback-demo/bear.mp4",
    "dual-playback-demo/dual-playback-demo.html",
    "eme-demo/eme-demo.html",
    "eme-demo/eme-demo.js",
    "focus-demo/focus-demo.html",
    "hybrid-navigation/hybrid-navigation-grid.html",
    "lottie-player-demo/lottie-player-demo.html",
    "lottie-player-demo/lottie-player-raw-json-demo.html",
    "lottie-player-demo/white_material_wave_loading.json",
    "material-design-spinner-demo/index.html",
    "media-capture/media-devices-test.html",
    "media-element-demo/.gitignore",
    "media-element-demo/README.md",
    "media-element-demo/legacy/key-systems.html",
    "media-element-demo/legacy/key-systems.js",
    "media-element-demo/package-lock.json",
    "media-element-demo/package.json",
    "media-element-demo/public/assets/vp9_720p.webm",
    "media-element-demo/public/index.html",
    "media-element-demo/public/styles/app.css",
    "media-element-demo/src/components/component.ts",
    "media-element-demo/src/components/download_buffer_info.ts",
    "media-element-demo/src/components/error_logger.ts",
    "media-element-demo/src/components/player.ts",
    "media-element-demo/src/components/router.ts",
    "media-element-demo/src/components/source_buffer_info.ts",
    "media-element-demo/src/components/video_info.ts",
    "media-element-demo/src/components/watch.ts",
    "media-element-demo/src/index.ts",
    "media-element-demo/src/utils/download_buffer.ts",
    "media-element-demo/src/utils/downloader.ts",
    "media-element-demo/src/utils/enums.ts",
    "media-element-demo/src/utils/limited_source_buffer.ts",
    "media-element-demo/src/utils/media.ts",
    "media-element-demo/src/utils/observable.ts",
    "media-element-demo/src/utils/shared_values.ts",
    "media-element-demo/tsconfig.json",
    "media-element-demo/webpack.config.js",
    "media-query/media-query-test.html",
    "opacity-transitions-demo/opacity-transitions-demo.html",
    "page-visibility-demo/page-visibility-demo.html",
    "performance-api-demo/performance-lifecycle-timing-demo.html",
    "performance-api-demo/performance-resource-timing-demo.html",
    "performance-api-demo/resources/square.png",
    "pointer-events-demo/pointer-events-demo.html",
    "screen_diagonal/screen_diagonal.html",
    "script-debugger-test/script-debugger-test.html",
    "script-tag-demo/increment-and-print-i.js",
    "script-tag-demo/script-tag-demo.html",
    "selector-tester/selector-tester.html",
    "simple-xhr/simple-xhr.html",
    "simple-xhr/simple-xhr.js",
    "smooth-animations-demo/index.html",
    "smooth-key-scroll/index.html",
    "specificity-demo/specificity-demo.html",
    "speech-synthesis-demo/index.html",
    "splash_screen/beforeunload.html",
    "splash_screen/block_render_tree_html_display_none.html",
    "splash_screen/link_splash_screen.html",
    "splash_screen/link_splash_screen_network.html",
    "splash_screen/redirect_server.py",
    "splash_screen/redirected.html",
    "splash_screen/render_postponed.html",
    "system-caption-settings/index.html",
    "text-encoding-workaround/text-encoding-workaround.html",
    "timer-demo/timer-demo.html",
    "transitions-demo/transitions-demo.html",
    "transparent-animated-webp-demo/bottleflip_loader.webp",
    "transparent-animated-webp-demo/index.html",
    "transparent-animated-webp-demo/loading-spinner-opaque.webp",
    "transparent-animated-webp-demo/webp-animated-semitransparent4.webp",
    "unload-demo/unload-demo.html",
    "user-agent-client-hints-demo/user-agent-client-hints-demo.html",
    "web-audio-demo/web-audio-demo.html",
  ]

  if (is_internal_build) {
    sources += [
      "//internal/cobalt/demos/content/mtm-demo/README.txt",
      "//internal/cobalt/demos/content/mtm-demo/mtm.html",
      "//internal/cobalt/demos/content/mtm-demo/normal.html",
      "//internal/cobalt/demos/content/mtm-demo/progressive.mp4",
      "media-element-demo/public/assets/ac3.mp4",
      "media-element-demo/public/assets/dash-audio.mp4",
      "media-element-demo/public/assets/dash-video-1080p.mp4",
      "media-element-demo/public/assets/dash-video-240p.mp4",
      "media-element-demo/public/assets/eac3.mp4",
      "media-element-demo/public/assets/hvc1_480p.mp4",
      "media-element-demo/public/assets/hvc1_480p_720p.mp4",
      "media-element-demo/public/assets/hvc1_720p.mp4",
      "media-element-demo/public/assets/hvc1_hdr_480p.mp4",
      "media-element-demo/public/assets/progressive.mp4",
    ]
  }

  outputs = [
    "$sb_static_contents_output_data_dir/test/demos/{{source_target_relative}}",
  ]
}
