# Copyright (c) 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)/content_browsertests<(EXECUTABLE_SUFFIX)',
          '--test-launcher-bot-mode',
          '--asan=<(asan)',
          '--msan=<(msan)',
          '--tsan=<(tsan)',
        ],
      },
    }],
    ['use_x11==1', {
      'variables': {
        'command': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)',
          '<(PRODUCT_DIR)/content_browsertests<(EXECUTABLE_SUFFIX)',
          '--test-launcher-bot-mode',
          '--asan=<(asan)',
          '--msan=<(msan)',
          '--tsan=<(tsan)',
        ],
        'files': [
          '../testing/xvfb.py',
          '<(PRODUCT_DIR)/xdisplaycheck<(EXECUTABLE_SUFFIX)',
        ],
      },
    }],
    ['chromeos==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/content_shell.pak',
        ],
      },
    }],
    ['OS=="android" or OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/content_shell.pak',
        ],
      },
    }],
    ['OS=="android" or OS=="linux" or OS=="mac" or OS=="win"', {
      'variables': {
        'files': [
          '../media/test/data/',
          '../net/data/',
          'test/data/',
        ],
      },
    }],
    ['OS=="linux"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/libosmesa.so',
        ],
      },
    }],
    ['OS=="linux" and enable_plugins==1', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/libppapi_tests.so',
        ],
      },
    }],
    ['enable_plugins==1', {
      'variables': {
        'files': [
          '../ppapi/tests/test_case.html',
          '../ppapi/tests/test_page.css',
        ],
      },
    }],
    ['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/',
        ],
      },
    }],
    ['OS=="mac"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/Content Shell.app/',
          '<(PRODUCT_DIR)/plugins/test_netscape_plugin.plugin/',
          '<(PRODUCT_DIR)/ppapi_tests.plugin/Contents/MacOS/ppapi_tests',
        ],
      },
    }],
    ['OS=="mac" and asan==1 and fastbuild==0', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/Content Shell Framework.framework.dSYM/',
          '<(PRODUCT_DIR)/Content Shell Helper.app.dSYM/',
          '<(PRODUCT_DIR)/Content Shell.app.dSYM/',
          '<(PRODUCT_DIR)/content_browsertests.dSYM/',
          '<(PRODUCT_DIR)/ppapi_tests.plugin.dSYM/',
          '<(PRODUCT_DIR)/test_netscape_plugin.plugin.dSYM/',
        ],
      },
    }],
    ['OS=="win"', {
      'variables': {
        'files': [
          '<(PRODUCT_DIR)/osmesa.dll',
          '<(PRODUCT_DIR)/plugins/np_test_netscape_plugin.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)/content_browsertests.exe.pdb',
        ],
      },
    }],
  ],
  'includes': [
    '../base/base.isolate',
    '../gin/v8.isolate',
    '../ui/gl/gl.isolate',
  ],
}
