summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNetta Peterbursky <nettap@google.com>2017-08-01 15:46:06 -0700
committerNetta Peterbursky <nettap@google.com>2017-08-02 09:04:53 -0700
commit3a879098fe36a747ba884c02f6f3daf4eac9059f (patch)
tree51b8638fb010f33940c2eafd356774d59eeb300d
parenta7584eb52a4d21f003547d4de876870b4b8d8c7b (diff)
downloadloganalysis-3a879098fe36a747ba884c02f6f3daf4eac9059f.tar.gz
Fix LogAnalysis App Versions dump.oreo-dr1-dev
(cherry-picked from unsubmitted change in oc-dev ag/2549006 and updated) Test: DumpsysPackageStatsItemTest, manual: java -classpath out/host/linux-x86/tradefed/loganalysis.jar com.android.loganalysis.LogAnalyzer --bugreport bugreport.txt Bug: b/38415015 Change-Id: I6bce38a18441712d2f182a0d3c60b7851f87470e
-rw-r--r--src/com/android/loganalysis/item/DumpsysPackageStatsItem.java8
-rw-r--r--tests/src/com/android/loganalysis/item/DumpsysPackageStatsItemTest.java52
-rw-r--r--tests/src/com/android/loganalysis/parser/DumpsysPackageStatsParserTest.java2
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;