package com.mumux.androidtesting.uiautomator;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
import com.mumux.androidtesting.runner.ScenarioRunner;
import com.mumux.androidtesting.runner.ScenarioTestCase;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
public class ScenarioUiAutomatorTestCase extends UiAutomatorTestCase {
private final static String DEVICE_DIR = "/data/local/tmp";
public void testBasic() throws JSONException {
System.err.println("DEBUG - testBasic");
System.err.println("params=" + getParams());
final String inputDir = DEVICE_DIR + "/testrunner/input";
final String outputDir = DEVICE_DIR + "/testrunner/output";
String[] inputFiles = getParams().getString("input_files").split(",");
for (String inputFile : inputFiles) {
if (!new File(inputDir, inputFile).exists()) {
System.err.println("Input File " + inputFile + " can not be found in " + inputDir);
return;
}
}
JSONArray tests = new JSONArray();
ScenarioRunner runner = new ScenarioRunner(this, Runtime.getRuntime(), true, new File(outputDir));
runner.setPrintStream(System.err);
ScenarioTestCase testCase;
FileWriter file;
int counter = 0;
long start = System.currentTimeMillis();
try {
for (String inputFile : inputFiles) {
System.err.println(inputFile);
testCase = runner.run(new FileReader(new File(inputDir, inputFile)), counter);
System.err.println("testCase=" + testCase.toJson());
tests.put(testCase.toJson());
counter++;
}
JSONObject testResult = new JSONObject();
testResult.put("date", new Date());
testResult.put("duration", System.currentTimeMillis() - start);
testResult.put("tests", tests);
file = new FileWriter(outputDir + "/test.json");
file.write(testResult.toString());
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}