• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2018 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.base;
6 
7 import static org.junit.Assert.assertEquals;
8 
9 import org.junit.Test;
10 import org.junit.runner.RunWith;
11 import org.robolectric.annotation.Config;
12 
13 import org.chromium.base.test.BaseRobolectricTestRunner;
14 
15 /** junit tests for {@link PiiElider}. */
16 @RunWith(BaseRobolectricTestRunner.class)
17 @Config(manifest = Config.NONE)
18 public class PiiEliderTest {
19     private static final int MAX_LINES = 5;
20 
21     @Test
testElideEmail()22     public void testElideEmail() {
23         String original = "email me at someguy@mailservice.com";
24         String expected = "email me at XXX@EMAIL.ELIDED";
25         assertEquals(expected, PiiElider.elideEmail(original));
26     }
27 
28     @Test
testElideUrl()29     public void testElideUrl() {
30         String original = "file bugs at crbug.com";
31         String expected = "file bugs at HTTP://WEBADDRESS.ELIDED";
32         assertEquals(expected, PiiElider.elideUrl(original));
33     }
34 
35     @Test
testElideUrl2()36     public void testElideUrl2() {
37         String original = "exception at org.chromium.base.PiiEliderTest";
38         assertEquals(original, PiiElider.elideUrl(original));
39     }
40 
41     @Test
testElideUrl3()42     public void testElideUrl3() {
43         String original = "file bugs at crbug.com or code.google.com";
44         String expected = "file bugs at HTTP://WEBADDRESS.ELIDED or HTTP://WEBADDRESS.ELIDED";
45         assertEquals(expected, PiiElider.elideUrl(original));
46     }
47 
48     @Test
testElideUrl4()49     public void testElideUrl4() {
50         String original = "test shorturl.com !!!";
51         String expected = "test HTTP://WEBADDRESS.ELIDED !!!";
52         assertEquals(expected, PiiElider.elideUrl(original));
53     }
54 
55     @Test
testElideUrl5()56     public void testElideUrl5() {
57         String original = "test just.the.perfect.len.url !!!";
58         String expected = "test HTTP://WEBADDRESS.ELIDED !!!";
59         assertEquals(expected, PiiElider.elideUrl(original));
60     }
61 
62     @Test
testElideUrl6()63     public void testElideUrl6() {
64         String original = "test a.very.very.very.very.very.long.url !!!";
65         String expected = "test HTTP://WEBADDRESS.ELIDED !!!";
66         assertEquals(expected, PiiElider.elideUrl(original));
67     }
68 
69     @Test
testElideUrl7()70     public void testElideUrl7() {
71         String original = " at android.content.Intent \n at java.util.ArrayList";
72         assertEquals(original, PiiElider.elideUrl(original));
73     }
74 
75     @Test
testElideUrl8()76     public void testElideUrl8() {
77         String original =
78                 "exception at org.chromium.chrome.browser.compositor.scene_layer."
79                         + "TabListSceneLayer.nativeUpdateLayer(Native Method)";
80         assertEquals(original, PiiElider.elideUrl(original));
81     }
82 
83     @Test
testElideUrl9()84     public void testElideUrl9() {
85         String original =
86                 "I/dalvikvm( 5083): at org.chromium.chrome.browser.compositor."
87                         + "scene_layer.TabListSceneLayer.nativeUpdateLayer(Native Method)";
88         assertEquals(original, PiiElider.elideUrl(original));
89     }
90 
91     @Test
testElideUrl10()92     public void testElideUrl10() {
93         String original =
94                 "Caused by: java.lang.ClassNotFoundException: Didn't find class "
95                         + "\"org.chromium.components.browser_ui.widget.SurfaceColorOvalView\"";
96         assertEquals(original, PiiElider.elideUrl(original));
97     }
98 
99     @Test
testElideUrl11()100     public void testElideUrl11() {
101         String original =
102                 """
103                 java.lang.RuntimeException: Unable to start activity
104                 ComponentInfo{com.chrome.dev/org.chromium.chrome.browser.ChromeTabbedActivity}:
105                 android.view.InflateException: Binary XML file line #20 in
106                 com.chrome.dev:layout/0_resource_name_obfuscated:
107                 """
108                         .replaceAll("\n", " ");
109         assertEquals(original, PiiElider.elideUrl(original));
110     }
111 
112     @Test
testElideUrl12()113     public void testElideUrl12() {
114         String original =
115                 "System.err: at kH.onAnimationEnd"
116                         + "(chromium-TrichromeChromeGoogle6432.aab-canary-530200034:42)";
117         assertEquals(original, PiiElider.elideUrl(original));
118     }
119 
120     @Test
testElideNonHttpUrl()121     public void testElideNonHttpUrl() {
122         String original = "test some-other-scheme://address/01010?param=33&other_param=AAA !!!";
123         String expected = "test HTTP://WEBADDRESS.ELIDED !!!";
124         assertEquals(expected, PiiElider.elideUrl(original));
125     }
126 
127     @Test
testDontElideFileSuffixes()128     public void testDontElideFileSuffixes() {
129         String original = "chromium_android_linker.so";
130         assertEquals(original, PiiElider.elideUrl(original));
131     }
132 
133     @Test
testDontElideAndroidPermission()134     public void testDontElideAndroidPermission() {
135         String original =
136                 "java.lang.SecurityException: get package info: Neither user 1210041 nor current"
137                         + " process has android.permission.READ_LOGS";
138         assertEquals(original, PiiElider.elideUrl(original));
139     }
140 
141     @Test
testElideIp()142     public void testElideIp() {
143         String original = "traceroute 127.0.0.1";
144         String expected = "traceroute 1.2.3.4";
145         assertEquals(expected, PiiElider.elideIp(original));
146     }
147 
148     @Test
testElideMac1()149     public void testElideMac1() {
150         String original = "MAC: AB-AB-AB-AB-AB-AB";
151         String expected = "MAC: 01:23:45:67:89:AB";
152         assertEquals(expected, PiiElider.elideMac(original));
153     }
154 
155     @Test
testElideMac2()156     public void testElideMac2() {
157         String original = "MAC: AB:AB:AB:AB:AB:AB";
158         String expected = "MAC: 01:23:45:67:89:AB";
159         assertEquals(expected, PiiElider.elideMac(original));
160     }
161 
162     @Test
testElideConsole()163     public void testElideConsole() {
164         String original = "I/chromium(123): [INFO:CONSOLE(2)] hello!";
165         String expected = "I/chromium(123): [ELIDED:CONSOLE(0)] ELIDED CONSOLE MESSAGE";
166         assertEquals(expected, PiiElider.elideConsole(original));
167     }
168 
169     @Test
testElideUrlInStacktrace()170     public void testElideUrlInStacktrace() {
171         String original =
172                 "java.lang.RuntimeException: Outer Exception crbug.com/12345\n"
173                     + "  at org.chromium.base.PiiElider.sanitizeStacktrace (PiiElider.java:120)\n"
174                     + "Caused by: java.lang.NullPointerException: Inner Exception"
175                     + " shorturl.com/bxyj5";
176         String expected =
177                 "java.lang.RuntimeException: Outer Exception HTTP://WEBADDRESS.ELIDED\n"
178                     + "  at org.chromium.base.PiiElider.sanitizeStacktrace (PiiElider.java:120)\n"
179                     + "Caused by: java.lang.NullPointerException: Inner Exception "
180                     + "HTTP://WEBADDRESS.ELIDED";
181         assertEquals(expected, PiiElider.sanitizeStacktrace(original));
182     }
183 
184     @Test
testDoesNotElideMethodNameInStacktrace()185     public void testDoesNotElideMethodNameInStacktrace() {
186         String original =
187                 "java.lang.NullPointerException: Attempt to invoke virtual method 'int"
188                     + " org.robolectric.internal.AndroidSandbox.getBackStackEntryCount()' on a null"
189                     + " object reference";
190         assertEquals(original, PiiElider.sanitizeStacktrace(original));
191     }
192 }
193