32ed597d65ea98f4f5bf529d6b19a8f2464fad99
[platform/framework/web/crosswalk.git] / src / sync / sync_tests.gypi
1 # Copyright 2013 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   'targets': [
7     # Test support files for the 'sync_core' target.
8     # GN version: //sync:test_support_sync_core
9     {
10       'target_name': 'test_support_sync_core',
11       'type': 'static_library',
12       'variables': { 'enable_wexit_time_destructors': 1, },
13       'include_dirs': [
14         '..',
15       ],
16       'defines': [
17         'SYNC_TEST'
18       ],
19       'dependencies': [
20         '../base/base.gyp:base',
21         '../testing/gmock.gyp:gmock',
22         '../testing/gtest.gyp:gtest',
23         'sync',
24       ],
25       'export_dependent_settings': [
26         '../testing/gmock.gyp:gmock',
27         '../testing/gtest.gyp:gtest',
28         'sync',
29       ],
30       'sources': [
31         'internal_api/public/base/model_type_test_util.cc',
32         'internal_api/public/base/model_type_test_util.h',
33         'js/js_test_util.cc',
34         'js/js_test_util.h',
35         'sessions/test_util.cc',
36         'sessions/test_util.h',
37         'test/callback_counter.h',
38         'test/engine/fake_model_worker.cc',
39         'test/engine/fake_model_worker.h',
40         'test/engine/fake_sync_scheduler.cc',
41         'test/engine/fake_sync_scheduler.h',
42         'test/engine/injectable_sync_context_proxy.cc',
43         'test/engine/injectable_sync_context_proxy.h',
44         'test/engine/mock_connection_manager.cc',
45         'test/engine/mock_connection_manager.h',
46         'test/engine/mock_model_type_sync_proxy.cc',
47         'test/engine/mock_model_type_sync_proxy.h',
48         'test/engine/mock_model_type_sync_worker.cc',
49         'test/engine/mock_model_type_sync_worker.h',
50         'test/engine/mock_nudge_handler.cc',
51         'test/engine/mock_nudge_handler.h',
52         'test/engine/mock_update_handler.cc',
53         'test/engine/mock_update_handler.h',
54         'test/engine/single_type_mock_server.cc',
55         'test/engine/single_type_mock_server.h',
56         'test/engine/test_directory_setter_upper.cc',
57         'test/engine/test_directory_setter_upper.h',
58         'test/engine/test_id_factory.h',
59         'test/engine/test_syncable_utils.cc',
60         'test/engine/test_syncable_utils.h',
61         'test/fake_encryptor.cc',
62         'test/fake_encryptor.h',
63         'test/fake_sync_encryption_handler.cc',
64         'test/fake_sync_encryption_handler.h',
65         'test/mock_invalidation.cc',
66         'test/mock_invalidation.h',
67         'test/mock_invalidation_tracker.cc',
68         'test/mock_invalidation_tracker.h',
69         'test/trackable_mock_invalidation.cc',
70         'test/trackable_mock_invalidation.h',
71         'test/null_directory_change_delegate.cc',
72         'test/null_directory_change_delegate.h',
73         'test/null_transaction_observer.cc',
74         'test/null_transaction_observer.h',
75         'test/sessions/test_scoped_session_event_listener.h',
76         'test/sessions/mock_debug_info_getter.h',
77         'test/sessions/mock_debug_info_getter.cc',
78         'test/test_directory_backing_store.cc',
79         'test/test_directory_backing_store.h',
80         'test/test_transaction_observer.cc',
81         'test/test_transaction_observer.h',
82         'util/test_unrecoverable_error_handler.cc',
83         'util/test_unrecoverable_error_handler.h',
84       ],
85     },
86
87     # Test support files for the python sync test server.
88     # GN version: //sync:test_support_sync_testserver
89     {
90       'target_name': 'test_support_sync_testserver',
91       'type': 'static_library',
92       'variables': { 'enable_wexit_time_destructors': 1, },
93       'include_dirs': [
94         '..',
95       ],
96       'dependencies': [
97         '../base/base.gyp:base',
98         '../net/net.gyp:net_test_support',
99         # The sync test server uses Python modules generated by the sync protos.
100         '../third_party/protobuf/protobuf.gyp:py_proto',
101         'sync',
102       ],
103       'export_dependent_settings': [
104         '../base/base.gyp:base',
105         '../net/net.gyp:net_test_support',
106       ],
107       'sources': [
108         'test/local_sync_test_server.cc',
109         'test/local_sync_test_server.h',
110       ],
111     },
112
113     # Test support files for the fake sync server.
114     # GN version: //sync:test_support_sync_fake_server
115     {
116       'target_name': 'test_support_sync_fake_server',
117       'type': 'static_library',
118       'variables': { 'enable_wexit_time_destructors': 1, },
119       'include_dirs': [
120         '..',
121       ],
122       'dependencies': [
123         '../base/base.gyp:base',
124         '../net/net.gyp:net',
125         '../testing/gtest.gyp:gtest',
126         '../third_party/protobuf/protobuf.gyp:protobuf_lite',
127         'sync',
128       ],
129       'export_dependent_settings': [
130         'sync',
131       ],
132       'sources': [
133         'test/fake_server/bookmark_entity.cc',
134         'test/fake_server/bookmark_entity.h',
135         'test/fake_server/bookmark_entity_builder.cc',
136         'test/fake_server/bookmark_entity_builder.h',
137         'test/fake_server/entity_builder.cc',
138         'test/fake_server/entity_builder.h',
139         'test/fake_server/entity_builder_factory.cc',
140         'test/fake_server/entity_builder_factory.h',
141         'test/fake_server/fake_server.cc',
142         'test/fake_server/fake_server.h',
143         'test/fake_server/fake_server_entity.cc',
144         'test/fake_server/fake_server_entity.h',
145         'test/fake_server/fake_server_http_post_provider.cc',
146         'test/fake_server/fake_server_http_post_provider.h',
147         'test/fake_server/fake_server_network_resources.cc',
148         'test/fake_server/fake_server_network_resources.h',
149         'test/fake_server/fake_server_verifier.cc',
150         'test/fake_server/fake_server_verifier.h',
151         'test/fake_server/permanent_entity.cc',
152         'test/fake_server/permanent_entity.h',
153         'test/fake_server/tombstone_entity.cc',
154         'test/fake_server/tombstone_entity.h',
155         'test/fake_server/unique_client_entity.cc',
156         'test/fake_server/unique_client_entity.h',
157       ],
158     },
159
160     # Test support files for the 'sync_internal_api' target.
161     # GN version: //sync:test_support_sync_internal_api
162     {
163       'target_name': 'test_support_sync_internal_api',
164       'type': 'static_library',
165       'variables': { 'enable_wexit_time_destructors': 1, },
166       'include_dirs': [
167         '..',
168       ],
169       'defines': [
170         'SYNC_TEST'
171       ],
172       'dependencies': [
173         '../base/base.gyp:base',
174         '../testing/gtest.gyp:gtest',
175         'sync',
176         'test_support_sync_core',
177       ],
178       'export_dependent_settings': [
179         '../testing/gtest.gyp:gtest',
180         'sync',
181         'test_support_sync_core',
182       ],
183       'sources': [
184         'internal_api/public/test/fake_sync_manager.h',
185         'internal_api/public/test/null_sync_context_proxy.h',
186         'internal_api/public/test/sync_manager_factory_for_profile_sync_test.h',
187         'internal_api/public/test/test_entry_factory.h',
188         'internal_api/public/test/test_internal_components_factory.h',
189         'internal_api/public/test/test_user_share.h',
190         'internal_api/test/fake_sync_manager.cc',
191         'internal_api/test/null_sync_context_proxy.cc',
192         'internal_api/test/sync_manager_factory_for_profile_sync_test.cc',
193         'internal_api/test/sync_manager_for_profile_sync_test.cc',
194         'internal_api/test/sync_manager_for_profile_sync_test.h',
195         'internal_api/test/test_entry_factory.cc',
196         'internal_api/test/test_internal_components_factory.cc',
197         'internal_api/test/test_user_share.cc',
198       ],
199     },
200
201     # Test support files for the 'sync_api' target.
202     # GN version: //sync:test_support_sync_api
203     {
204       'target_name': 'test_support_sync_api',
205       'type': 'static_library',
206       'include_dirs': [
207         '..',
208       ],
209       'defines': [
210         'SYNC_TEST'
211       ],
212       'dependencies': [
213         '../testing/gmock.gyp:gmock',
214         'sync',
215       ],
216       'export_dependent_settings': [
217         '../testing/gmock.gyp:gmock',
218         'sync',
219       ],
220       'sources': [
221         'api/fake_syncable_service.cc',
222         'api/fake_syncable_service.h',
223         'api/fake_sync_change_processor.cc',
224         'api/fake_sync_change_processor.h',
225         'api/sync_change_processor_wrapper_for_test.cc',
226         'api/sync_change_processor_wrapper_for_test.h',
227         'api/sync_error_factory_mock.cc',
228         'api/sync_error_factory_mock.h',
229       ],
230     },
231
232     # The unit test executable for sync tests.
233     # GN version: //sync:sync_unit_tests
234     {
235       'target_name': 'sync_unit_tests',
236       'type': '<(gtest_target_type)',
237       # Typed-parametrized tests generate exit-time destructors.
238       'variables': { 'enable_wexit_time_destructors': 0, },
239       'defines': [
240         'SYNC_TEST',
241       ],
242       'dependencies': [
243         '../base/base.gyp:base',
244         '../base/base.gyp:run_all_unittests',
245         '../google_apis/google_apis.gyp:google_apis',
246         '../google_apis/google_apis.gyp:google_apis_test_support',
247         '../net/net.gyp:net',
248         '../net/net.gyp:net_test_support',
249         '../sql/sql.gyp:sql',
250         '../testing/gmock.gyp:gmock',
251         '../testing/gtest.gyp:gtest',
252         '../third_party/protobuf/protobuf.gyp:protobuf_lite',
253         'sync',
254         'test_support_sync_core',
255         'test_support_sync_internal_api',
256       ],
257       'include_dirs': [
258         '..',
259       ],
260       'sources': [
261         'api/attachments/attachment_id_unittest.cc',
262         'api/attachments/attachment_unittest.cc',
263         'api/attachments/fake_attachment_store_unittest.cc',
264         'api/sync_change_unittest.cc',
265         'api/sync_data_unittest.cc',
266         'api/sync_error_unittest.cc',
267         'api/sync_merge_result_unittest.cc',
268         'engine/apply_control_data_updates_unittest.cc',
269         'engine/backoff_delay_provider_unittest.cc',
270         'engine/directory_commit_contribution_unittest.cc',
271         'engine/directory_update_handler_unittest.cc',
272         'engine/entity_tracker_unittest.cc',
273         'engine/get_updates_processor_unittest.cc',
274         'engine/model_type_entity_unittest.cc',
275         'engine/model_type_sync_proxy_impl_unittest.cc',
276         'engine/model_type_sync_worker_impl_unittest.cc',
277         'engine/sync_scheduler_unittest.cc',
278         'engine/syncer_proto_util_unittest.cc',
279         'engine/syncer_unittest.cc',
280         'engine/syncer_util_unittest.cc',
281         'internal_api/attachments/attachment_downloader_impl_unittest.cc',
282         'internal_api/attachments/attachment_service_impl_unittest.cc',
283         'internal_api/attachments/attachment_service_proxy_unittest.cc',
284         'internal_api/attachments/attachment_uploader_impl_unittest.cc',
285         'internal_api/attachments/fake_attachment_downloader_unittest.cc',
286         'internal_api/attachments/fake_attachment_uploader_unittest.cc',
287         'internal_api/attachments/task_queue_unittest.cc',
288         'internal_api/debug_info_event_listener_unittest.cc',
289         'internal_api/http_bridge_unittest.cc',
290         'internal_api/js_mutation_event_observer_unittest.cc',
291         'internal_api/js_sync_encryption_handler_observer_unittest.cc',
292         'internal_api/js_sync_manager_observer_unittest.cc',
293         'internal_api/protocol_event_buffer_unittest.cc',
294         'internal_api/public/base/attachment_id_proto_unittest.cc',
295         'internal_api/public/base/cancelation_signal_unittest.cc',
296         'internal_api/public/base/enum_set_unittest.cc',
297         'internal_api/public/base/node_ordinal_unittest.cc',
298         'internal_api/public/base/ordinal_unittest.cc',
299         'internal_api/public/base/unique_position_unittest.cc',
300         'internal_api/public/change_record_unittest.cc',
301         'internal_api/public/engine/model_safe_worker_unittest.cc',
302         'internal_api/public/sessions/sync_session_snapshot_unittest.cc',
303         'internal_api/public/util/immutable_unittest.cc',
304         'internal_api/public/util/weak_handle_unittest.cc',
305         'internal_api/sync_backup_manager_unittest.cc',
306         'internal_api/sync_context_proxy_impl_unittest.cc',
307         'internal_api/sync_encryption_handler_impl_unittest.cc',
308         'internal_api/sync_manager_impl_unittest.cc',
309         'internal_api/sync_rollback_manager_base_unittest.cc',
310         'internal_api/sync_rollback_manager_unittest.cc',
311         'internal_api/syncapi_server_connection_manager_unittest.cc',
312         'js/js_event_details_unittest.cc',
313         'js/sync_js_controller_unittest.cc',
314         'protocol/proto_enum_conversions_unittest.cc',
315         'protocol/proto_value_conversions_unittest.cc',
316         'sessions/model_type_registry_unittest.cc',
317         'sessions/nudge_tracker_unittest.cc',
318         'sessions/status_controller_unittest.cc',
319         'syncable/deferred_on_disk_directory_backing_store_unittest.cc',
320         'syncable/directory_backing_store_unittest.cc',
321         'syncable/directory_unittest.cc',
322         'syncable/directory_unittest.h',
323         'syncable/entry_kernel_unittest.cc',
324         'syncable/model_type_unittest.cc',
325         'syncable/nigori_util_unittest.cc',
326         'syncable/parent_child_index_unittest.cc',
327         'syncable/syncable_enum_conversions_unittest.cc',
328         'syncable/syncable_id_unittest.cc',
329         'syncable/syncable_unittest.cc',
330         'syncable/syncable_util_unittest.cc',
331         'util/cryptographer_unittest.cc',
332         'util/data_type_histogram_unittest.cc',
333         'util/get_session_name_unittest.cc',
334         'util/nigori_unittest.cc',
335         'util/protobuf_unittest.cc',
336       ],
337       'conditions': [
338         # TODO(akalin): This is needed because histogram.cc uses
339         # leak_annotations.h, which pulls this in.  Make 'base'
340         # propagate this dependency.
341         ['OS=="linux" and use_allocator!="none"', {
342           'dependencies': [
343             '../base/allocator/allocator.gyp:allocator',
344           ],
345         }],
346         ['OS == "android"', {
347           'dependencies': [
348             '../testing/android/native_test.gyp:native_test_native_code',
349           ],
350         }],
351         ['OS=="linux" and chromeos==1', {
352           # Required by get_session_name_unittest.cc on Chrome OS.
353           'dependencies': [
354             '../chromeos/chromeos.gyp:chromeos',
355           ],
356         }],
357         ['OS == "ios"', {
358           'sources!': [
359             'internal_api/http_bridge_unittest.cc',
360           ],
361         }],
362       ],
363     },
364
365     # Test support files for using the Test Accounts service.
366     # GN version: //sync:test_support_accounts_client
367     {
368       'target_name': 'test_support_accounts_client',
369       'type': 'static_library',
370       'direct_dependent_settings': {
371         'include_dirs': [
372           '..',
373         ],
374       },
375       'dependencies': [
376         '../base/base.gyp:base',
377         '../net/net.gyp:net',
378       ],
379       'sources': [
380         'test/accounts_client/test_accounts_client.cc',
381         'test/accounts_client/test_accounts_client.h',
382         'test/accounts_client/url_request_context_getter.cc',
383         'test/accounts_client/url_request_context_getter.h',
384       ],
385     },
386
387     # The Sync end-to-end (and associated infrastructure) tests.
388     # GN version: //sync:sync_endtoend_tests
389     {
390       'target_name': 'sync_endtoend_tests',
391       'type': '<(gtest_target_type)',
392       'dependencies': [
393         '../base/base.gyp:run_all_unittests',
394         '../testing/gmock.gyp:gmock',
395         '../testing/gtest.gyp:gtest',
396         '../url/url.gyp:url_lib',
397         'test_support_accounts_client',
398       ],
399       'sources': [
400         'test/accounts_client/test_accounts_client_unittest.cc',
401       ],
402     },
403
404   ],
405   'conditions': [
406     ['OS != "ios"', {
407       'targets': [
408         # A tool that can be used to launch a python sync server instance.
409         {
410           'target_name': 'run_sync_testserver',
411           'type': 'executable',
412           'dependencies': [
413             '../base/base.gyp:base',
414             '../base/base.gyp:test_support_base',
415             '../net/net.gyp:net_test_support',
416             '../testing/gtest.gyp:gtest',
417             'test_support_sync_testserver',
418           ],
419           'sources': [
420             'tools/testserver/run_sync_testserver.cc',
421           ],
422         },
423       ],
424     }],
425     ['OS == "android"', {
426       'targets': [
427         {
428           'target_name': 'sync_javatests',
429           'type': 'none',
430           'variables': {
431             'java_in_dir': '../sync/android/javatests',
432           },
433           'dependencies': [
434             'sync_java',
435             'sync_java_test_support',
436             '../base/base.gyp:base_java_test_support',
437           ],
438           'includes': [ '../build/java.gypi' ],
439         },
440         {
441           'target_name': 'sync_java_test_support',
442           'type': 'none',
443           'variables': {
444             'java_in_dir': '../sync/test/android/javatests',
445           },
446           'dependencies': [
447             'sync_java',
448           ],
449           'includes': [ '../build/java.gypi' ],
450         },
451         {
452           'target_name': 'sync_fake_server_jni_headers',
453           'type': 'none',
454           'sources': [
455             '../chrome/android/sync_shell/javatests/src/chromium/chrome/browser/sync/FakeServerHelper.java',
456           ],
457           'variables': {
458             'jni_gen_package': 'sync/test/fake_server',
459             'jni_generator_ptr_type': 'long',
460           },
461           'includes': [ '../build/jni_generator.gypi' ],
462         },
463         {
464           'target_name': 'test_support_sync_fake_server_android',
465           'type': 'static_library',
466           'dependencies': [
467             'sync_fake_server_jni_headers',
468             'test_support_sync_fake_server',
469             '../base/base.gyp:base',
470           ],
471           'sources': [
472             'test/fake_server/android/fake_server_helper_android.cc',
473             'test/fake_server/android/fake_server_helper_android.h',
474           ],
475         },
476       ],
477     }],
478     ['OS == "android"', {
479       'targets': [
480         {
481           'target_name': 'sync_unit_tests_apk',
482           'type': 'none',
483           'dependencies': [
484             'sync_unit_tests',
485           ],
486           'variables': {
487             'test_suite_name': 'sync_unit_tests',
488           },
489           'includes': [ '../build/apk_test.gypi' ],
490         },
491       ],
492     }],
493   ],
494 }