chromevox_tests.gypi revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
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  },
12  'targets': [
13    {
14      'target_name': 'chromevox_tests',
15      'type': 'executable',
16      'dependencies': [
17        '<(DEPTH)/base/base.gyp:base',
18        '<(DEPTH)/base/base.gyp:base_i18n',
19        '<(DEPTH)/base/base.gyp:test_support_base',
20        '<(DEPTH)/chrome/chrome.gyp:browser',
21        '<(DEPTH)/chrome/chrome.gyp:renderer',
22        '<(DEPTH)/chrome/chrome.gyp:test_support_common',
23        '<(DEPTH)/chrome/chrome_resources.gyp:chrome_resources',
24        '<(DEPTH)/chrome/chrome_resources.gyp:chrome_strings',
25        '<(DEPTH)/chrome/chrome_resources.gyp:packed_extra_resources',
26        '<(DEPTH)/chrome/chrome_resources.gyp:packed_resources',
27        '<(DEPTH)/testing/gmock.gyp:gmock',
28        '<(DEPTH)/testing/gtest.gyp:gtest',
29        '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
30        'chromevox_test_deps_js',
31      ],
32      'defines': [
33        'HAS_OUT_OF_PROC_TEST_RUNNER',
34      ],
35      'include_dirs': [
36        '<(DEPTH)',
37        '<(SHARED_INTERMEDIATE_DIR)',
38      ],
39      'rules': [
40        {
41          # A JavaScript test that runs in an environment similar to a webui
42          # browser test.
43          'rule_name': 'js2webui',
44          'extension': 'js',
45          'msvs_external_rule': 1,
46          'inputs': [
47            '<(gypv8sh)',
48            '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
49            '<(mock_js)',
50            '<(test_api_js)',
51            '<(js2gtest)',
52            '<(chromevox_test_deps_js_file)',
53            'testing/chromevox_unittest_base.js',
54          ],
55          'outputs': [
56            '<(INTERMEDIATE_DIR)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-gen.cc',
57            '<(PRODUCT_DIR)/test_data/chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).js',
58          ],
59          'process_outputs_as_sources': 1,
60          'action': [
61            'python',
62            '<(gypv8sh)',
63            '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
64            '--deps_js', '<(chromevox_test_deps_js_file)',
65            '<(mock_js)',
66            '<(test_api_js)',
67            '<(js2gtest)',
68            'webui',
69            '<(RULE_INPUT_PATH)',
70            'chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).js',
71            '<@(_outputs)',
72          ],
73        },
74        {
75          # A JavaScript test that runs in the ChromeVox background page's
76          # isolate.
77          'rule_name': 'js2extension',
78          'extension': 'extjs',
79          'msvs_external_rule': 1,
80          'inputs': [
81            '<(gypv8sh)',
82            '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
83            '<(mock_js)',
84            '<(test_api_js)',
85            '<(js2gtest)',
86            'testing/chromevox_unittest_base.js',
87          ],
88          'outputs': [
89            '<(INTERMEDIATE_DIR)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-gen.cc',
90            '<(PRODUCT_DIR)/test_data/chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).extjs',
91          ],
92          'process_outputs_as_sources': 1,
93          'action': [
94            'python',
95            '<(gypv8sh)',
96            '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
97            '<(mock_js)',
98            '<(test_api_js)',
99            '<(js2gtest)',
100            'extension',
101            '<(RULE_INPUT_PATH)',
102            'chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).extjs',
103            '<@(_outputs)',
104          ],
105        },
106      ],
107      'sources': [
108        '<(DEPTH)/chrome/browser/ui/webui/web_ui_test_handler.cc',
109        '<(DEPTH)/chrome/browser/ui/webui/web_ui_test_handler.h',
110        '<(DEPTH)/chrome/test/base/browser_tests_main.cc',
111        '<(DEPTH)/chrome/test/base/extension_load_waiter_one_shot.cc',
112        '<(DEPTH)/chrome/test/base/extension_load_waiter_one_shot.h',
113        '<(DEPTH)/chrome/test/base/extension_js_browser_test.cc',
114        '<(DEPTH)/chrome/test/base/extension_js_browser_test.h',
115        '<(DEPTH)/chrome/test/base/javascript_browser_test.cc',
116        '<(DEPTH)/chrome/test/base/javascript_browser_test.h',
117        '<(DEPTH)/chrome/test/base/test_chrome_web_ui_controller_factory.cc',
118        '<(DEPTH)/chrome/test/base/test_chrome_web_ui_controller_factory.h',
119        '<(DEPTH)/chrome/test/base/web_ui_browser_test.cc',
120        '<(DEPTH)/chrome/test/base/web_ui_browser_test.h',
121        '<(DEPTH)/chrome/browser/extensions/browsertest_util.cc',
122        '<(DEPTH)/chrome/browser/extensions/browsertest_util.h',
123
124        'common/aria_util_test.js',
125        'common/command_store_test.js',
126        'common/cursor_selection_test.js',
127        'common/editable_text_area_shadow_test.js',
128        'common/editable_text_test.js',
129        'common/find_util_test.js',
130        'common/key_sequence_test.js',
131        'common/math_semantic_tree_test.js',
132        'common/page_selection_test.js',
133        'common/selection_util_test.js',
134        'common/spannable_test.js',
135      ],
136      'conditions': [
137        ['use_chromevox_next==1', {
138          'sources': ['../chromevox2/cvox2/background/background.extjs'],
139        }],
140      ],
141    },  # target chromevox_tests
142    {
143      'target_name': 'chromevox_test_deps_js',
144      'type': 'none',
145      'actions': [
146        {
147          'action_name': 'deps_js',
148          'message': 'Generate <(_target_name)',
149          'variables': {
150            # Closure library directory relative to source tree root.
151            'closure_dir': 'chrome/third_party/chromevox/third_party/closure-library/closure/goog',
152            'depswriter_path': 'tools/generate_deps.py',
153            'js_files': [
154              '<!@(python tools/find_js_files.py . <(DEPTH)/<(closure_dir))',
155            ],
156          },
157          'inputs': [
158            '<@(js_files)',
159            '<(depswriter_path)',
160          ],
161          'outputs': [
162            '<(chromevox_test_deps_js_file)',
163          ],
164          'action': [
165            'python',
166            '<(depswriter_path)',
167            '-w', '<(DEPTH)/<(closure_dir):<(closure_dir)',
168            '-w', ':chrome/browser/resources/chromeos/chromevox',
169            '-o', '<(chromevox_test_deps_js_file)',
170            '<@(js_files)',
171          ],
172        },
173      ],
174    },
175  ],
176}
177