# This file contains a list of Mojo gtest unit tests.
#
# This must be valid Python. It may use the |config| global that will be a
# mopy.config.Config object, and must set a |tests| global that will contain the
# list of tests to run.
#
# The entries in |tests| are dictionaries of the following form:
#   {
#     # Required URL for apptest.
#     'test': 'mojo:test_app_url',
#     # Optional display name (otherwise the entry for 'test' above is used).
#     'name': 'mojo:test_app_url (more details)',
#     # Optional test type. Valid values:
#     #   * 'gtest': (default)
#     #   * 'gtest_isolated': like 'gtest', but run with fixture isolation.
#     #                       i.e., each test in a fresh mojo_shell
#     'type': 'gtest',
#     # Optional arguments for the shell or test.
#     'args': ['--some-flag-for-the-shell', '--some-flag-for-the-test'],
#   }
#
# TODO(vtl|msw): Add a way of specifying data dependencies.

mus_apptests = { 'test': 'mojo:mus_apptests' }
# osmesa is not used on android, so no flags are needed for
# mus_apptests.
if config.target_os != config.OS_ANDROID:
  mus_apptests['args'] = [ '--use-x11-test-config',
                           '--override-use-gl-with-osmesa-for-tests' ]

tests = [
  {
    'test': 'mojo:clipboard_apptests',
    'type': 'gtest_isolated',
  },
  {
    'test': 'mojo:network_service_apptests',
    'type': 'gtest_isolated',
  },
  {
    'test': 'mojo:resource_provider_apptests',
    'type': 'gtest_isolated',
  },
  # TODO(msw|jam): Fix and enable the runner_apptests: http://crbug.com/479316
  #{
  #  'test': 'mojo:runner_apptests',
  #  'type': 'gtest_isolated',
  #},
  mus_apptests,
]

# TODO(msw): Get these tests passing on Android too. http://crbug.com/486220
if config.target_os != config.OS_ANDROID:
  tests += [
    {
      'test': 'mojo:filesystem_apptests',
      'type': 'gtest_isolated',
    },
    {
      'test': 'mojo:html_viewer_apptests',
      'name': 'mojo:html_viewer_apptests',
      'type': 'gtest_isolated',
      'args': ['--enable-html-viewer-test-interface',
               '--use-x11-test-config',
               '--override-use-gl-with-osmesa-for-tests']
    },
    {
      'test': 'mojo:html_viewer_apptests',
      'name': 'mojo:html_viewer_apptests new frame',
      'type': 'gtest_isolated',
      'args': ['--oopif-always-create-new-frame-tree',
               '--enable-html-viewer-test-interface',
               '--use-x11-test-config',
               '--override-use-gl-with-osmesa-for-tests']
    },
    # TODO(ben): These tests are disabled pending mandoline:browser refactoring.
    #{
    #  'test': 'mojo:mandoline_browser_apptests',
    #  'type': 'gtest_isolated',
    #},
    # TODO(xhwang): Fix and enable mojo:media_pipeline_integration_apptests.
    # http://crbug.com/501417
    {
      'test': 'mojo:media_apptests',
      'type': 'gtest_isolated',
    },
    {
      'test': 'mojo:sql_apptests',
      'type': 'gtest_isolated',
    },
    {
      'test': 'mojo:web_view_apptests',
      'type': 'gtest_isolated',
      'args': ['--use-x11-test-config',
               '--override-use-gl-with-osmesa-for-tests']
    },
  ]
