Updating sample plugin to test java class loading.
diff --git a/samples/BrowserPlugin/jni/background/BackgroundPlugin.cpp b/samples/BrowserPlugin/jni/background/BackgroundPlugin.cpp
index af518a9..0f90291 100644
--- a/samples/BrowserPlugin/jni/background/BackgroundPlugin.cpp
+++ b/samples/BrowserPlugin/jni/background/BackgroundPlugin.cpp
@@ -38,6 +38,7 @@
extern ANPLogInterfaceV0 gLogI;
extern ANPPaintInterfaceV0 gPaintI;
extern ANPSurfaceInterfaceV0 gSurfaceI;
+extern ANPSystemInterfaceV0 gSystemI;
extern ANPTypefaceInterfaceV0 gTypefaceI;
#define ARRAY_COUNT(array) (sizeof(array) / sizeof(array[0]))
@@ -66,6 +67,7 @@
test_bitmaps(); // android bitmaps
test_domAccess();
test_javascript();
+ test_loadJavaClass();
}
BackgroundPlugin::~BackgroundPlugin() {
@@ -421,3 +423,39 @@
// free the memory allocated within the browser
browser->memfree(stringMem);
}
+
+///////////////////////////////////////////////////////////////////////////////
+// Load Java Classes Tests
+///////////////////////////////////////////////////////////////////////////////
+
+void BackgroundPlugin::test_loadJavaClass() {
+
+ JNIEnv* env = NULL;
+ if (gVM->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) {
+ gLogI.log(inst(), kError_ANPLogType, " ---- LoadJavaTest: failed to get env");
+ return;
+ }
+
+ const char* className = "com.android.sampleplugin.BackgroundTest";
+ jclass backgroundClass = gSystemI.loadJavaClass(inst(), className);
+
+ if(!backgroundClass) {
+ gLogI.log(inst(), kError_ANPLogType, " ---- LoadJavaTest: failed to load class");
+ return;
+ }
+
+ jmethodID constructor = env->GetMethodID(backgroundClass, "<init>", "()V");
+ jmethodID addMethod = env->GetMethodID(backgroundClass, "addInt", "(II)I");
+ jobject backgroundObject = env->NewObject(backgroundClass, constructor);
+
+ if(!backgroundObject) {
+ gLogI.log(inst(), kError_ANPLogType, " ---- LoadJavaTest: failed to construct object");
+ return;
+ }
+
+ jint result = env->CallIntMethod(backgroundObject, addMethod, 2, 2);
+
+ if (result != 4) {
+ gLogI.log(inst(), kError_ANPLogType, " ---- LoadJavaTest: invalid result (%d != 4)", result);
+ }
+}