Home | History | Annotate | Download | only in logging
      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
     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
     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 
     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 
     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