From 0622f9689d1c3786a11c60cf0014cd517c51c21c Mon Sep 17 00:00:00 2001 From: Guang Zhu Date: Tue, 4 May 2010 15:46:17 -0700 Subject: improvement and fixes for bindings test * the name "testComplete" will cause test runner to actually execute it as a test case, which is not the intention here, changed to "notifyComplete" * the test depends on "/sdcard/bindings_test.html". since the same file is already being carried in the apk as asset, added a setup/teardown step to extract the file. this removes manual setup step for the tests. Change-Id: I45e1e9755ec829086fae6a36885153874f3a94a2 --- tests/assets/bindings_test.html | 4 +-- tests/src/com/android/browser/JNIBindingsTest.java | 7 ++-- .../com/android/browser/JNIBindingsTestApp.java | 41 ++++++++++++++++++++-- 3 files changed, 44 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/assets/bindings_test.html b/tests/assets/bindings_test.html index c20ccec..71f3438 100755 --- a/tests/assets/bindings_test.html +++ b/tests/assets/bindings_test.html @@ -175,7 +175,7 @@ function appendLog(msg) { function runTests() { // Assume that if the test isn't done after 10s that we failed. - window.setTimeout(function() { JNIBindingsTest.testComplete(); }, 10000); + window.setTimeout(function() { JNIBindingsTest.notifyComplete(); }, 10000); if (testPrimitiveTypes()) { appendLog("testPrimitiveTypes passed!"); @@ -231,7 +231,7 @@ function runTests() { appendLog("testParameterTypeMismatch failed!"); } - JNIBindingsTest.testComplete(); + JNIBindingsTest.notifyComplete(); } diff --git a/tests/src/com/android/browser/JNIBindingsTest.java b/tests/src/com/android/browser/JNIBindingsTest.java index bfa3ac1..ba3c66a 100644 --- a/tests/src/com/android/browser/JNIBindingsTest.java +++ b/tests/src/com/android/browser/JNIBindingsTest.java @@ -20,6 +20,7 @@ import android.test.AndroidTestCase; import android.util.Log; import java.util.Arrays; + import junit.framework.AssertionFailedError; public class JNIBindingsTest extends AndroidTestCase { @@ -34,9 +35,9 @@ public class JNIBindingsTest extends AndroidTestCase { mTestApp = testApp; } - public void testComplete() { + public void notifyComplete() { Log.v(LOGTAG, "Completing the test."); - mTestApp.testComplete(); + mTestApp.notifyComplete(); } public void printAssertionFailed(AssertionFailedError e) { @@ -232,7 +233,7 @@ public class JNIBindingsTest extends AndroidTestCase { assertEquals(expectedIntParam, intParam); assertEquals(expectedDoubleParam, doubleParam); assertEquals(expectedBooleanParam, booleanParam); - assertEquals(expectedCharParam, charParam);; + assertEquals(expectedCharParam, charParam); // EMULATE_JSC_BINDINGS JSC passes "undefined" for undefined types. assertEquals(expectedUndefinedParam, undefinedParam); diff --git a/tests/src/com/android/browser/JNIBindingsTestApp.java b/tests/src/com/android/browser/JNIBindingsTestApp.java index e01aca2..4f083f6 100644 --- a/tests/src/com/android/browser/JNIBindingsTestApp.java +++ b/tests/src/com/android/browser/JNIBindingsTestApp.java @@ -18,7 +18,6 @@ package com.android.browser; import android.app.Instrumentation; import android.net.http.SslError; -import android.os.Environment; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -29,6 +28,12 @@ import android.webkit.JsResult; import android.webkit.SslErrorHandler; import android.webkit.WebView; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + /** * Adds a JavaScript interface to the webview and calls functions on it to verify variables * are passed from JS to Java correctly. @@ -37,6 +42,8 @@ public class JNIBindingsTestApp extends ActivityInstrumentationTestCase2= 0 ) { + out.write(buf, 0, len); + } + out.close(); + in.close(); + } + + protected void removeAsset(){ + File fileToDelete = new File(SDCARD_BINDINGS_TEST_HTML); + fileToDelete.delete(); } /** @@ -183,7 +218,7 @@ public class JNIBindingsTestApp extends ActivityInstrumentationTestCase2