Skip to content

Commit c6c9f17

Browse files
authored
Merge pull request #32 from segment-integrations/niall/fix_track_key
Logic to catch multiple forbidden chars
2 parents 0063b9a + 97071b7 commit c6c9f17

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/main/java/com/segment/analytics/android/integrations/firebase/FirebaseIntegration.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -213,13 +213,13 @@ && isNullOrEmpty(properties.currency())) {
213213
}
214214

215215
public static String makeKey(String key) {
216-
if (key.contains(".")) {
217-
key = key.trim().replace(".", "_");
218-
} else if (key.contains("-")) {
219-
key = key.trim().replace("-", "_");
220-
} else {
221-
key = key.trim().replaceAll(" ", "_");
216+
String[] forbiddenChars = {".", "-", " "};
217+
for (String forbidden : forbiddenChars) {
218+
if (key.contains(forbidden)) {
219+
key = key.trim().replace(forbidden, "_");
220+
}
222221
}
222+
223223
return key.substring(0, Math.min(key.length(), 40));
224224
}
225225
}

src/test/java/com/segment/analytics/android/integration/firebase/FirebaseTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,18 @@ public void makeKeyWithDot() {
169169
verify(firebase).logEvent(eq("test_event"), bundleEq(new Bundle()));
170170
}
171171

172+
@Test
173+
public void makeKeyWithSpace() {
174+
integration.track(new TrackPayload.Builder().anonymousId("12345").event("test event").build());
175+
verify(firebase).logEvent(eq("test_event"), bundleEq(new Bundle()));
176+
}
177+
178+
@Test
179+
public void makeKeyWithDashAndDot() {
180+
integration.track(new TrackPayload.Builder().anonymousId("12345").event("test-event-dashed-and.dotted").build());
181+
verify(firebase).logEvent(eq("test_event_dashed_and_dotted"), bundleEq(new Bundle()));
182+
}
183+
172184
/**
173185
* Uses the string representation of the object. Useful for JSON objects.
174186
* @param expected Expected object

0 commit comments

Comments
 (0)