package com.nolanlawson.apptracker.test; import android.test.ActivityInstrumentationTestCase2; import com.nolanlawson.apptracker.AppTrackerActivity; import com.nolanlawson.apptracker.data.AnalyzedLogLine; import com.nolanlawson.apptracker.helper.LogAnalyzer; public class LogAnalysisTest extends ActivityInstrumentationTestCase2<AppTrackerActivity> { public LogAnalysisTest() { super("com.nolanlawson.apptracker", AppTrackerActivity.class); } public void testCupcake() { testActivityLine("I/ActivityManager( 583): Starting activity: Intent { action=android.intent.action.MAIN flags=0x10000000 " + "comp={com.android.mms/com.android.mms.ui.ConversationList} }", "com.android.mms", "com.android.mms.ui.ConversationList"); } public void testDonut() { testActivityLine("I/ActivityManager( 52): Starting activity: Intent { " + "act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 " + "cmp=com.android.browser/.BrowserActivity }", "com.android.browser", ".BrowserActivity"); } public void testEclair() { testActivityLine("I/ActivityManager( 118): Starting activity: " + "Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 " + "cmp=com.android.contacts/.DialtactsContactsEntryActivity bnds=[83,338][157,417] }", "com.android.contacts", ".DialtactsContactsEntryActivity"); } public void testGingerbread() { testActivityLine("I/ActivityManager( 175): Starting: Intent { act=android.intent.action.MAIN " + "cat=[android.intent.category.LAUNCHER] " + "flg=0x10200000 cmp=com.google.android.gm/.ConversationListActivityGmail } " + "from pid 1271", "com.google.android.gm", ".ConversationListActivityGmail"); } public void testHoneycomb() { testActivityLine("I/ActivityManager( 79): Starting: Intent { act=android.intent.action.MAIN " + "cat=[android.intent.category.LAUNCHER] flg=0x10200000 " + "cmp=com.android.email/.activity.Welcome } from pid 147", "com.android.email", ".activity.Welcome"); } public void testIcs() { testActivityLine("I/ActivityManager( 89): START {" + "act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] " + "flg=0x10200000 cmp=com.android.mms/.ui.ConversationList bnds=[288,706][384,802]} from pid 194", "com.android.mms", ".ui.ConversationList"); } public void testHomeLine() { AnalyzedLogLine line = LogAnalyzer.analyzeLogLine( "I/ActivityManager( 175): Starting: Intent { " + "act=android.intent.action.MAIN cat=[android.intent.category.HOME] " + "flg=0x10200000 cmp=com.android.launcher/.Launcher } from pid 175"); assertTrue(line.isStartHomeActivity()); } public void testInnocuousLine() { AnalyzedLogLine line = LogAnalyzer.analyzeLogLine("I/ActivityManager( 175): " + "No longer want com.google.android.apps.docs (pid 6038): hidden #16"); assertNull(line); } public void testSamsungLogLine() { testActivityLine("03-14 17:33:34.830 W/ActivityManager(2690): " + "Trying to launch com.facelock4appspro/com.facedklib.FaceRecActivity", "com.facelock4appspro", "com.facedklib.FaceRecActivity"); } private void testActivityLine(String line, String packageName, String processName) { AnalyzedLogLine logLine = LogAnalyzer.analyzeLogLine(line); assertEquals(packageName, logLine.getPackageName()); assertEquals(processName, logLine.getProcessName()); assertFalse(logLine.isStartHomeActivity()); } }