chromevox_tests.gypi revision 116680a4aac90f2aa7413d9095a592090648e557
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.
44          'rule_name': 'js2webui',
45          'extension': 'js',
46          'msvs_external_rule': 1,
47          'inputs': [
48            '<(gypv8sh)',
49            '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
50            '<(mock_js)',
51            '<(test_api_js)',
52            '<(js2gtest)',
53            '<(chromevox_test_deps_js_file)',
54            'testing/chromevox_unittest_base.js',
55          ],
56          'outputs': [
57            '<(INTERMEDIATE_DIR)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-gen.cc',
58            '<(PRODUCT_DIR)/test_data/chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).js',
59          ],
60          'process_outputs_as_sources': 1,
61          'action': [
62            'python',
63            '<(gypv8sh)',
64            '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
65            '--deps_js', '<(chromevox_test_deps_js_file)',
66            '<(mock_js)',
67            '<(test_api_js)',
68            '<(js2gtest)',
69            'webui',
70            '<(RULE_INPUT_PATH)',
71            'chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).js',
72            '<@(_outputs)',
73          ],
74        },
75        {
76          # A JavaScript test that runs in the ChromeVox background page's
77          # isolate.
78          'rule_name': 'js2extension',
79          'extension': 'extjs',
80          'msvs_external_rule': 1,
81          'inputs': [
82            '<(gypv8sh)',
83            '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
84            '<(mock_js)',
85            '<(test_api_js)',
86            '<(js2gtest)',
87            'testing/chromevox_unittest_base.js',
88          ],
89          'outputs': [
90            '<(INTERMEDIATE_DIR)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-gen.cc',
91            '<(PRODUCT_DIR)/test_data/chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).extjs',
92          ],
93          'process_outputs_as_sources': 1,
94          'action': [
95            'python',
96            '<(gypv8sh)',
97            '<(PRODUCT_DIR)/d8<(EXECUTABLE_SUFFIX)',
98            '<(mock_js)',
99            '<(test_api_js)',
100            '<(js2gtest)',
101            'extension',
102            '<(RULE_INPUT_PATH)',
103            'chrome/browser/resources/chromeos/chromevox/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).extjs',
104            '<@(_outputs)',
105          ],
106        },
107      ],
108      'sources': [
109        '<(DEPTH)/chrome/browser/ui/webui/web_ui_test_handler.cc',
110        '<(DEPTH)/chrome/browser/ui/webui/web_ui_test_handler.h',
111        '<(DEPTH)/chrome/test/base/browser_tests_main.cc',
112        '<(DEPTH)/chrome/test/base/extension_load_waiter_one_shot.cc',
113        '<(DEPTH)/chrome/test/base/extension_load_waiter_one_shot.h',
114        '<(DEPTH)/chrome/test/base/extension_js_browser_test.cc',
115        '<(DEPTH)/chrome/test/base/extension_js_browser_test.h',
116        '<(DEPTH)/chrome/test/base/javascript_browser_test.cc',
117        '<(DEPTH)/chrome/test/base/javascript_browser_test.h',
118        '<(DEPTH)/chrome/test/base/test_chrome_web_ui_controller_factory.cc',
119        '<(DEPTH)/chrome/test/base/test_chrome_web_ui_controller_factory.h',
120        '<(DEPTH)/chrome/test/base/web_ui_browser_test.cc',
121        '<(DEPTH)/chrome/test/base/web_ui_browser_test.h',
122        '<(DEPTH)/chrome/browser/extensions/browsertest_util.cc',
123        '<(DEPTH)/chrome/browser/extensions/browsertest_util.h',
124
125        'common/aria_util_test.js',
126        'common/braille_text_handler_test.js',
127        'common/braille_util_test.js',
128        'common/command_store_test.js',
129        'common/cursor_selection_test.js',
130        'common/dom_util_test.js',
131        'common/editable_text_area_shadow_test.js',
132        'common/editable_text_test.js',
133        'common/find_util_test.js',
134        'common/key_sequence_test.js',
135        'common/math_semantic_tree_test.js',
136        'common/page_selection_test.js',
137        'common/selection_util_test.js',
138        'common/spannable_test.js',
139      ],
140      'conditions': [
141        ['use_chromevox_next==1', {
142          'sources': ['../chromevox2/cvox2/background/background.extjs'],
143        }],
144      ],
145    },  # target chromevox_tests
146    {
147      'target_name': 'chromevox_test_messages_js',
148      'type': 'none',
149      'actions': [
150        {
151          'action_name': 'test_messages_js',
152          'message': 'Generate <(_target_name)',
153          'variables': {
154            'english_messages_file': '<(chromevox_dest_dir)/_locales/en/messages.json',
155          },
156          'inputs': [
157            'tools/generate_test_messages.py',
158            '<(english_messages_file)',
159          ],
160          'outputs': [
161            '<(chromevox_test_messages_js_file)',
162          ],
163          'action': [
164            'python',
165            'tools/generate_test_messages.py',
166            '-o', '<(chromevox_test_messages_js_file)',
167            '<(english_messages_file)',
168          ],
169        },
170      ],
171    },  # target chromevox_test_messages_js
172    {
173      'target_name': 'chromevox_test_deps_js',
174      'type': 'none',
175      'actions': [
176        {
177          'action_name': 'deps_js',
178          'message': 'Generate <(_target_name)',
179          'variables': {
180            # Closure library directory relative to source tree root.
181            'closure_dir': 'chrome/third_party/chromevox/third_party/closure-library/closure/goog',
182            'depswriter_path': 'tools/generate_deps.py',
183            'js_files': [
184              '<!@(python tools/find_js_files.py . <(DEPTH)/<(closure_dir))',
185              '<(chromevox_test_messages_js_file)',
186            ],
187          },
188          'inputs': [
189            '<@(js_files)',
190            '<(depswriter_path)',
191          ],
192          'outputs': [
193            '<(chromevox_test_deps_js_file)',
194          ],
195          'action': [
196            'python',
197            '<(depswriter_path)',
198            '-w', '<(DEPTH)/<(closure_dir):<(closure_dir)',
199            '-w', '<(PRODUCT_DIR)/test_data:',
200            '-w', ':chrome/browser/resources/chromeos/chromevox',
201            '-o', '<(chromevox_test_deps_js_file)',
202            '<@(js_files)',
203          ],
204        },
205      ],
206      'dependencies': [
207        'chromevox_test_messages_js',
208      ],
209    },  # target chromevox_test_deps_js
210  ],
211}
212