package com.bugsnag.android; import android.util.DisplayMetrics; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; public class DeviceDataTest extends BugsnagTestCase { public void testSaneValues() throws JSONException, IOException { Configuration config = new Configuration("some-api-key"); DeviceData deviceData = new DeviceData(getContext()); JSONObject deviceDataJson = streamableToJson(deviceData); assertEquals("android", deviceDataJson.getString("osName")); assertTrue(deviceDataJson.getString("manufacturer").length() > 1); assertTrue(deviceDataJson.getString("brand").length() > 1); assertTrue(deviceDataJson.getString("model").length() > 1); assertTrue(deviceDataJson.getDouble("screenDensity") > 0); assertTrue(deviceDataJson.getDouble("dpi") >= DisplayMetrics.DENSITY_LOW); assertTrue(deviceDataJson.getString("screenResolution").matches("^\\d+x\\d+$")); assertTrue(deviceDataJson.getLong("totalMemory") > 0); assertNotNull(deviceDataJson.getBoolean("jailbroken")); assertNotNull(deviceDataJson.getString("locale")); assertNotNull(deviceDataJson.getString("cpuAbi")); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.FROYO) { // Emulators returned null for android id before android 2.2 assertNotNull(deviceDataJson.getString("id")); } } }