package com.applang.berichtsheft.test;
import static com.applang.Util1.*;
import static com.applang.Util2.*;
import java.io.File;
import com.jayway.android.robotium.solo.Solo;
import android.app.Activity;
import android.app.Instrumentation;
import android.test.*;
public class InfraTests<T extends Activity> extends ActivityInstrumentationTestCase2<T>
{
public InfraTests(String pkg, Class<T> activityClass) {
super(pkg, activityClass);
}
protected Solo solo;
@Override
protected void setUp() throws Exception {
super.setUp();
mActivity = getActivity();
mInstrumentation = getInstrumentation();
dbFileNames = databases(mActivity);
assertTrue(impex(mActivity, dbFileNames, true)); // Export
solo = new Solo(getInstrumentation(), mActivity);
}
@Override
protected void tearDown() throws Exception {
solo.finishOpenedActivities();
assertTrue(impex(mActivity, dbFileNames, false)); // Import
super.tearDown();
}
protected T mActivity;
protected Instrumentation mInstrumentation;
protected int androidLevel = 2;
protected String[] dbFileNames;
public static boolean impex(Activity activity, String[] fileNames, boolean export) {
return ImpexTask.doImpex(activity, fileNames, export);
};
public void _testImpex() throws InterruptedException {
for (boolean flag : new boolean[]{true,false}) {
assertTrue(isExternalStorageAvailable());
File directory = ImpexTask.directory(ImpexTask.getDatabasesPath(mActivity), !flag);
assertTrue(directory.exists());
String fileName = "databases/plant_info.db";
final File file = new File(directory, fileName);
if (file.exists())
file.delete();
// final CountDownLatch signal = new CountDownLatch(1);
ImpexTask.AsyncCallback callback = new ImpexTask.AsyncCallback() {
public void onTaskCompleted() {
assertTrue(file.exists());
// signal.countDown();
}
};
if (!flag)
ImpexTask.doImport(mActivity, new String[] { fileName }, callback);
else
ImpexTask.doExport(mActivity, new String[] { fileName }, callback);
// signal.await();
}
}
}