package org.wordpress.android; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.util.Log; import org.wordpress.android.WordPress; import org.wordpress.android.WordPressDB; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.lang.reflect.Field; import static junit.framework.Assert.*; public class TestUtils { private static String DATABASE_NAME = "wordpress"; public static SQLiteDatabase loadDBFromDump(Context targetContext, Context testContext, String filename) { WordPress.wpDB = new WordPressDB(targetContext); Field dbField; try { dbField = WordPressDB.class.getDeclaredField("db"); dbField.setAccessible(true); SQLiteDatabase db = (SQLiteDatabase) dbField.get(WordPress.wpDB); assertNotNull(db); // delete and recreate DB targetContext.deleteDatabase(DATABASE_NAME); targetContext.openOrCreateDatabase(DATABASE_NAME, 0, null); // Load file InputStream is = testContext.getAssets().open(filename); InputStreamReader inputStreamReader = new InputStreamReader(is); BufferedReader f = new BufferedReader(inputStreamReader); for (String line = f.readLine(); line != null; line = f.readLine()) { try { db.execSQL(line); } catch (android.database.sqlite.SQLiteException e ) { // ignore import errors } } f.close(); return db; } catch (NoSuchFieldException e) { assertTrue(e.toString(), false); } catch (IllegalAccessException e) { assertTrue(e.toString(), false); } catch (IOException e) { assertTrue(e.toString(), false); } return null; } }