1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/mobile/android/base/tests/testFormHistory.java Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,100 @@ 1.4 +package org.mozilla.gecko.tests; 1.5 + 1.6 +import java.io.File; 1.7 + 1.8 +import org.mozilla.gecko.db.BrowserContract.FormHistory; 1.9 + 1.10 +import android.content.ContentResolver; 1.11 +import android.content.ContentValues; 1.12 +import android.content.Context; 1.13 +import android.net.Uri; 1.14 + 1.15 +/** 1.16 + * A basic form history contentprovider test. 1.17 + * - inserts an element in form history when it is not yet set up 1.18 + * - inserts an element in form history 1.19 + * - updates an element in form history 1.20 + * - deletes an element in form history 1.21 + */ 1.22 +public class testFormHistory extends BaseTest { 1.23 + private static final String DB_NAME = "formhistory.sqlite"; 1.24 + 1.25 + public void testFormHistory() { 1.26 + Context context = (Context)getActivity(); 1.27 + ContentResolver cr = context.getContentResolver(); 1.28 + ContentValues[] cvs = new ContentValues[1]; 1.29 + cvs[0] = new ContentValues(); 1.30 + 1.31 + blockForGeckoReady(); 1.32 + 1.33 + Uri formHistoryUri; 1.34 + Uri insertUri; 1.35 + Uri expectedUri; 1.36 + int numUpdated; 1.37 + int numDeleted; 1.38 + 1.39 + cvs[0].put("fieldname", "fieldname"); 1.40 + cvs[0].put("value", "value"); 1.41 + cvs[0].put("timesUsed", "0"); 1.42 + cvs[0].put("guid", "guid"); 1.43 + 1.44 + // Attempt to insert into the db 1.45 + formHistoryUri = FormHistory.CONTENT_URI; 1.46 + Uri.Builder builder = formHistoryUri.buildUpon(); 1.47 + formHistoryUri = builder.appendQueryParameter("profilePath", mProfile).build(); 1.48 + 1.49 + insertUri = cr.insert(formHistoryUri, cvs[0]); 1.50 + expectedUri = formHistoryUri.buildUpon().appendPath("1").build(); 1.51 + mAsserter.is(expectedUri.toString(), insertUri.toString(), "Insert returned correct uri"); 1.52 + SqliteCompare(DB_NAME, "SELECT * FROM moz_formhistory", cvs); 1.53 + 1.54 + cvs[0].put("fieldname", "fieldname2"); 1.55 + cvs[0].putNull("guid"); 1.56 + 1.57 + numUpdated = cr.update(formHistoryUri, cvs[0], null, null); 1.58 + mAsserter.is(1, numUpdated, "Correct number updated"); 1.59 + SqliteCompare(DB_NAME, "SELECT * FROM moz_formhistory", cvs); 1.60 + 1.61 + numDeleted = cr.delete(formHistoryUri, null, null); 1.62 + mAsserter.is(1, numDeleted, "Correct number deleted"); 1.63 + cvs = new ContentValues[0]; 1.64 + SqliteCompare(DB_NAME, "SELECT * FROM moz_formhistory", cvs); 1.65 + 1.66 + cvs = new ContentValues[1]; 1.67 + cvs[0] = new ContentValues(); 1.68 + cvs[0].put("fieldname", "fieldname"); 1.69 + cvs[0].put("value", "value"); 1.70 + cvs[0].put("timesUsed", "0"); 1.71 + cvs[0].putNull("guid"); 1.72 + 1.73 + insertUri = cr.insert(formHistoryUri, cvs[0]); 1.74 + expectedUri = formHistoryUri.buildUpon().appendPath("1").build(); 1.75 + mAsserter.is(expectedUri.toString(), insertUri.toString(), "Insert returned correct uri"); 1.76 + SqliteCompare(DB_NAME, "SELECT * FROM moz_formhistory", cvs); 1.77 + 1.78 + cvs[0].put("guid", "guid"); 1.79 + 1.80 + numUpdated = cr.update(formHistoryUri, cvs[0], null, null); 1.81 + mAsserter.is(1, numUpdated, "Correct number updated"); 1.82 + SqliteCompare(DB_NAME, "SELECT * FROM moz_formhistory", cvs); 1.83 + 1.84 + numDeleted = cr.delete(formHistoryUri, null, null); 1.85 + mAsserter.is(1, numDeleted, "Correct number deleted"); 1.86 + cvs = new ContentValues[0]; 1.87 + SqliteCompare(DB_NAME, "SELECT * FROM moz_formhistory", cvs); 1.88 + } 1.89 + 1.90 + @Override 1.91 + public void tearDown() throws Exception { 1.92 + // remove the entire signons.sqlite file 1.93 + File profile = new File(mProfile); 1.94 + File db = new File(profile, "formhistory.sqlite"); 1.95 + if (db.delete()) { 1.96 + mAsserter.dumpLog("tearDown deleted "+db.toString()); 1.97 + } else { 1.98 + mAsserter.dumpLog("tearDown did not delete "+db.toString()); 1.99 + } 1.100 + 1.101 + super.tearDown(); 1.102 + } 1.103 +}