diff options
author | Ryan Lothian <rjlothian@google.com> | 2018-11-05 10:38:17 -0500 |
---|---|---|
committer | Ryan Lothian <rjlothian@google.com> | 2018-11-05 11:44:33 -0500 |
commit | 499a0c932e7f8d3fe8236f9d0e073e693a3a6476 (patch) | |
tree | b7c4ab242e62e7941f65b01796eafae589854113 /robolectric_tests | |
parent | b1513bd811d4efd6ec9b0251c5663c544c278909 (diff) | |
download | packages_apps_Trebuchet-499a0c932e7f8d3fe8236f9d0e073e693a3a6476.tar.gz packages_apps_Trebuchet-499a0c932e7f8d3fe8236f9d0e073e693a3a6476.tar.bz2 packages_apps_Trebuchet-499a0c932e7f8d3fe8236f9d0e073e693a3a6476.zip |
Make FileLogTest use robolectric
This allows it to run fast locally on the JVM without an
emulator or physical device.
Change-Id: Idb9c94e6f3fce94a86978ea0709eadd72280432c
Diffstat (limited to 'robolectric_tests')
-rw-r--r-- | robolectric_tests/src/com/android/launcher3/logging/FileLogTest.java | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/robolectric_tests/src/com/android/launcher3/logging/FileLogTest.java b/robolectric_tests/src/com/android/launcher3/logging/FileLogTest.java new file mode 100644 index 000000000..096db57f9 --- /dev/null +++ b/robolectric_tests/src/com/android/launcher3/logging/FileLogTest.java @@ -0,0 +1,91 @@ +package com.android.launcher3.logging; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; + +import java.io.File; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.Calendar; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +/** + * Tests for {@link FileLog} + */ +@RunWith(RobolectricTestRunner.class) +public class FileLogTest { + + private File mTempDir; + + @Before + public void setUp() throws Exception { + int count = 0; + do { + mTempDir = new File(RuntimeEnvironment.application.getCacheDir(), + "log-test-" + (count++)); + } while (!mTempDir.mkdir()); + + FileLog.setDir(mTempDir); + } + + @After + public void tearDown() throws Exception { + // Clear existing logs + new File(mTempDir, "log-0").delete(); + new File(mTempDir, "log-1").delete(); + mTempDir.delete(); + } + + @Test + public void testPrintLog() throws Exception { + if (!FileLog.ENABLED) { + return; + } + 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")); + } + + @Test + public void testOldFileTruncated() throws Exception { + if (!FileLog.ENABLED) { + return; + } + 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")); + } +} |