• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.android.launcher3.logging;
2 
3 import android.test.AndroidTestCase;
4 import android.test.suitebuilder.annotation.SmallTest;
5 
6 import java.io.File;
7 import java.io.PrintWriter;
8 import java.io.StringWriter;
9 import java.util.Calendar;
10 
11 /**
12  * Tests for {@link FileLog}
13  */
14 @SmallTest
15 public class FileLogTest extends AndroidTestCase {
16 
17     private File mTempDir;
18 
19     @Override
setUp()20     protected void setUp() throws Exception {
21         super.setUp();
22         int count = 0;
23         do {
24             mTempDir = new File(getContext().getCacheDir(), "log-test-" + (count++));
25         } while(!mTempDir.mkdir());
26 
27         FileLog.setDir(mTempDir);
28     }
29 
30     @Override
tearDown()31     protected void tearDown() throws Exception {
32         // Clear existing logs
33         new File(mTempDir, "log-0").delete();
34         new File(mTempDir, "log-1").delete();
35         mTempDir.delete();
36         super.tearDown();
37     }
38 
testPrintLog()39     public void testPrintLog() throws Exception {
40         FileLog.print("Testing", "hoolalala");
41         StringWriter writer = new StringWriter();
42         FileLog.flushAll(new PrintWriter(writer));
43         assertTrue(writer.toString().contains("hoolalala"));
44 
45         FileLog.print("Testing", "abracadabra", new Exception("cat! cat!"));
46         writer = new StringWriter();
47         FileLog.flushAll(new PrintWriter(writer));
48         assertTrue(writer.toString().contains("abracadabra"));
49         // Exception is also printed
50         assertTrue(writer.toString().contains("cat! cat!"));
51 
52         // Old logs still present after flush
53         assertTrue(writer.toString().contains("hoolalala"));
54     }
55 
testOldFileTruncated()56     public void testOldFileTruncated() throws Exception {
57         FileLog.print("Testing", "hoolalala");
58         StringWriter writer = new StringWriter();
59         FileLog.flushAll(new PrintWriter(writer));
60         assertTrue(writer.toString().contains("hoolalala"));
61 
62         Calendar threeDaysAgo = Calendar.getInstance();
63         threeDaysAgo.add(Calendar.HOUR, -72);
64         new File(mTempDir, "log-0").setLastModified(threeDaysAgo.getTimeInMillis());
65         new File(mTempDir, "log-1").setLastModified(threeDaysAgo.getTimeInMillis());
66 
67         FileLog.print("Testing", "abracadabra", new Exception("cat! cat!"));
68         writer = new StringWriter();
69         FileLog.flushAll(new PrintWriter(writer));
70         assertTrue(writer.toString().contains("abracadabra"));
71         // Exception is also printed
72         assertTrue(writer.toString().contains("cat! cat!"));
73 
74         // Old logs have been truncated
75         assertFalse(writer.toString().contains("hoolalala"));
76     }
77 }
78