| /* |
| * Copyright (C) 2013 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.jetbrains.android.logcat; |
| |
| import com.android.ddmlib.Log; |
| import com.intellij.openapi.util.Pair; |
| import junit.framework.TestCase; |
| import org.jetbrains.android.logcat.AndroidLogcatReceiver.LogMessageHeader; |
| |
| import java.util.Locale; |
| |
| public class AndroidLogcatFormatterTest extends TestCase { |
| public void testDeserialize() { |
| String message = "xyz"; |
| |
| LogMessageHeader header = new LogMessageHeader(); |
| header.myTime = "02-12 14:32:46.526"; |
| header.myLogLevel = Log.LogLevel.DEBUG; |
| header.myPid = 13; |
| header.myTid = "123"; |
| header.myAppPackage = "system_process"; |
| header.myTag = "ConnectivityService"; |
| |
| String output = AndroidLogcatFormatter.formatMessage(message, header); |
| Pair<LogMessageHeader, String> result = AndroidLogcatFormatter.parseMessage(output); |
| |
| assertNotNull(result.getFirst()); |
| assertNotNull(result.getSecond()); |
| |
| LogMessageHeader header2 = result.getFirst(); |
| |
| assertEquals(header.myTime, header2.myTime); |
| assertEquals(header.myLogLevel, header2.myLogLevel); |
| assertEquals(header.myPid, header2.myPid); |
| assertEquals(header.myAppPackage, header2.myAppPackage); |
| assertEquals(header.myTag, header2.myTag); |
| |
| assertEquals(message, result.getSecond()); |
| } |
| |
| public void testLocale() { |
| // make sure that encode and decode works together in other locales |
| Locale defaultLocale = Locale.getDefault(); |
| Locale.setDefault(Locale.FRANCE); |
| try { |
| testDeserialize(); |
| } finally { |
| Locale.setDefault(defaultLocale); |
| } |
| } |
| |
| public void test1() { |
| String message = "02-12 17:04:44.005 1282-12/com.google.android.apps" + |
| ".maps:GoogleLocationService D/dalvikvm" + AndroidLogcatFormatter.TAG_SEPARATOR + " Debugger has detached; object " + |
| "registry had 1 entries"; |
| |
| LogMessageHeader header = AndroidLogcatFormatter.parseMessage(message).getFirst(); |
| assertNotNull(header); |
| |
| assertEquals(Log.LogLevel.DEBUG, header.myLogLevel); |
| assertEquals("dalvikvm", header.myTag); |
| } |
| |
| public void testSpaces() { |
| String msg = String.format("08-23 14:30:59.370 32664-32664/com.timios.gfe I/Web Console%1$s pds: can you see this? at " + |
| "file:///android_asset/www/scripts/loan_officer.js:429", AndroidLogcatFormatter.TAG_SEPARATOR); |
| |
| LogMessageHeader header = AndroidLogcatFormatter.parseMessage(msg).getFirst(); |
| assertEquals(Log.LogLevel.INFO, header.myLogLevel); |
| } |
| } |