diff options
author | Guang Zhu <guangzhu@google.com> | 2010-05-04 15:46:17 -0700 |
---|---|---|
committer | Guang Zhu <guangzhu@google.com> | 2010-06-16 14:41:19 -0700 |
commit | 21a6703d6e00c6b267bce313d52a325ed9ff6e47 (patch) | |
tree | 05b15943eed45eb9d3e9db417e4686e5034cc005 | |
parent | a565b46ae2b942c54a322959d1d46ce15d529830 (diff) | |
download | packages_apps_Browser-21a6703d6e00c6b267bce313d52a325ed9ff6e47.zip packages_apps_Browser-21a6703d6e00c6b267bce313d52a325ed9ff6e47.tar.gz packages_apps_Browser-21a6703d6e00c6b267bce313d52a325ed9ff6e47.tar.bz2 |
improvement and fixes for bindings test (DO NOT MERGE)
* 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: I74dc42a7ca0442a84910441e535d950c049efc98
-rwxr-xr-x | tests/assets/bindings_test.html | 4 | ||||
-rw-r--r-- | tests/src/com/android/browser/JNIBindingsTest.java | 7 | ||||
-rw-r--r-- | tests/src/com/android/browser/JNIBindingsTestApp.java | 41 |
3 files changed, 44 insertions, 8 deletions
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(); } </script> 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<Browser private final static String TAG = "JNIBindingsTest"; + private static final String SDCARD_BINDINGS_TEST_HTML = "/sdcard/bindings_test.html"; + private static final int MSG_WEBKIT_DATA_READY = 101; private BrowserActivity mActivity = null; @@ -67,9 +74,11 @@ public class JNIBindingsTestApp extends ActivityInstrumentationTestCase2<Browser mWebView = webView; } + @Override public void run() { Looper.prepare(); mHandler = new Handler() { + @Override public void handleMessage(Message msg) { switch (msg.what) { case MSG_WEBKIT_DATA_READY: { @@ -102,6 +111,32 @@ public class JNIBindingsTestApp extends ActivityInstrumentationTestCase2<Browser mInst = getInstrumentation(); mInst.waitForIdleSync(); + extractAsset(); + } + + @Override + protected void tearDown() throws Exception { + removeAsset(); + super.tearDown(); + } + + protected void extractAsset() throws IOException { + InputStream in = getInstrumentation().getContext().getAssets().open("bindings_test.html"); + OutputStream out = new FileOutputStream(SDCARD_BINDINGS_TEST_HTML); + + byte[] buf = new byte[2048]; + int len; + + while ((len = in.read(buf)) >= 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<Browser }); } - public synchronized void testComplete() { + public synchronized void notifyComplete() { mTestDone = true; notify(); } @@ -193,7 +228,7 @@ public class JNIBindingsTestApp extends ActivityInstrumentationTestCase2<Browser Tab tab = mActivity.getTabControl().getCurrentTab(); WebView webView = tab.getWebView(); - webView.loadUrl("file:///sdcard/bindings_test.html"); + webView.loadUrl("file://" + SDCARD_BINDINGS_TEST_HTML); synchronized(this) { while(!mTestDone) { try { |