| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Tests for jni_generator.py. | 6 """Tests for jni_generator.py. |
| 7 | 7 |
| 8 This test suite contains various tests for the JNI generator. | 8 This test suite contains various tests for the JNI generator. |
| 9 It exercises the low-level parser all the way up to the | 9 It exercises the low-level parser all the way up to the |
| 10 code generator and ensures the output matches a golden | 10 code generator and ensures the output matches a golden |
| (...skipping 1067 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1078 return format.getWidth(); | 1078 return format.getWidth(); |
| 1079 } | 1079 } |
| 1080 """ | 1080 """ |
| 1081 def willRaise(): | 1081 def willRaise(): |
| 1082 jni_generator.JNIFromJavaSource( | 1082 jni_generator.JNIFromJavaSource( |
| 1083 test_data, | 1083 test_data, |
| 1084 'org/chromium/media/VideoCaptureFactory', | 1084 'org/chromium/media/VideoCaptureFactory', |
| 1085 TestOptions()) | 1085 TestOptions()) |
| 1086 self.assertRaises(SyntaxError, willRaise) | 1086 self.assertRaises(SyntaxError, willRaise) |
| 1087 | 1087 |
| 1088 def testImplicitImport(self): | |
| 1089 test_data = """ | |
| 1090 package org.chromium.android_webview; | |
| 1091 | |
| 1092 %(IMPORT)s | |
| 1093 | |
| 1094 @CalledByNative | |
| 1095 private static void clientCertificatesCleared(Runnable callback) { | |
| 1096 if (callbaback == null) return; | |
| 1097 callback.run(); | |
| 1098 } | |
| 1099 """ | |
| 1100 def generate(import_clause): | |
| 1101 jni_generator.JNIFromJavaSource( | |
| 1102 test_data % {'IMPORT': import_clause}, | |
| 1103 'org/chromium/android_webview/AwContentStatics', | |
| 1104 TestOptions()) | |
| 1105 # Ensure it raises without the import. | |
| 1106 self.assertRaises(SyntaxError, lambda: generate('')) | |
| 1107 | |
| 1108 # Ensure it's fine with the import. | |
| 1109 generate('import java.lang.Runnable;') | |
| 1110 | |
| 1111 def testSingleJNIAdditionalImport(self): | 1088 def testSingleJNIAdditionalImport(self): |
| 1112 test_data = """ | 1089 test_data = """ |
| 1113 package org.chromium.foo; | 1090 package org.chromium.foo; |
| 1114 | 1091 |
| 1115 @JNIAdditionalImport(Bar.class) | 1092 @JNIAdditionalImport(Bar.class) |
| 1116 class Foo { | 1093 class Foo { |
| 1117 | 1094 |
| 1118 @CalledByNative | 1095 @CalledByNative |
| 1119 private static void calledByNative(Bar.Callback callback) { | 1096 private static void calledByNative(Bar.Callback callback) { |
| 1120 } | 1097 } |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1166 test_result = unittest.main(argv=argv[0:1], exit=False) | 1143 test_result = unittest.main(argv=argv[0:1], exit=False) |
| 1167 | 1144 |
| 1168 if test_result.result.wasSuccessful() and options.stamp: | 1145 if test_result.result.wasSuccessful() and options.stamp: |
| 1169 TouchStamp(options.stamp) | 1146 TouchStamp(options.stamp) |
| 1170 | 1147 |
| 1171 return not test_result.result.wasSuccessful() | 1148 return not test_result.result.wasSuccessful() |
| 1172 | 1149 |
| 1173 | 1150 |
| 1174 if __name__ == '__main__': | 1151 if __name__ == '__main__': |
| 1175 sys.exit(main(sys.argv)) | 1152 sys.exit(main(sys.argv)) |
| OLD | NEW |