# This file contains a list of Mojo apptests. For description of the file
# format, see `mojo_test` in devtools.

tests = [
  {
    "test": "mojo:asset_bundle_apptests",
  },
  {
    "test": "mojo:authenticating_url_loader_interceptor_apptests",
  },
  {
    "test": "mojo:benchmark_apptests",
  },
  {
    "test": "mojo:clipboard_apptests",
  },
  {
    "test": "mojo:example_apptests",
    # ExampleApplicationTest.CheckCommandLineArg checks --example_apptest_arg.
    "test-args": ["--example_apptest_arg"],
  },
  {
    "test": "mojo:example_apptests",
    "name": "mojo:example_apptests (multiprocess)",
    # ExampleApplicationTest.CheckCommandLineArg checks --example_apptest_arg.
    "test-args": ["--example_apptest_arg"],
    "shell-args": ["--enable-multiprocess"],
  },
  {
    "test": "mojo:file_utils_apptests",
  },
  {
    "test": "mojo:files_apptests",
  },
  {
    "test": "mojo:files_impl_apptests",
  },
  {
    "test": "mojo:http_server_apptests",
  },
  {
    "test": "mojo:mojio_apptests",
  },
  {
    "test": "mojo:moterm_apptests",
    "shell-args": ["--args-for=mojo:native_viewport_service --use-headless-config --use-osmesa"],
  },
  {
    "test": "mojo:texture_apptests",
    "shell-args": ["--args-for=mojo:native_viewport_service --use-headless-config --use-osmesa"],
  },
  {
    "test": "mojo:mojo_view_manager_client_apptests",
    "shell-args": ["--args-for=mojo:native_viewport_service --use-headless-config --use-osmesa"],
  },
  {
    "test": "mojo:prediction_apptests",
  },
  {
    "test": "mojo:view_manager_service_apptests",
    "type": "gtest_isolated",
    "shell-args": ["--args-for=mojo:native_viewport_service --use-headless-config --use-osmesa"],
  },
  {
    "test": "mojo:network_service_apptests",
  },
  {
    "test": "mojo:window_manager_apptests",
    "shell-args": ["--args-for=mojo:native_viewport_service --use-headless-config --use-osmesa"],
  },
  {
    "test": "mojo:versioning_apptests",
  },
  {
    "test": "mojo:url_response_disk_cache_apptests",
  },
]

if target_os == 'linux':
  tests += [
    {
      "test": "mojo:example_apptests",
      "name": "mojo:example_apptests (python_example_service)",
      # ExampleApplicationTest.CheckCommandLineArg checks --example_apptest_arg.
      "test-args": ["--example_apptest_arg"],
      "shell-args": [
        "--url-mappings=mojo:example_service=mojo:python_example_service"
      ],
    },
    {
      "test": "mojo:mojo_url_redirector_apptests",
      "test-args": ["--redirector_port=49152",
                    "--app_location_files_port=49153"],
      "shell-args": ["--args-for=mojo:mojo_url_redirector 0.0.0.0:49152 http://localhost:49153"],
    }
  ]

if target_os == 'android':
  tests += [
    {
      "test": "mojo:example_apptests",
      "name": "mojo:example_apptests (android_example_service)",
      # ExampleApplicationTest.CheckCommandLineArg checks --example_apptest_arg.
      "test-args": ["--example_apptest_arg"],
      "shell-args": [
        "--url-mappings=mojo:example_service=mojo:android_example_service"
      ],
    },
    {
      "test": "mojo:contacts_apptests",
    },
    {
      "test": "mojo:notification_apptests",
    },
    {
      "test": "mojo:shell_nfc_apptests",
    },
  ]

if target_os != 'android':
  tests += [
    {
      "test": "mojo:js_apptests",
      "type": "gtest_isolated",
    },
    {
      "test": "mojo:dart_apptests",
      "type": "dart",
    },
    {
      # These tests rely on various things in /bin.
      "test": "mojo:native_support_apptests",
    },
    {
      # https://github.com/domokit/mojo/issues/61
      # Sometime the shell get a trucated application when exposed through the
      # http server.
      "test": "mojo:shell_apptests",
    },
  ]
