summaryrefslogtreecommitdiffstats
path: root/robolectric_tests
diff options
context:
space:
mode:
authorRyan Lothian <rjlothian@google.com>2018-11-05 10:38:17 -0500
committerRyan Lothian <rjlothian@google.com>2018-11-05 11:44:33 -0500
commit499a0c932e7f8d3fe8236f9d0e073e693a3a6476 (patch)
treeb7c4ab242e62e7941f65b01796eafae589854113 /robolectric_tests
parentb1513bd811d4efd6ec9b0251c5663c544c278909 (diff)
downloadandroid_packages_apps_Trebuchet-499a0c932e7f8d3fe8236f9d0e073e693a3a6476.tar.gz
android_packages_apps_Trebuchet-499a0c932e7f8d3fe8236f9d0e073e693a3a6476.tar.bz2
android_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.java91
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"));
+ }
+}