diff options
Diffstat (limited to 'tests/src/com/android/launcher3/logging/FileLogTest.java')
-rw-r--r-- | tests/src/com/android/launcher3/logging/FileLogTest.java | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/src/com/android/launcher3/logging/FileLogTest.java b/tests/src/com/android/launcher3/logging/FileLogTest.java new file mode 100644 index 000000000..c24cc3fb7 --- /dev/null +++ b/tests/src/com/android/launcher3/logging/FileLogTest.java @@ -0,0 +1,77 @@ +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")); + } +} |