resolved conflicts for merge of 53e083c9 to master
This commit is contained in:
@@ -17,7 +17,10 @@
|
||||
package com.android.dumprendertree;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.graphics.Bitmap;
|
||||
import android.net.http.SslError;
|
||||
import android.os.Bundle;
|
||||
@@ -36,23 +39,26 @@ import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.Vector;
|
||||
|
||||
public class TestShellActivity extends Activity implements LayoutTestController {
|
||||
|
||||
|
||||
static enum DumpDataType {DUMP_AS_TEXT, EXT_REPR, NO_OP}
|
||||
|
||||
|
||||
public class AsyncHandler extends Handler {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
if (msg.what == MSG_TIMEOUT) {
|
||||
mTimedOut = true;
|
||||
mCallback.timedOut(mWebView.getUrl());
|
||||
if(mCallback != null)
|
||||
mCallback.timedOut(mWebView.getUrl());
|
||||
requestWebKitData();
|
||||
return;
|
||||
} else if (msg.what == MSG_WEBKIT_DATA) {
|
||||
@@ -66,10 +72,10 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
|
||||
public void requestWebKitData() {
|
||||
Message callback = mHandler.obtainMessage(MSG_WEBKIT_DATA);
|
||||
|
||||
|
||||
if (mRequestedWebKitData)
|
||||
throw new AssertionError("Requested webkit data twice: " + mWebView.getUrl());
|
||||
|
||||
|
||||
mRequestedWebKitData = true;
|
||||
switch (mDumpDataType) {
|
||||
case DUMP_AS_TEXT:
|
||||
@@ -82,12 +88,12 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
finished();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
|
||||
|
||||
LinearLayout contentView = new LinearLayout(this);
|
||||
contentView.setOrientation(LinearLayout.VERTICAL);
|
||||
setContentView(contentView);
|
||||
@@ -99,57 +105,122 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
setupWebViewForLayoutTests(mWebView, mCallbackProxy);
|
||||
|
||||
contentView.addView(mWebView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT, 0.0f));
|
||||
|
||||
|
||||
mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
|
||||
|
||||
mHandler = new AsyncHandler();
|
||||
|
||||
|
||||
Intent intent = getIntent();
|
||||
if (intent != null) {
|
||||
executeIntent(intent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
executeIntent(intent);
|
||||
}
|
||||
|
||||
|
||||
private void executeIntent(Intent intent) {
|
||||
resetTestStatus();
|
||||
if (!Intent.ACTION_VIEW.equals(intent.getAction())) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
mTestUrl = intent.getStringExtra(TEST_URL);
|
||||
if (mTestUrl == null)
|
||||
if (mTestUrl == null) {
|
||||
mUiAutoTestPath = intent.getStringExtra(UI_AUTO_TEST);
|
||||
if(mUiAutoTestPath != null) {
|
||||
beginUiAutoTest();
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
mResultFile = intent.getStringExtra(RESULT_FILE);
|
||||
mTimeoutInMillis = intent.getIntExtra(TIMEOUT_IN_MILLIS, 0);
|
||||
|
||||
Log.v(LOGTAG, " Loading " + mTestUrl);
|
||||
mWebView.loadUrl(mTestUrl);
|
||||
|
||||
|
||||
if (mTimeoutInMillis > 0) {
|
||||
// Create a timeout timer
|
||||
Message m = mHandler.obtainMessage(MSG_TIMEOUT);
|
||||
mHandler.sendMessageDelayed(m, mTimeoutInMillis);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void beginUiAutoTest() {
|
||||
try {
|
||||
mTestListReader = new BufferedReader(
|
||||
new FileReader(mUiAutoTestPath));
|
||||
} catch (IOException ioe) {
|
||||
Log.e(LOGTAG, "Failed to open test list for read.", ioe);
|
||||
finishUiAutoTest();
|
||||
return;
|
||||
}
|
||||
moveToNextTest();
|
||||
}
|
||||
|
||||
private void finishUiAutoTest() {
|
||||
try {
|
||||
if(mTestListReader != null)
|
||||
mTestListReader.close();
|
||||
} catch (IOException ioe) {
|
||||
Log.w(LOGTAG, "Failed to close test list file.", ioe);
|
||||
}
|
||||
finished();
|
||||
}
|
||||
|
||||
private void moveToNextTest() {
|
||||
String url = null;
|
||||
try {
|
||||
url = mTestListReader.readLine();
|
||||
} catch (IOException ioe) {
|
||||
Log.e(LOGTAG, "Failed to read next test.", ioe);
|
||||
finishUiAutoTest();
|
||||
return;
|
||||
}
|
||||
if (url == null) {
|
||||
mUiAutoTestPath = null;
|
||||
finishUiAutoTest();
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setMessage("All tests finished. Exit?")
|
||||
.setCancelable(false)
|
||||
.setPositiveButton("Yes", new OnClickListener(){
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
TestShellActivity.this.finish();
|
||||
}
|
||||
})
|
||||
.setNegativeButton("No", new OnClickListener(){
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
dialog.cancel();
|
||||
}
|
||||
});
|
||||
builder.create().show();
|
||||
return;
|
||||
}
|
||||
url = "file://" + url;
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
intent.putExtra(TestShellActivity.TEST_URL, url);
|
||||
intent.putExtra(TIMEOUT_IN_MILLIS, 10000);
|
||||
executeIntent(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
mWebView.stopLoading();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
mWebView.destroy();
|
||||
mWebView = null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onLowMemory() {
|
||||
super.onLowMemory();
|
||||
@@ -163,13 +234,13 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
finished();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
File parentDir = new File(mResultFile).getParentFile();
|
||||
if (!parentDir.exists()) {
|
||||
parentDir.mkdirs();
|
||||
}
|
||||
|
||||
|
||||
FileOutputStream os = new FileOutputStream(mResultFile);
|
||||
if (timeout) {
|
||||
Log.w("Layout test: Timeout", mResultFile);
|
||||
@@ -192,22 +263,27 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
os.flush();
|
||||
os.close();
|
||||
} catch (IOException ex) {
|
||||
Log.e(LOGTAG, "Cannot write to " + mResultFile + ", " + ex.getMessage());
|
||||
Log.e(LOGTAG, "Cannot write to " + mResultFile + ", " + ex.getMessage());
|
||||
}
|
||||
|
||||
finished();
|
||||
}
|
||||
|
||||
|
||||
public void setCallback(TestShellCallback callback) {
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
|
||||
public void finished() {
|
||||
if (mCallback != null) {
|
||||
mCallback.finished();
|
||||
if (mUiAutoTestPath != null) {
|
||||
//don't really finish here
|
||||
moveToNextTest();
|
||||
} else {
|
||||
if (mCallback != null) {
|
||||
mCallback.finished();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void setDefaultDumpDataType(DumpDataType defaultDumpDataType) {
|
||||
mDefaultDumpDataType = defaultDumpDataType;
|
||||
}
|
||||
@@ -227,7 +303,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
String url = mWebView.getUrl();
|
||||
Log.v(LOGTAG, "waitUntilDone called: " + url);
|
||||
}
|
||||
|
||||
|
||||
public void notifyDone() {
|
||||
String url = mWebView.getUrl();
|
||||
Log.v(LOGTAG, "notifyDone called: " + url);
|
||||
@@ -236,7 +312,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
mChromeClient.onProgressChanged(mWebView, 100);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void display() {
|
||||
mWebView.invalidate();
|
||||
}
|
||||
@@ -302,7 +378,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
}
|
||||
|
||||
public void queueScript(String scriptToRunInCurrentContext) {
|
||||
mWebView.loadUrl("javascript:"+scriptToRunInCurrentContext);
|
||||
mWebView.loadUrl("javascript:"+scriptToRunInCurrentContext);
|
||||
}
|
||||
|
||||
public void repaintSweepHorizontally() {
|
||||
@@ -421,7 +497,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
result.confirm();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onJsConfirm(WebView view, String url, String message,
|
||||
JsResult result) {
|
||||
@@ -434,7 +510,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
result.confirm();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onJsPrompt(WebView view, String url, String message,
|
||||
String defaultValue, JsPromptResult result) {
|
||||
@@ -516,7 +592,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
private void resetTestStatus() {
|
||||
mWaitUntilDone = false;
|
||||
mDumpDataType = mDefaultDumpDataType;
|
||||
@@ -555,10 +631,12 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
private TestShellCallback mCallback;
|
||||
|
||||
private CallbackProxy mCallbackProxy;
|
||||
|
||||
|
||||
private String mTestUrl;
|
||||
private String mResultFile;
|
||||
private int mTimeoutInMillis;
|
||||
private String mUiAutoTestPath;
|
||||
private BufferedReader mTestListReader;
|
||||
|
||||
// States
|
||||
private boolean mTimedOut;
|
||||
@@ -580,13 +658,14 @@ public class TestShellActivity extends Activity implements LayoutTestController
|
||||
private boolean mCanOpenWindows;
|
||||
|
||||
static final String TIMEOUT_STR = "**Test timeout";
|
||||
|
||||
|
||||
static final int MSG_TIMEOUT = 0;
|
||||
static final int MSG_WEBKIT_DATA = 1;
|
||||
|
||||
static final String LOGTAG="TestShell";
|
||||
|
||||
|
||||
static final String TEST_URL = "TestUrl";
|
||||
static final String RESULT_FILE = "ResultFile";
|
||||
static final String TIMEOUT_IN_MILLIS = "TimeoutInMillis";
|
||||
static final String UI_AUTO_TEST = "UiAutoTest";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user