Home | History | Annotate | Download | only in chromevox
      1 # Copyright 2014 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 {
      6   'includes': [
      7     '../../../../js_unittest_vars.gypi',
      8   ],
      9   'variables': {
     10     'chromevox_test_deps_js_file': '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/chromeos/chromevox/test_deps.js',
     11     'chromevox_test_messages_js_file': '<(PRODUCT_DIR)/test_data/chrome/browser/resources/chromeos/chromevox/host/testing/test_messages.js',
     12   },
     13   'targets': [
     14     {
     15       'target_name': 'chromevox_tests',
     16       'type': 'executable',
     17       'dependencies': [
     18         '<(DEPTH)/base/base.gyp:base',
     19         '<(DEPTH)/base/base.gyp:base_i18n',
     20         '<(DEPTH)/base/base.gyp:test_support_base',
     21         '<(DEPTH)/chrome/chrome.gyp:browser',
     22         '<(DEPTH)/chrome/chrome.gyp:renderer',
     23         '<(DEPTH)/chrome/chrome.gyp:test_support_common',
     24         '<(DEPTH)/chrome/chrome_resources.gyp:chrome_resources',
     25         '<(DEPTH)/chrome/chrome_resources.gyp:chrome_strings',
     26         '<(DEPTH)/chrome/chrome_resources.gyp:packed_extra_resources',
     27         '<(DEPTH)/chrome/chrome_resources.gyp:packed_resources',
     28         '<(DEPTH)/testing/gmock.gyp:gmock',
     29         '<(DEPTH)/testing/gtest.gyp:gtest',
     30         '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
     31         'chromevox_test_deps_js',
     32       ],
     33       'defines': [
     34         'HAS_OUT_OF_PROC_TEST_RUNNER',
     35       ],
     36       'include_dirs': [
     37         '<(DEPTH)',
     38         '<(SHARED_INTERMEDIATE_DIR)',
     39       ],
     40       'rules': [
     41         {
     42           # A JavaScript test that runs in an environment similar to a webui
     43           # browser test.  This is meant for unit tests that test individual
     44           # components without depending on the ChromeVox extension.
     45           'rule_name': 'js2webui',
     46           'extension': 'unitjs',
     47           'msvs_external_rule': 1,
     48           'inputs': [
     49             '<(gypv8sh)',
     50             '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
     51             '<(mock_js)',
     52             '<(test_api_js)',
     53             '<(js2gtest)',
     54             '<(chromevox_test_deps_js_file)',
     55             'testing/assert_additions.js',
     56             'testing/chromevox_unittest_base.js',
     57           ],
     58           'outputs': [
     59             '<(INTERMEDIATE_DIR)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-gen.cc',
     60             '<(PRODUCT_DIR)/test_data/chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).js',
     61           ],
     62           'process_outputs_as_sources': 1,
     63           'action': [
     64             'python',
     65             '<(gypv8sh)',
     66             '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
     67             '--deps_js', '<(chromevox_test_deps_js_file)',
     68             '<(mock_js)',
     69             '<(test_api_js)',
     70             '<(js2gtest)',
     71             'webui',
     72             '<(RULE_INPUT_PATH)',
     73             'chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).unitjs',
     74             '<@(_outputs)',
     75           ],
     76         },
     77         {
     78           # A JavaScript test that runs in the ChromeVox background page's
     79           # isolate.
     80           'rule_name': 'js2extension',
     81           'extension': 'extjs',
     82           'msvs_external_rule': 1,
     83           'inputs': [
     84             '<(gypv8sh)',
     85             '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
     86             '<(mock_js)',
     87             '<(test_api_js)',
     88             '<(js2gtest)',
     89             'testing/chromevox_e2e_test_base.js',
     90             'testing/assert_additions.js',
     91           ],
     92           'outputs': [
     93             '<(INTERMEDIATE_DIR)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-gen.cc',
     94             '<(PRODUCT_DIR)/test_data/chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).extjs',
     95           ],
     96           'process_outputs_as_sources': 1,
     97           'action': [
     98             'python',
     99             '<(gypv8sh)',
    100             '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
    101             '<(mock_js)',
    102             '<(test_api_js)',
    103             '<(js2gtest)',
    104             'extension',
    105             '<(RULE_INPUT_PATH)',
    106             'chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).extjs',
    107             '<@(_outputs)',
    108           ],
    109         },
    110       ],
    111       'sources': [
    112         '<(DEPTH)/chrome/browser/ui/webui/web_ui_test_handler.cc',
    113         '<(DEPTH)/chrome/browser/ui/webui/web_ui_test_handler.h',
    114         '<(DEPTH)/chrome/test/base/browser_tests_main.cc',
    115         '<(DEPTH)/chrome/test/base/extension_load_waiter_one_shot.cc',
    116         '<(DEPTH)/chrome/test/base/extension_load_waiter_one_shot.h',
    117         '<(DEPTH)/chrome/test/base/extension_js_browser_test.cc',
    118         '<(DEPTH)/chrome/test/base/extension_js_browser_test.h',
    119         '<(DEPTH)/chrome/test/base/javascript_browser_test.cc',
    120         '<(DEPTH)/chrome/test/base/javascript_browser_test.h',
    121         '<(DEPTH)/chrome/test/base/test_chrome_web_ui_controller_factory.cc',
    122         '<(DEPTH)/chrome/test/base/test_chrome_web_ui_controller_factory.h',
    123         '<(DEPTH)/chrome/test/base/web_ui_browser_test.cc',
    124         '<(DEPTH)/chrome/test/base/web_ui_browser_test.h',
    125         '<(DEPTH)/chrome/browser/extensions/browsertest_util.cc',
    126         '<(DEPTH)/chrome/browser/extensions/browsertest_util.h',
    127 
    128         'common/aria_util_test.unitjs',
    129         'common/braille_text_handler_test.unitjs',
    130         'common/braille_util_test.unitjs',
    131         'common/command_store_test.unitjs',
    132         'common/content_editable_extractor_test.unitjs',
    133         'common/cursor_selection_test.unitjs',
    134         'common/dom_util_test.unitjs',
    135         'common/editable_text_area_shadow_test.unitjs',
    136         'common/editable_text_test.unitjs',
    137         'common/find_util_test.unitjs',
    138         'common/key_sequence_test.unitjs',
    139         'common/math_semantic_tree_test.unitjs',
    140         'common/page_selection_test.unitjs',
    141         'common/selection_util_test.unitjs',
    142         'common/spannable_test.unitjs',
    143         'chromevox/injected/event_watcher_test.unitjs',
    144         'chromevox/injected/live_regions_test.unitjs',
    145         'cvox2/background/background.extjs',
    146         'host/chrome/braille_display_manager_test.unitjs',
    147         'host/chrome/braille_input_handler_test.unitjs',
    148         'host/chrome/braille_integration_test.unitjs',
    149         'host/chrome/braille_table_test.extjs',
    150         'host/chrome/expanding_braille_translator_test.unitjs',
    151         'host/chrome/tts_background_test.extjs',
    152         'liblouis_nacl/liblouis_test.extjs',
    153         'walkers/character_walker_test.unitjs',
    154         'walkers/group_walker_test.unitjs',
    155         'walkers/object_walker_test.unitjs',
    156         'walkers/layout_line_walker_test.unitjs',
    157         'walkers/math_shifter_test.unitjs',
    158         'walkers/sentence_walker_test.unitjs',
    159         'walkers/structural_line_walker_test.unitjs',
    160         'walkers/table_walker_test.unitjs',
    161         'walkers/word_walker_test.unitjs',
    162       ],
    163     },  # target chromevox_tests
    164     {
    165       'target_name': 'chromevox_test_messages_js',
    166       'type': 'none',
    167       'actions': [
    168         {
    169           'action_name': 'test_messages_js',
    170           'message': 'Generate <(_target_name)',
    171           'variables': {
    172             'english_messages_file': '<(chromevox_dest_dir)/_locales/en/messages.json',
    173           },
    174           'inputs': [
    175             'tools/generate_test_messages.py',
    176             '<(english_messages_file)',
    177           ],
    178           'outputs': [
    179             '<(chromevox_test_messages_js_file)',
    180           ],
    181           'action': [
    182             'python',
    183             'tools/generate_test_messages.py',
    184             '-o', '<(chromevox_test_messages_js_file)',
    185             '<(english_messages_file)',
    186           ],
    187         },
    188       ],
    189     },  # target chromevox_test_messages_js
    190     {
    191       'target_name': 'chromevox_test_deps_js',
    192       'type': 'none',
    193       'actions': [
    194         {
    195           'action_name': 'deps_js',
    196           'message': 'Generate <(_target_name)',
    197           'variables': {
    198             # Closure library directory relative to source tree root.
    199             'closure_dir': 'chrome/third_party/chromevox/third_party/closure-library/closure/goog',
    200             'depswriter_path': 'tools/generate_deps.py',
    201             'js_files': [
    202               '<!@(python tools/find_js_files.py . <(DEPTH)/<(closure_dir))',
    203               '<(chromevox_test_messages_js_file)',
    204             ],
    205           },
    206           'inputs': [
    207             '<@(js_files)',
    208             '<(depswriter_path)',
    209           ],
    210           'outputs': [
    211             '<(chromevox_test_deps_js_file)',
    212           ],
    213           'action': [
    214             'python',
    215             '<(depswriter_path)',
    216             '-w', '<(DEPTH)/<(closure_dir):<(closure_dir)',
    217             '-w', '<(PRODUCT_DIR)/test_data:',
    218             '-w', ':chrome/browser/resources/chromeos/chromevox',
    219             '-o', '<(chromevox_test_deps_js_file)',
    220             '<@(js_files)',
    221           ],
    222         },
    223       ],
    224       'dependencies': [
    225         'chromevox_test_messages_js',
    226       ],
    227     },  # target chromevox_test_deps_js
    228   ],
    229 }
    230