Skip to content

Commit

Permalink
Merge 1229c2e into 1e34c3e
Browse files Browse the repository at this point in the history
  • Loading branch information
fractalwrench committed Jun 27, 2018
2 parents 1e34c3e + 1229c2e commit 250a71c
Show file tree
Hide file tree
Showing 9 changed files with 497 additions and 402 deletions.
26 changes: 26 additions & 0 deletions sdk/src/androidTest/java/com/bugsnag/android/ClientTest.java
Expand Up @@ -11,6 +11,7 @@

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
Expand Down Expand Up @@ -351,4 +352,29 @@ public void testDeviceDataSummary() {
assertNotEquals(client.getDeviceDataSummary(), deviceData);
}

@Test
public void testPopulateDeviceMetadata() {
Client client = generateClient();
MetaData metaData = new MetaData();
Map<String, Object> app = metaData.getTab("device");
assertEquals(0, app.size());

client.populateDeviceMetaData(metaData);
assertEquals(14, app.size());

assertNotNull(app.get("batteryLevel"));
assertNotNull(app.get("charging"));
assertNotNull(app.get("locationStatus"));
assertNotNull(app.get("networkAccess"));
assertNotNull(app.get("time"));
assertNotNull(app.get("brand"));
assertNotNull(app.get("apiLevel"));
assertNotNull(app.get("osBuild"));
assertNotNull(app.get("locale"));
assertNotNull(app.get("screenDensity"));
assertNotNull(app.get("dpi"));
assertNotNull(app.get("emulator"));
assertNotNull(app.get("screenResolution"));
assertNotNull(app.get("cpuAbi"));
}
}
@@ -1,5 +1,6 @@
package com.bugsnag.android;

import static com.bugsnag.android.BugsnagTestUtils.generateClient;
import static com.bugsnag.android.BugsnagTestUtils.streamableToJson;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
Expand All @@ -11,6 +12,7 @@

