diff options
author | Netta Peterbursky <nettap@google.com> | 2017-08-03 22:49:56 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-08-03 22:49:56 +0000 |
commit | 695613d0cd808614be5c02f0ce6027f131ad5f53 (patch) | |
tree | e2717b95d0574f85ca70e6528563473247f27243 | |
parent | 93890505b4cf09074586ba3a3e8dd4b44dd88758 (diff) | |
parent | 05cb8b81f4e325c5778593f7889a1e83665abe9f (diff) | |
download | loganalysis-695613d0cd808614be5c02f0ce6027f131ad5f53.tar.gz |
Fix LogAnalysis App Versions dump. (cherry-picked from unsubmitted change in oc-dev ag/2549006 and updated) am: 3a879098fe am: 2844b84876
am: 05cb8b81f4
Change-Id: I2cf5c5b0e95d957463b54be37b7a06fe0aaa460c
3 files changed, 60 insertions, 2 deletions
diff --git a/src/com/android/loganalysis/item/DumpsysPackageStatsItem.java b/src/com/android/loganalysis/item/DumpsysPackageStatsItem.java index 14c4073..b10f055 100644 --- a/src/com/android/loganalysis/item/DumpsysPackageStatsItem.java +++ b/src/com/android/loganalysis/item/DumpsysPackageStatsItem.java @@ -19,6 +19,8 @@ package com.android.loganalysis.item; import org.json.JSONException; import org.json.JSONObject; +import java.util.Map; + /** An {@link IItem} used to store apps and their version codes and names. */ public class DumpsysPackageStatsItem extends GenericMapItem<AppVersionItem> { private static final long serialVersionUID = 1L; @@ -31,7 +33,11 @@ public class DumpsysPackageStatsItem extends GenericMapItem<AppVersionItem> { public JSONObject toJson() { JSONObject object = new JSONObject(); try { - object.put(APP_VERSIONS, super.toJson()); + JSONObject appVersions = new JSONObject(); + for (Map.Entry<String, AppVersionItem> entry : entrySet()) { + appVersions.put(entry.getKey(), entry.getValue().toJson()); + } + object.put(APP_VERSIONS, appVersions); } catch (JSONException e) { // Ignore } diff --git a/tests/src/com/android/loganalysis/item/DumpsysPackageStatsItemTest.java b/tests/src/com/android/loganalysis/item/DumpsysPackageStatsItemTest.java new file mode 100644 index 0000000..dd60500 --- /dev/null +++ b/tests/src/com/android/loganalysis/item/DumpsysPackageStatsItemTest.java @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2017 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 com.android.loganalysis.item; + +import junit.framework.TestCase; + +import org.json.JSONException; +import org.json.JSONObject; + +/** Unit test for {@link DumpsysPackageStatsItem}. */ +public class DumpsysPackageStatsItemTest extends TestCase { + + /** Test that {@link DumpsysPackageStatsItem#toJson()} returns correctly. */ + public void testToJson() throws JSONException { + DumpsysPackageStatsItem item = new DumpsysPackageStatsItem(); + + item.put("com.google.android.calculator", new AppVersionItem(73000302, "7.3 (3821978)")); + item.put( + "com.google.android.googlequicksearchbox", + new AppVersionItem(300734793, "6.16.35.26.arm64")); + + // Convert to JSON string and back again + JSONObject output = new JSONObject(item.toJson().toString()); + + assertTrue(output.has(DumpsysPackageStatsItem.APP_VERSIONS)); + + JSONObject appVersionsJson = output.getJSONObject(DumpsysPackageStatsItem.APP_VERSIONS); + + assertEquals(2, appVersionsJson.length()); + final JSONObject calcAppVersionJson = + appVersionsJson.getJSONObject("com.google.android.calculator"); + assertEquals(73000302, calcAppVersionJson.getInt(AppVersionItem.VERSION_CODE)); + assertEquals("7.3 (3821978)", calcAppVersionJson.getString(AppVersionItem.VERSION_NAME)); + final JSONObject gsaAppVersionJson = + appVersionsJson.getJSONObject("com.google.android.googlequicksearchbox"); + assertEquals(300734793, gsaAppVersionJson.getInt(AppVersionItem.VERSION_CODE)); + assertEquals("6.16.35.26.arm64", gsaAppVersionJson.getString(AppVersionItem.VERSION_NAME)); + } +} diff --git a/tests/src/com/android/loganalysis/parser/DumpsysPackageStatsParserTest.java b/tests/src/com/android/loganalysis/parser/DumpsysPackageStatsParserTest.java index faa51b2..ee15b78 100644 --- a/tests/src/com/android/loganalysis/parser/DumpsysPackageStatsParserTest.java +++ b/tests/src/com/android/loganalysis/parser/DumpsysPackageStatsParserTest.java @@ -15,8 +15,8 @@ */ package com.android.loganalysis.parser; -import com.android.loganalysis.item.DumpsysPackageStatsItem; import com.android.loganalysis.item.AppVersionItem; +import com.android.loganalysis.item.DumpsysPackageStatsItem; import junit.framework.TestCase; |