# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
  'conditions': [
    ['use_x11==0', {
      'variables': {
        'command': [
          '../testing/test_env.py',
          '<(PRODUCT_DIR)/interactive_ui_tests<(EXECUTABLE_SUFFIX)',
          '--test-launcher-bot-mode',
          '--asan=<(asan)',
          '--msan=<(msan)',
          '--tsan=<(tsan)',
        ],
      },
    }],
    ['use_x11==1', {
      'variables': {
        'command': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)',
          '<(PRODUCT_DIR)/interactive_ui_tests<(EXECUTABLE_SUFFIX)',
          '--test-launcher-bot-mode',
          '--asan=<(asan)',
          '--msan=<(msan)',
          '--tsan=<(tsan)',
        ],
        'files': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)/xdisplaycheck<(EXECUTABLE_SUFFIX)',
        ],
      },
    }],
    ['OS=="linux"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/libosmesa.so',
          '<(PRODUCT_DIR)/libppapi_tests.so',
          '<(PRODUCT_DIR)/pyproto/google/',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'files': [
          '../content/test/data/',
          '../net/data/ssl/certificates/',
          '../net/tools/testserver/',
          '../ppapi/tests/test_case.html',
          '../ppapi/tests/test_case.html.mock-http-headers',
          '../ppapi/tests/test_page.css',
          '../ppapi/tests/test_page.css.mock-http-headers',
          '../testing/test_env.py',
          '../third_party/pyftpdlib/',
          '../third_party/pywebsocket/',
          '../third_party/tlslite/',
          '<(PRODUCT_DIR)/ui_test.pak',
          'test/data/',
        ],
      },
    }],
    ['OS=="linux" or OS=="win"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/chrome_100_percent.pak',
          '<(PRODUCT_DIR)/chrome_200_percent.pak',
          '<(PRODUCT_DIR)/locales/en-US.pak',
          '<(PRODUCT_DIR)/locales/fr.pak',
          '<(PRODUCT_DIR)/resources.pak',
        ],
      },
    }],
    ['OS=="mac"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/<(mac_product_name) Framework.framework/',
          '<(PRODUCT_DIR)/<(mac_product_name).app/',
          '<(PRODUCT_DIR)/osmesa.so',
          '<(PRODUCT_DIR)/ppapi_tests.plugin/Contents/MacOS/ppapi_tests',
        ],
      },
    }],
    ['OS=="mac" and asan==1 and fastbuild==0', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/<(mac_product_name) Framework.framework/',
          '<(PRODUCT_DIR)/<(mac_product_name).app.dSYM/',
          '<(PRODUCT_DIR)/interactive_ui_tests.dSYM/',
          '<(PRODUCT_DIR)/osmesa.so.dSYM/',
          '<(PRODUCT_DIR)/ppapi_tests.plugin.dSYM/',
        ],
      },
    }],
    ['OS=="win"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/chrome_elf.dll',
          '<(PRODUCT_DIR)/crashpad_handler.exe',
          '<(PRODUCT_DIR)/d3dcompiler_47.dll',
          '<(PRODUCT_DIR)/libEGL.dll',
          '<(PRODUCT_DIR)/libGLESv2.dll',
          '<(PRODUCT_DIR)/osmesa.dll',
          '<(PRODUCT_DIR)/ppapi_tests.dll',
        ],
      },
    }],
    ['OS=="win" and target_arch=="ia32"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/wow_helper.exe',
        ],
      },
    }],
    ['OS=="win" and (fastbuild==0 or fastbuild==1)', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/interactive_ui_tests.exe.pdb',
        ],
      },
    }],
    ['OS=="win" and kasko==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/kasko.dll',
        ],
      },
    }],
    ['chromeos==1', {
      'variables': {
        'files': [
          '../google_apis/test/',
          '<(PRODUCT_DIR)/keyboard_resources.pak',
          '<(PRODUCT_DIR)/nacl_helper',
          '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
          '<(PRODUCT_DIR)/resources/chromeos/',
          'browser/chromeos/login/test/https_forwarder.py',
        ],
      },
    }],
  ],
  'includes': [
    '../base/base.isolate',
    '../gin/v8.isolate',
  ],
}
