| package com.android.launcher3.logging; |
| |
| import android.test.AndroidTestCase; |
| import android.test.suitebuilder.annotation.SmallTest; |
| |
| import java.io.File; |
| import java.io.PrintWriter; |
| import java.io.StringWriter; |
| import java.util.Calendar; |
| |
| /** |
| * Tests for {@link FileLog} |
| */ |
| @SmallTest |
| public class FileLogTest extends AndroidTestCase { |
| |
| private File mTempDir; |
| |
| @Override |
| protected void setUp() throws Exception { |
| super.setUp(); |
| int count = 0; |
| do { |
| mTempDir = new File(getContext().getCacheDir(), "log-test-" + (count++)); |
| } while(!mTempDir.mkdir()); |
| |
| FileLog.setDir(mTempDir); |
| } |
| |
| @Override |
| protected void tearDown() throws Exception { |
| // Clear existing logs |
| new File(mTempDir, "log-0").delete(); |
| new File(mTempDir, "log-1").delete(); |
| mTempDir.delete(); |
| super.tearDown(); |
| } |
| |
| public void testPrintLog() throws Exception { |
| FileLog.print("Testing", "hoolalala"); |
| StringWriter writer = new StringWriter(); |
| FileLog.flushAll(new PrintWriter(writer)); |
| assertTrue(writer.toString().contains("hoolalala")); |
| |
| FileLog.print("Testing", "abracadabra", new Exception("cat! cat!")); |
| writer = new StringWriter(); |
| FileLog.flushAll(new PrintWriter(writer)); |
| assertTrue(writer.toString().contains("abracadabra")); |
| // Exception is also printed |
| assertTrue(writer.toString().contains("cat! cat!")); |
| |
| // Old logs still present after flush |
| assertTrue(writer.toString().contains("hoolalala")); |
| } |
| |
| public void testOldFileTruncated() throws Exception { |
| FileLog.print("Testing", "hoolalala"); |
| StringWriter writer = new StringWriter(); |
| FileLog.flushAll(new PrintWriter(writer)); |
| assertTrue(writer.toString().contains("hoolalala")); |
| |
| Calendar threeDaysAgo = Calendar.getInstance(); |
| threeDaysAgo.add(Calendar.HOUR, -72); |
| new File(mTempDir, "log-0").setLastModified(threeDaysAgo.getTimeInMillis()); |
| new File(mTempDir, "log-1").setLastModified(threeDaysAgo.getTimeInMillis()); |
| |
| FileLog.print("Testing", "abracadabra", new Exception("cat! cat!")); |
| writer = new StringWriter(); |
| FileLog.flushAll(new PrintWriter(writer)); |
| assertTrue(writer.toString().contains("abracadabra")); |
| // Exception is also printed |
| assertTrue(writer.toString().contains("cat! cat!")); |
| |
| // Old logs have been truncated |
| assertFalse(writer.toString().contains("hoolalala")); |
| } |
| } |