diff options
author | Vasu Nori <vnori@google.com> | 2011-03-14 19:22:16 -0700 |
---|---|---|
committer | Vasu Nori <vnori@google.com> | 2011-03-21 16:02:25 -0700 |
commit | cc1eaf6f7b81eaae21c01cbf4cf6f27dc3970774 (patch) | |
tree | a8697fe0cb7fb73adebac6982d78ac5faf53a68c /core/tests | |
parent | b2613555f654d485d9882c662384c4c2fcd89c2b (diff) | |
download | frameworks_base-cc1eaf6f7b81eaae21c01cbf4cf6f27dc3970774.zip frameworks_base-cc1eaf6f7b81eaae21c01cbf4cf6f27dc3970774.tar.gz frameworks_base-cc1eaf6f7b81eaae21c01cbf4cf6f27dc3970774.tar.bz2 |
bug:4090903 allow bindargs on attach database statement
code incorrectly assumed that certain statements (like ATTACH DATABASE)
will never have bindargs.
Change-Id: I62eddbdf8e15947e8debf5052c7248113a3b9b57
Diffstat (limited to 'core/tests')
-rw-r--r-- | core/tests/coretests/src/android/database/sqlite/SQLiteDatabaseTest.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/core/tests/coretests/src/android/database/sqlite/SQLiteDatabaseTest.java b/core/tests/coretests/src/android/database/sqlite/SQLiteDatabaseTest.java index 39258ae..5ef8d11 100644 --- a/core/tests/coretests/src/android/database/sqlite/SQLiteDatabaseTest.java +++ b/core/tests/coretests/src/android/database/sqlite/SQLiteDatabaseTest.java @@ -31,9 +31,11 @@ import android.test.suitebuilder.annotation.MediumTest; import android.test.suitebuilder.annotation.SmallTest; import android.test.suitebuilder.annotation.Suppress; import android.util.Log; +import android.util.Pair; import java.io.File; import java.util.ArrayList; +import java.util.List; public class SQLiteDatabaseTest extends AndroidTestCase { private static final String TAG = "DatabaseGeneralTest"; @@ -892,6 +894,49 @@ public class SQLiteDatabaseTest extends AndroidTestCase { c.close(); } + @SmallTest + public void testAttachDb() { + String newDb = "/sdcard/mydata.db"; + File f = new File(newDb); + if (f.exists()) { + f.delete(); + } + assertFalse(f.exists()); + SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(newDb, null); + db.execSQL("create table test1 (i int);"); + db.execSQL("insert into test1 values(1);"); + db.execSQL("insert into test1 values(11);"); + Cursor c = null; + try { + c = db.rawQuery("select * from test1", null); + int count = c.getCount(); + Log.i(TAG, "count: " + count); + assertEquals(2, count); + } finally { + c.close(); + db.close(); + c = null; + } + + mDatabase.execSQL("attach database ? as newDb" , new String[]{newDb}); + Cursor c1 = null; + try { + c1 = mDatabase.rawQuery("select * from newDb.test1", null); + assertEquals(2, c1.getCount()); + } catch (Exception e) { + fail("unexpected exception: " + e.getMessage()); + } finally { + if (c1 != null) { + c1.close(); + } + } + List<Pair<String, String>> dbs = mDatabase.getAttachedDbs(); + for (Pair<String, String> p: dbs) { + Log.i(TAG, "attached dbs: " + p.first + " : " + p.second); + } + assertEquals(2, dbs.size()); + } + /** * http://b/issue?id=2943028 * SQLiteOpenHelper maintains a Singleton even if it is in bad state. |