# Copyright 2008, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#    * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#    * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Import('env_test')

env_test = env_test.Clone()

env_test.Prepend(
    CPPPATH = [
        '$ICU38_DIR/public/common',
        '$ICU38_DIR/public/i18n',
        '$LIBXML_DIR/include',
        '$LIBXML_DIR/scons/include',
        '$SKIA_DIR/include',
        '$SKIA_DIR/include/corecg',
        '$SKIA_DIR/platform',
        '$ZLIB_DIR',
        '$LIBPNG_DIR',
        '$GTEST_DIR/include',
        'third_party/wtl/include',
        'tools/build/win',
        '..',
    ],
    CPPDEFINES = [
        'USE_HUNSPELL',
        'HUNSPELL_CHROME_CLIENT',
        'LIBXML_STATIC',
        'PNG_USER_CONFIG',
        'CHROME_PNG_WRITE_SUPPORT',
        'UNIT_TEST',
    ],
    LIBS = [
        'base',
        'base_gfx',
        'bzip2',
        'googleurl',
        'gtest',
        'icuuc',
        'libjpeg',
        'libpng',
        'libxml',
        'libxslt',
        'modp_b64',
        'net',
        'skia',
        'v8',
        'zlib',

        'activex_shim',
        'WTF',
        'V8Bindings',
        'WebCore',
        'default_plugin',
        'Glue',
        'JavaScriptCore_pcre',
        'Port',
    ],
)

env_test.Prepend(
    LINKFLAGS = [
        '/INCREMENTAL',

        '/safeseh',
        '/dynamicbase',
        '/ignore:4199',
        '/nxcompat',

        '/MANIFEST',
        '/DELAYLOAD:"ws2_32.dll"',
        '/DELAYLOAD:"dwmapi.dll"',
        '/DELAYLOAD:"uxtheme.dll"',

        '/DEBUG',
        '/MACHINE:X86',
        '/FIXED:No',
    ],
    LIBS = [
        'winmm.lib',
        'rpcrt4.lib',
        'oleacc.lib',
        'comsupp.lib',
    ],
)

libs = [
    'snapshotv8.lib',

    'browser/browser.lib',
    'browser/views/browser_views.lib',
    'browser/debugger/debugger.lib',
    'common/common.lib',
    'installer/util/util.lib',
    'libjscre.lib',
    'plugin/plugin.lib',
    'renderer/renderer.lib',
    'test/chrome_plugin/test_chrome_plugin.lib',
    'third_party/hunspell/hunspell.lib',
    'third_party/sqlite/sqlite.lib',
    'views/views.lib',
]

