From 499a0c932e7f8d3fe8236f9d0e073e693a3a6476 Mon Sep 17 00:00:00 2001 From: Ryan Lothian Date: Mon, 5 Nov 2018 10:38:17 -0500 Subject: Make FileLogTest use robolectric This allows it to run fast locally on the JVM without an emulator or physical device. Change-Id: Idb9c94e6f3fce94a86978ea0709eadd72280432c --- .../com/android/launcher3/logging/FileLogTest.java | 91 +++++++++++++++++++++ .../com/android/launcher3/logging/FileLogTest.java | 94 ---------------------- 2 files changed, 91 insertions(+), 94 deletions(-) create mode 100644 robolectric_tests/src/com/android/launcher3/logging/FileLogTest.java delete mode 100644 tests/src/com/android/launcher3/logging/FileLogTest.java 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")); + } +} diff --git a/tests/src/com/android/launcher3/logging/FileLogTest.java b/tests/src/com/android/launcher3/logging/FileLogTest.java deleted file mode 100644 index e031f1d34..000000000 --- a/tests/src/com/android/launcher3/logging/FileLogTest.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.android.launcher3.logging; - -import androidx.test.InstrumentationRegistry; -import androidx.test.filters.SmallTest; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -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} - */ -@SmallTest -@RunWith(AndroidJUnit4.class) -public class FileLogTest { - - private File mTempDir; - - @Before - public void setUp() throws Exception { - int count = 0; - do { - mTempDir = new File(InstrumentationRegistry.getTargetContext().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")); - } -} -- cgit v1.2.3