import org.json.JSONException;
import org.json.JSONObject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -25,7 +27,13 @@ public class DeviceDataSummaryTest {

@Before
public void setUp() throws Exception {
deviceData = new DeviceDataSummary();
DeviceDataCollector deviceDataCollector = new DeviceDataCollector(generateClient());
deviceData = deviceDataCollector.generateDeviceDataSummary();
}

@After
public void tearDown() throws Exception {
Async.cancelTasks();
}

@Test
Expand Down
11 changes: 9 additions & 2 deletions sdk/src/androidTest/java/com/bugsnag/android/DeviceDataTest.java
@@ -1,5 +1,6 @@
package com.bugsnag.android;

import static com.bugsnag.android.BugsnagTestUtils.generateClient;
import static com.bugsnag.android.BugsnagTestUtils.getSharedPrefs;
import static com.bugsnag.android.BugsnagTestUtils.streamableToJson;
import static org.junit.Assert.assertEquals;
Expand All @@ -13,6 +14,7 @@

import org.json.JSONException;
import org.json.JSONObject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -28,8 +30,13 @@ public class DeviceDataTest {

@Before
public void setUp() throws Exception {
SharedPreferences sharedPref = getSharedPrefs(InstrumentationRegistry.getContext());
deviceData = new DeviceData(InstrumentationRegistry.getContext(), sharedPref);
DeviceDataCollector deviceDataCollector = new DeviceDataCollector(generateClient());
deviceData = deviceDataCollector.generateDeviceData();
}

@After
public void tearDown() throws Exception {
Async.cancelTasks();
}

@Test
Expand Down
10 changes: 8 additions & 2 deletions sdk/src/androidTest/java/com/bugsnag/android/ErrorTest.java
Expand Up @@ -19,6 +19,7 @@

import org.json.JSONException;
import org.json.JSONObject;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
Expand All @@ -45,6 +46,11 @@ public void setUp() throws Exception {
error = new Error.Builder(config, exception, null).build();
}

@After
public void tearDown() throws Exception {
Async.cancelTasks();
}

@Test
public void testShouldIgnoreClass() {
config.setIgnoreClasses(new String[]{"java.io.IOException"});
Expand Down Expand Up @@ -369,8 +375,8 @@ public void testErrorMetaData() {

@Test
public void testSetDeviceId() throws Throwable {
Context context = InstrumentationRegistry.getContext();
DeviceData deviceData = new DeviceData(context, BugsnagTestUtils.getSharedPrefs(context));
DeviceDataCollector deviceDataCollector = new DeviceDataCollector(generateClient());
DeviceData deviceData = deviceDataCollector.generateDeviceData();
error.setDeviceData(deviceData);
assertEquals(deviceData, error.getDeviceData());

Expand Down
31 changes: 20 additions & 11 deletions sdk/src/main/java/com/bugsnag/android/Client.java
Expand Up @@ -70,6 +70,8 @@ public class Client extends Observable implements Observer {
@NonNull
protected final DeviceData deviceData;

DeviceDataCollector deviceDataCollector;

@NonNull
final Breadcrumbs breadcrumbs;

Expand All @@ -83,7 +85,7 @@ public class Client extends Observable implements Observer {

private final EventReceiver eventReceiver;
final SessionTracker sessionTracker;
private SharedPreferences sharedPref;
SharedPreferences sharedPrefs;
AppDataCollector appDataCollector;

/**
Expand Down Expand Up @@ -144,13 +146,13 @@ public Client(@NonNull Context androidContext, @NonNull Configuration configurat
eventReceiver = new EventReceiver(this);

// Set up and collect constant app and device diagnostics
sharedPref = appContext.getSharedPreferences(SHARED_PREF_KEY, Context.MODE_PRIVATE);

sharedPrefs = appContext.getSharedPreferences(SHARED_PREF_KEY, Context.MODE_PRIVATE);

appDataCollector = new AppDataCollector(this);

appData = appDataCollector.generateAppData();
deviceData = new DeviceData(appContext, sharedPref);
deviceDataCollector = new DeviceDataCollector(this);
deviceData = deviceDataCollector.generateDeviceData();

// Set up breadcrumbs
breadcrumbs = new Breadcrumbs();
Expand All @@ -160,9 +162,9 @@ public Client(@NonNull Context androidContext, @NonNull Configuration configurat

if (config.getPersistUserBetweenSessions()) {
// Check to see if a user was stored in the SharedPreferences
user.setId(sharedPref.getString(USER_ID_KEY, deviceData.getId()));
user.setName(sharedPref.getString(USER_NAME_KEY, null));
user.setEmail(sharedPref.getString(USER_EMAIL_KEY, null));
user.setId(sharedPrefs.getString(USER_ID_KEY, deviceData.getId()));
user.setName(sharedPrefs.getString(USER_NAME_KEY, null));
user.setEmail(sharedPrefs.getString(USER_EMAIL_KEY, null));
} else {
user.setId(deviceData.getId());
}
Expand Down Expand Up @@ -582,13 +584,18 @@ public void populateAppMetaData(@NonNull MetaData metaData) {
@NonNull
@InternalApi
public DeviceData getDeviceData() {
return new DeviceData(appContext, sharedPref);
return deviceDataCollector.generateDeviceData();
}

@NonNull
@InternalApi
public DeviceDataSummary getDeviceDataSummary() {
return new DeviceDataSummary();
return deviceDataCollector.generateDeviceDataSummary();
}

@InternalApi
public void populateDeviceMetaData(@NonNull MetaData metaData) {
deviceDataCollector.populateDeviceMetaData(metaData);
}

/**
Expand Down Expand Up @@ -942,12 +949,14 @@ void notify(@NonNull Error error,
}

// Capture the state of the app and device and attach diagnostics to the error
DeviceData errorDeviceData = deviceDataCollector.generateDeviceData();
error.setDeviceData(errorDeviceData);
deviceDataCollector.populateDeviceMetaData(error.getMetaData());

error.setAppData(errorAppData);
error.setDeviceData(deviceData);

// add additional info that belongs in metadata
appDataCollector.populateAppMetaData(error.getMetaData());
deviceData.addDeviceMetaData(error.getMetaData());

// Attach breadcrumbs to the error
error.setBreadcrumbs(breadcrumbs);
Expand Down

0 comments on commit 250a71c

Please sign in to comment.