unit_test_files = [
    'browser/autocomplete/autocomplete_unittest.cc',
    'browser/autocomplete/history_contents_provider_unittest.cc',
    'browser/autocomplete/history_url_provider_unittest.cc',
    'browser/autocomplete/keyword_provider_unittest.cc',
    'browser/back_forward_menu_model_unittest.cc',
    'browser/bookmark_bar_context_menu_controller_test.cc',
    'browser/bookmark_bar_model_unittest.cc',
    'browser/bookmark_drag_data_unittest.cc',
    'browser/cache_manager_host_unittest.cc',
    'browser/chrome_thread_unittest.cc',
    'browser/controller_unittest.cc',
    'browser/download_manager_unittest.cc',
    'browser/encryptor_unittest.cc',
    'browser/firefox_importer_unittest.cc',
    'browser/google_url_tracker_unittest.cc',
    'browser/history/expire_history_backend_unittest.cc',
    'browser/history/history_backend_unittest.cc',
    'browser/history/history_querying_unittest.cc',
    'browser/history/history_types_unittest.cc',
    'browser/history/history_unittest.cc',
    'browser/history/query_parser_unittest.cc',
    'browser/history/snippet_unittest.cc',
    'browser/history/starred_url_database_unittest.cc',
    'browser/history/text_database_manager_unittest.cc',
    'browser/history/text_database_unittest.cc',
    'browser/history/thumbnail_database_unittest.cc',
    'browser/history/url_database_unittest.cc',
    'browser/history/visit_database_unittest.cc',
    'browser/history/visit_tracker_unittest.cc',
    'browser/importer_unittest.cc',
    'browser/metrics_log_unittest.cc',
    'browser/metrics_response_unittest.cc',
    'browser/navigation_controller_unittest.cc',
    'browser/navigation_profiler_unittest.cc',
    'browser/net/dns_host_info_unittest.cc',
    'browser/net/dns_master_unittest.cc',
    'browser/page_load_tracker_unittest.cc',
    'browser/password_form_manager_unittest.cc',
    'browser/printing/page_number_unittest.cc',
    'browser/printing/page_overlays_unittest.cc',
    'browser/printing/page_range_unittest.cc',
    'browser/printing/page_setup_unittest.cc',
    'browser/printing/units_unittest.cc',
    'browser/printing/win_printing_context_unittest.cc',
    'browser/profile_manager_unittest.cc',
    'browser/renderer_security_policy_unittest.cc',
    'browser/resource_dispatcher_host_unittest.cc',
    'browser/rlz/rlz_unittest.cc',
    'browser/safe_browsing/bloom_filter_unittest.cc',
    'browser/safe_browsing/chunk_range_unittest.cc',
    'browser/safe_browsing/protocol_manager_unittest.cc',
    'browser/safe_browsing/protocol_parser_unittest.cc',
    'browser/safe_browsing/safe_browsing_database_unittest.cc',
    'browser/safe_browsing/safe_browsing_util_unittest.cc',
    'browser/save_package_unittest.cc',
    'browser/session_backend_unittest.cc',
    'browser/session_service_test_helper.cc',
    'browser/session_service_unittest.cc',
    'browser/site_instance_unittest.cc',
    'browser/tabs/tab_strip_model_unittest.cc',
    'browser/template_url_model_unittest.cc',
    'browser/template_url_parser_unittest.cc',
    'browser/template_url_unittest.cc',
    'browser/title_chomper_unittest.cc',
    'browser/url_fetcher_unittest.cc',
    'browser/url_fixer_upper_unittest.cc',
    'browser/views/bookmark_bar_view_test.cc',
    'browser/views/bookmark_editor_view_unittest.cc',
    'browser/views/keyword_editor_view_unittest.cc',
    'browser/visitedlink_unittest.cc',
    'browser/web_contents_unittest.cc',
    'browser/webdata/web_database_unittest.cc',
    'browser/window_sizer_unittest.cc',
    'common/animation_unittest.cc',
    'common/bzip2_unittest.cc',
    'common/chrome_plugin_unittest.cc',
    'common/gfx/emf_unittest.cc',
    'common/gfx/icon_util_unittest.cc',
    'common/gfx/url_elider_unittest.cc',
    'common/ipc_message_unittest.cc',
    'common/ipc_sync_channel_unittest.cc',
    'common/ipc_sync_message_unittest.cc',
    'common/jpeg_codec_unittest.cc',
    'common/json_value_serializer_unittest.cc',
    'common/l10n_util_unittest.cc',
    'common/mru_cache_unittest.cc',
    'common/notification_service_unittest.cc',
    'common/os_exchange_data_unittest.cc',
    'common/pref_member_unittest.cc',
    'common/pref_service_unittest.cc',
    'common/resource_dispatcher_unittest.cc',
    'common/time_format_unittest.cc',
    'common/win_util_unittest.cc',
    'renderer/net/render_dns_master_unittest.cc',
    'renderer/net/render_dns_queue_unittest.cc',
    'renderer/spellcheck_unittest.cc',
    'views/focus_manager_unittest.cc',
    'views/grid_layout_unittest.cc',
    'views/view_unittest.cc',
    'test/testing_profile.cc',
    'test/ui/view_event_test_base.cc',
    'test/unit/run_all_unittests.cc',
    # Commented out for now because googleurl_tests doesn't build with
    # gtest; see ../build/SConscript.googleurl.
    #'$GOOGLEURL_DIR/googleurl_tests.lib',
    '$NET_DIR/url_request/url_request_test_job$OBJSUFFIX',

    env_test['BROWSER_RES'],
    env_test['TEST_DATA_RES'],
]

unit_tests = env_test.ChromeTestProgram('unit_tests', unit_test_files + libs)

i = env_test.Install('$TARGET_ROOT', unit_tests)
Alias('chrome', i)