Move UA tag extraction into its own utility class.

This commit is contained in:
Jon Chambers
2020-05-21 10:03:43 -04:00
committed by Jon Chambers
parent eede4e50ca
commit 9ba5ee8043
4 changed files with 98 additions and 72 deletions

View File

@@ -81,8 +81,8 @@ public class MetricsRequestEventListenerTest {
assertEquals(4, tags.size());
assertTrue(tags.contains(Tag.of(MetricsRequestEventListener.PATH_TAG, path)));
assertTrue(tags.contains(Tag.of(MetricsRequestEventListener.STATUS_CODE_TAG, String.valueOf(statusCode))));
assertTrue(tags.contains(Tag.of(MetricsRequestEventListener.PLATFORM_TAG, "android")));
assertTrue(tags.contains(Tag.of(MetricsRequestEventListener.VERSION_TAG, "4.53.7")));
assertTrue(tags.contains(Tag.of(UserAgentTagUtil.PLATFORM_TAG, "android")));
assertTrue(tags.contains(Tag.of(UserAgentTagUtil.VERSION_TAG, "4.53.7")));
}
@Test
@@ -96,32 +96,4 @@ public class MetricsRequestEventListenerTest {
assertEquals("/first/second/{param}/{moreDifferentParam}", MetricsRequestEventListener.getPathTemplate(uriInfo));
}
@Test
public void testGetUserAgentTags() {
assertEquals(MetricsRequestEventListener.UNRECOGNIZED_TAGS,
listener.getUserAgentTags("This is obviously not a reasonable User-Agent string."));
final List<Tag> tags = listener.getUserAgentTags("Signal-Android 4.53.7 (Android 8.1)");
assertEquals(2, tags.size());
assertTrue(tags.contains(Tag.of(MetricsRequestEventListener.PLATFORM_TAG, "android")));
assertTrue(tags.contains(Tag.of(MetricsRequestEventListener.VERSION_TAG, "4.53.7")));
}
@Test
public void testGetUserAgentTagsFlooded() {
for (int i = 0; i < MetricsRequestEventListener.MAX_VERSIONS; i++) {
listener.getUserAgentTags(String.format("Signal-Android 1.0.%d (Android 8.1)", i));
}
assertEquals(MetricsRequestEventListener.OVERFLOW_TAGS,
listener.getUserAgentTags("Signal-Android 2.0.0 (Android 8.1)"));
final List<Tag> tags = listener.getUserAgentTags("Signal-Android 1.0.0 (Android 8.1)");
assertEquals(2, tags.size());
assertTrue(tags.contains(Tag.of(MetricsRequestEventListener.PLATFORM_TAG, "android")));
assertTrue(tags.contains(Tag.of(MetricsRequestEventListener.VERSION_TAG, "1.0.0")));
}
}

View File

@@ -0,0 +1,39 @@
package org.whispersystems.textsecuregcm.metrics;
import io.micrometer.core.instrument.Tag;
import org.junit.Test;
import java.util.List;
import static org.junit.Assert.*;
public class UserAgentTagUtilTest {
@Test
public void testGetUserAgentTags() {
assertEquals(UserAgentTagUtil.UNRECOGNIZED_TAGS,
UserAgentTagUtil.getUserAgentTags("This is obviously not a reasonable User-Agent string."));
final List<Tag> tags = UserAgentTagUtil.getUserAgentTags("Signal-Android 4.53.7 (Android 8.1)");
assertEquals(2, tags.size());
assertTrue(tags.contains(Tag.of(UserAgentTagUtil.PLATFORM_TAG, "android")));
assertTrue(tags.contains(Tag.of(UserAgentTagUtil.VERSION_TAG, "4.53.7")));
}
@Test
public void testGetUserAgentTagsFlooded() {
for (int i = 0; i < UserAgentTagUtil.MAX_VERSIONS; i++) {
UserAgentTagUtil.getUserAgentTags(String.format("Signal-Android 1.0.%d (Android 8.1)", i));
}
assertEquals(UserAgentTagUtil.OVERFLOW_TAGS,
UserAgentTagUtil.getUserAgentTags("Signal-Android 2.0.0 (Android 8.1)"));
final List<Tag> tags = UserAgentTagUtil.getUserAgentTags("Signal-Android 1.0.0 (Android 8.1)");
assertEquals(2, tags.size());
assertTrue(tags.contains(Tag.of(UserAgentTagUtil.PLATFORM_TAG, "android")));
assertTrue(tags.contains(Tag.of(UserAgentTagUtil.VERSION_TAG, "1.0.0")));
}
}