# Copyright (c) 2012 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)/unit_tests<(EXECUTABLE_SUFFIX)',
          '--brave-new-test-launcher',
          '--test-launcher-bot-mode',
          '--asan=<(asan)',
          '--msan=<(msan)',
          '--tsan=<(tsan)',
        ],
      },
    }],
    ['use_x11==1', {
      'variables': {
        'command': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)',
          '<(PRODUCT_DIR)/unit_tests<(EXECUTABLE_SUFFIX)',
          '--brave-new-test-launcher',
          '--test-launcher-bot-mode',
          '--asan=<(asan)',
          '--msan=<(msan)',
          '--tsan=<(tsan)',
        ],
        'files': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)/xdisplaycheck<(EXECUTABLE_SUFFIX)',
        ],
      },
    }],
    ['OS=="android" or OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'files': [
          '../base/test/data/',
          '../components/test/data/',
          '../extensions/test/data/',
          '../google_apis/test/data/',
          '../net/data/',
          '../third_party/accessibility-audit/axs_testing.js',
          '../third_party/chaijs/chai.js',
          '../third_party/hunspell_dictionaries/',
          '../third_party/zlib/google/test/data/',
          '../tools/metrics/histograms/histograms.xml',
          'test/data/',
          'third_party/mock4js/',
        ],
      },
    }],
    ['OS=="android" or OS=="linux" or OS=="win"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/chrome_100_percent.pak',
          '<(PRODUCT_DIR)/locales/en-US.pak',
          '<(PRODUCT_DIR)/resources.pak',
        ],
      },
    }],
    ['OS=="linux" or OS=="win"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/chrome_200_percent.pak',
        ],
      },
    }],
    ['OS=="linux"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/libosmesa.so',
          '<(PRODUCT_DIR)/locales/fr.pak',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'files': [
          '../net/tools/testserver/',
          '../testing/test_env.py',
          '../third_party/pyftpdlib/',
          '../third_party/pywebsocket/',
          '../third_party/tlslite/',
          '<(PRODUCT_DIR)/pyproto/google/',
          '<(PRODUCT_DIR)/test_data/chrome/browser/resources/google_now/',
          '<(PRODUCT_DIR)/test_data/chrome/browser/resources/md_downloads/',
          '<(PRODUCT_DIR)/test_data/chrome/browser/resources/print_preview/',
          '<(PRODUCT_DIR)/test_data/chrome/renderer/resources/extensions/',
          '<(PRODUCT_DIR)/test_data/chrome/test/data/unit/',
          '<(PRODUCT_DIR)/test_data/ui/webui/',
        ],
      },
    }],
    ['OS=="linux" or OS=="mac"', {
      'variables': {
        'read_only': 1,
      },
    }],
    ['OS=="mac"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/<(mac_product_name) Framework.framework/',
          '<(PRODUCT_DIR)/osmesa.so',
          '<(PRODUCT_DIR)/test_data/chrome/safe_browsing_dmg/',
        ],
      },
    }],
    ['OS=="mac" and asan==1 and fastbuild==0', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/<(mac_product_name) Framework.framework.dSYM/',
          '<(PRODUCT_DIR)/osmesa.so.dSYM/',
          '<(PRODUCT_DIR)/unit_tests.dSYM/',
        ],
      },
    }],
    ['OS=="win"', {
      'variables': {
        'files': [
          '../ppapi/lib/gl/include/KHR/',
          '../skia/ext/data/',
          '../ui/base/glib/',
          '<(PRODUCT_DIR)/blacklist_test_dll_1.dll',
          '<(PRODUCT_DIR)/chrome_elf.dll',
          '<(PRODUCT_DIR)/osmesa.dll',
          '<(PRODUCT_DIR)/verifier_test_dll_1.dll',
          '<(PRODUCT_DIR)/verifier_test_dll_2.dll',
          'test/data/safe_browsing/signed_binary.dll',
        ],
        # Can't be enabled on Windows due to http://crbug.com/342913
        'read_only': 0,
      },
    }],
    ['OS=="win" and (fastbuild==0 or fastbuild==1)', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/unit_tests.exe.pdb',
        ],
      },
    }],
    ['OS=="win" and kasko==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/kasko.dll',
        ],
      },
    }],
    ['chromeos==1', {
      'variables': {
        'files': [
          '../chromeos/test/data/network/',
          '<(PRODUCT_DIR)/keyboard_resources.pak',
          '<(PRODUCT_DIR)/test_data/chrome/browser/resources/chromeos/',
        ],
      },
    }],
  ],
  'includes': [
    '../base/base.isolate',
    '../gin/v8.isolate',
    '../ui/gl/gl.isolate',
  ],
}
