| Index: base/android/jni_generator/jni_generator_tests.py
|
| diff --git a/base/android/jni_generator/jni_generator_tests.py b/base/android/jni_generator/jni_generator_tests.py
|
| index 3dd9097df816efa9c46485e05affa27cff5a995c..886b731afbe77638f573dec248414cb137ca705a 100755
|
| --- a/base/android/jni_generator/jni_generator_tests.py
|
| +++ b/base/android/jni_generator/jni_generator_tests.py
|
| @@ -56,6 +56,7 @@ class TestGenerator(unittest.TestCase):
|
|
|
| def testNatives(self):
|
| test_data = """"
|
| + interface OnFrameAvailableListener {}
|
| private native int nativeInit();
|
| private native void nativeDestroy(int nativeChromeBrowserProvider);
|
| private native long nativeAddBookmark(
|
| @@ -82,6 +83,7 @@ class TestGenerator(unittest.TestCase):
|
| int nativeDataFetcherImplAndroid,
|
| double alpha, double beta, double gamma);
|
| """
|
| + jni_generator.JniParams.ExtractImportsAndInnerClasses(test_data)
|
| natives = jni_generator.ExtractNatives(test_data)
|
| golden_natives = [
|
| NativeMethod(return_type='int', static=False,
|
| @@ -389,7 +391,7 @@ static bool RegisterNativesImpl(JNIEnv* env) {
|
| { "nativeGetInnerClass",
|
| "("
|
| ")"
|
| -"Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;",
|
| +"Lorg/chromium/example/jni_generator/SampleForTests$OnFrameAvailableListener;",
|
| reinterpret_cast<void*>(GetInnerClass) },
|
| { "nativeQueryBitmap",
|
| "("
|
| @@ -718,8 +720,14 @@ static bool RegisterNativesImpl(JNIEnv* env) {
|
|
|
| def testCalledByNatives(self):
|
| test_data = """"
|
| + import android.graphics.Bitmap;
|
| + import android.view.View;
|
| + import java.io.InputStream;
|
| +
|
| + class InnerClass {}
|
| +
|
| @CalledByNative
|
| - OnFrameAvailableListener showConfirmInfoBar(int nativeInfoBar,
|
| + InnerClass showConfirmInfoBar(int nativeInfoBar,
|
| String buttonOk, String buttonCancel, String title, Bitmap icon) {
|
| InfoBar infobar = new ConfirmInfoBar(nativeInfoBar, mContext,
|
| buttonOk, buttonCancel,
|
| @@ -727,7 +735,7 @@ static bool RegisterNativesImpl(JNIEnv* env) {
|
| return infobar;
|
| }
|
| @CalledByNative
|
| - OnFrameAvailableListener showAutoLoginInfoBar(int nativeInfoBar,
|
| + InnerClass showAutoLoginInfoBar(int nativeInfoBar,
|
| String realm, String account, String args) {
|
| AutoLoginInfoBar infobar = new AutoLoginInfoBar(nativeInfoBar, mContext,
|
| realm, account, args);
|
| @@ -762,10 +770,12 @@ static bool RegisterNativesImpl(JNIEnv* env) {
|
| @CalledByNativeUnchecked
|
| private void uncheckedCall(int iParam);
|
| """
|
| + jni_generator.JniParams.SetFullyQualifiedClass('org/chromium/Foo')
|
| + jni_generator.JniParams.ExtractImportsAndInnerClasses(test_data)
|
| called_by_natives = jni_generator.ExtractCalledByNatives(test_data)
|
| golden_called_by_natives = [
|
| CalledByNative(
|
| - return_type='OnFrameAvailableListener',
|
| + return_type='InnerClass',
|
| system_class=False,
|
| static=False,
|
| name='showConfirmInfoBar',
|
| @@ -780,7 +790,7 @@ static bool RegisterNativesImpl(JNIEnv* env) {
|
| unchecked=False,
|
| ),
|
| CalledByNative(
|
| - return_type='OnFrameAvailableListener',
|
| + return_type='InnerClass',
|
| system_class=False,
|
| static=False,
|
| name='showAutoLoginInfoBar',
|
| @@ -916,7 +926,7 @@ static ScopedJavaLocalRef<jobject> Java_TestJni_showConfirmInfoBar(JNIEnv* env,
|
| "Ljava/lang/String;"
|
| "Landroid/graphics/Bitmap;"
|
| ")"
|
| -"Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;",
|
| +"Lorg/chromium/Foo$InnerClass;",
|
| &g_TestJni_showConfirmInfoBar);
|
|
|
| jobject ret =
|
| @@ -946,7 +956,7 @@ static ScopedJavaLocalRef<jobject> Java_TestJni_showAutoLoginInfoBar(JNIEnv*
|
| "Ljava/lang/String;"
|
| "Ljava/lang/String;"
|
| ")"
|
| -"Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;",
|
| +"Lorg/chromium/Foo$InnerClass;",
|
| &g_TestJni_showAutoLoginInfoBar);
|
|
|
| jobject ret =
|
| @@ -1480,16 +1490,6 @@ static bool RegisterNativesImpl(JNIEnv* env) {
|
| """
|
| jni_from_java = jni_generator.JNIFromJavaSource(test_data, 'foo/bar')
|
|
|
| - def testRaisesOnUnknownDatatype(self):
|
| - test_data = """
|
| - class MyInnerClass {
|
| - private native int nativeInit(AnUnknownDatatype p0);
|
| - }
|
| - """
|
| - self.assertRaises(SyntaxError,
|
| - jni_generator.JNIFromJavaSource,
|
| - test_data, 'foo/bar')
|
| -
|
| def testRaisesOnNonJNIMethod(self):
|
| test_data = """
|
| class MyInnerClass {
|
| @@ -1527,15 +1527,57 @@ static bool RegisterNativesImpl(JNIEnv* env) {
|
| self.assertTrue(len(line) > 80,
|
| ('Expected #ifndef line to be > 80 chars: ', line))
|
|
|
| - def testExternalParamList(self):
|
| - script_dir = os.path.dirname(sys.argv[0])
|
| - external_param_list = [os.path.join(script_dir, 'class_list.jni')]
|
| - jni_generator.JniParams.ReadExternalParamList(external_param_list)
|
| - self.assertTrue('Lorg/chromium/base/SystemMessageHandler' in
|
| - jni_generator.JniParams._external_param_list)
|
| - self.assertRaises(AssertionError,
|
| - jni_generator.JniParams.ReadExternalParamList,
|
| - external_param_list)
|
| + def testImports(self):
|
| + import_header = """
|
| +// Copyright (c) 2012 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.
|
| +
|
| +package org.chromium.content.app;
|
| +
|
| +import android.app.Service;
|
| +import android.content.Context;
|
| +import android.content.Intent;
|
| +import android.graphics.SurfaceTexture;
|
| +import android.os.Bundle;
|
| +import android.os.IBinder;
|
| +import android.os.ParcelFileDescriptor;
|
| +import android.os.Process;
|
| +import android.os.RemoteException;
|
| +import android.util.Log;
|
| +import android.view.Surface;
|
| +
|
| +import java.util.ArrayList;
|
| +
|
| +import org.chromium.base.CalledByNative;
|
| +import org.chromium.base.JNINamespace;
|
| +import org.chromium.content.app.ContentMain;
|
| +import org.chromium.content.browser.SandboxedProcessConnection;
|
| +import org.chromium.content.common.ISandboxedProcessCallback;
|
| +import org.chromium.content.common.ISandboxedProcessService;
|
| +import org.chromium.content.common.SurfaceCallback;
|
| +
|
| +import static org.chromium.Bar.Zoo;
|
| +
|
| +class Foo {
|
| + public static class BookmarkNode implements Parcelable {
|
| + }
|
| + public interface PasswordListObserver {
|
| + }
|
| +}
|
| + """
|
| + jni_generator.JniParams.SetFullyQualifiedClass(
|
| + 'org/chromium/content/app/Foo')
|
| + jni_generator.JniParams.ExtractImportsAndInnerClasses(import_header)
|
| + self.assertTrue('Lorg/chromium/content/common/ISandboxedProcessService' in
|
| + jni_generator.JniParams._imports)
|
| + self.assertTrue('Lorg/chromium/Bar/Zoo' in
|
| + jni_generator.JniParams._imports)
|
| + self.assertTrue('Lorg/chromium/content/app/Foo$BookmarkNode' in
|
| + jni_generator.JniParams._inner_classes)
|
| + self.assertTrue('Lorg/chromium/content/app/Foo$PasswordListObserver' in
|
| + jni_generator.JniParams._inner_classes)
|
| +
|
|
|
| if __name__ == '__main__':
|
| unittest.main()
|
|
|