@@ -254,4 +254,45 @@ public void testBuildXStripeClientUserAgentStringWithAIAgent() {
254254 com .google .gson .JsonParser .parseString (json ).getAsJsonObject ();
255255 assertEquals ("cursor" , parsed .get ("ai_agent" ).getAsString ());
256256 }
257+
258+ @ Test
259+ public void testBuildXStripeClientUserAgentStringOmitsPublisherAndOsKeys () {
260+ String json = HttpClient .buildXStripeClientUserAgentString ("" );
261+ com .google .gson .JsonObject parsed =
262+ com .google .gson .JsonParser .parseString (json ).getAsJsonObject ();
263+ assertTrue (!parsed .has ("publisher" ));
264+ assertTrue (!parsed .has ("os.name" ));
265+ assertTrue (!parsed .has ("os.version" ));
266+ assertTrue (!parsed .has ("os.arch" ));
267+ }
268+
269+ @ Test
270+ public void testBuildXStripeClientUserAgentStringPlatformWithTelemetry () {
271+ boolean originalTelemetry = Stripe .enableTelemetry ;
272+ try {
273+ Stripe .enableTelemetry = true ;
274+ String json = HttpClient .buildXStripeClientUserAgentString ("" );
275+ com .google .gson .JsonObject parsed =
276+ com .google .gson .JsonParser .parseString (json ).getAsJsonObject ();
277+ assertTrue (parsed .has ("platform" ));
278+ String platform = parsed .get ("platform" ).getAsString ();
279+ assertTrue (platform .contains (System .getProperty ("os.name" )));
280+ } finally {
281+ Stripe .enableTelemetry = originalTelemetry ;
282+ }
283+ }
284+
285+ @ Test
286+ public void testBuildXStripeClientUserAgentStringNoPlatformWithoutTelemetry () {
287+ boolean originalTelemetry = Stripe .enableTelemetry ;
288+ try {
289+ Stripe .enableTelemetry = false ;
290+ String json = HttpClient .buildXStripeClientUserAgentString ("" );
291+ com .google .gson .JsonObject parsed =
292+ com .google .gson .JsonParser .parseString (json ).getAsJsonObject ();
293+ assertTrue (!parsed .has ("platform" ));
294+ } finally {
295+ Stripe .enableTelemetry = originalTelemetry ;
296+ }
297+ }
257298}
0 commit comments