|  | #!/usr/bin/env python | 
|  | # Copyright 2016 The Chromium Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | from cpp_bundle_generator import CppBundleGenerator | 
|  | from model import Model | 
|  |  | 
|  | import json_schema | 
|  | import os | 
|  | import unittest | 
|  |  | 
|  | def _createCppBundleGenerator(file_path): | 
|  | json_object = json_schema.Load(file_path) | 
|  | model = Model() | 
|  | model.AddNamespace(json_object[0], file_path) | 
|  | cpp_bundle_generator = CppBundleGenerator( | 
|  | None, model, None, None, 'generated_api_schemas', | 
|  | None, None, None) | 
|  | return (cpp_bundle_generator, model) | 
|  |  | 
|  | def _getPlatformIfdefs(cpp_bundle_generator, model): | 
|  | return cpp_bundle_generator._GetPlatformIfdefs( | 
|  | model.namespaces.values()[0].functions.values()[0]) | 
|  |  | 
|  | class CppBundleGeneratorTest(unittest.TestCase): | 
|  | def testIfDefsForWinLinux(self): | 
|  | cpp_bundle_generator, model = _createCppBundleGenerator( | 
|  | 'test/function_platform_win_linux.json') | 
|  | self.assertEquals( | 
|  | 'defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))', | 
|  | _getPlatformIfdefs(cpp_bundle_generator, model)) | 
|  |  | 
|  | def testIfDefsForAll(self): | 
|  | cpp_bundle_generator, model = _createCppBundleGenerator( | 
|  | 'test/function_platform_all.json') | 
|  | self.assertEquals( | 
|  | 'defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || ' | 
|  | 'defined(OS_CHROMEOS)', | 
|  | _getPlatformIfdefs(cpp_bundle_generator, model)) | 
|  |  | 
|  | def testIfDefsForChromeOS(self): | 
|  | cpp_bundle_generator, model = _createCppBundleGenerator( | 
|  | 'test/function_platform_chromeos.json') | 
|  | self.assertEquals( | 
|  | 'defined(OS_CHROMEOS)', | 
|  | _getPlatformIfdefs(cpp_bundle_generator, model)) | 
|  |  | 
|  | if __name__ == '__main__': | 
|  | unittest.main() |