@@ -75,92 +75,17 @@ TEST_F(CredentialTrackingTest, TestEnvironmentCredentialsTracking)
7575 auto lastRequest = mockHttpClient->GetMostRecentHttpRequest ();
7676 EXPECT_TRUE (lastRequest.HasUserAgent ());
7777 const auto & userAgent = lastRequest.GetUserAgent ();
78-
79- // Check for environment credentials feature (should contain "g")
80- EXPECT_TRUE (userAgent.find (" g" ) != Aws::String::npos);
78+ EXPECT_TRUE (!userAgent.empty ());
8179
82- // Clean up environment variables
83- Aws::Environment::UnSetEnv (" AWS_ACCESS_KEY_ID" );
84- Aws::Environment::UnSetEnv (" AWS_SECRET_ACCESS_KEY" );
85- }
80+ const auto userAgentParsed = Aws::Utils::StringUtils::Split (userAgent, ' ' );
8681
87- TEST_F (CredentialTrackingTest, TestDirectEnvironmentProviderTracking)
88- {
89- // Create client with direct environment provider
90- ClientConfiguration config;
91- config.region = Aws::Region::US_EAST_1;
92-
93- // Set up environment credentials
94- Aws::Environment::SetEnv (" AWS_ACCESS_KEY_ID" , " test-access-key" );
95- Aws::Environment::SetEnv (" AWS_SECRET_ACCESS_KEY" , " test-secret-key" );
96-
97- // Create client with environment provider directly
98- auto envProvider = Aws::MakeShared<EnvironmentAWSCredentialsProvider>(ALLOCATION_TAG);
99-
100- // Setup mock response
101- auto request = CreateHttpRequest (Aws::Http::URI (" http://test.com" ),
102- Aws::Http::HttpMethod::HTTP_POST,
103- Aws::Utils::Stream::DefaultResponseStreamFactoryMethod);
104- auto response = Aws::MakeShared<Standard::StandardHttpResponse>(ALLOCATION_TAG, request);
105- response->SetResponseCode (HttpResponseCode::OK);
106- response->GetResponseBody () << " {}" ;
107- mockHttpClient->AddResponseToReturn (response);
108-
109- MockAWSClient client (config);
110-
111- // Make a request
112- AmazonWebServiceRequestMock mockRequest;
113- auto outcome = client.MakeRequest (mockRequest);
114-
115- // Verify request succeeded
116- AWS_ASSERT_SUCCESS (outcome);
117-
118- // Verify User-Agent contains environment credentials tracking
119- auto lastRequest = mockHttpClient->GetMostRecentHttpRequest ();
120- EXPECT_TRUE (lastRequest.HasUserAgent ());
121- const auto & userAgent = lastRequest.GetUserAgent ();
122-
123- // Check for environment credentials feature (should contain "g")
124- EXPECT_TRUE (userAgent.find (" g" ) != Aws::String::npos);
125-
126- // Clean up
127- Aws::Environment::UnSetEnv (" AWS_ACCESS_KEY_ID" );
128- Aws::Environment::UnSetEnv (" AWS_SECRET_ACCESS_KEY" );
129- }
82+ // Check for environment credentials business metric (g) in user agent
83+ auto businessMetrics = std::find_if (userAgentParsed.begin (), userAgentParsed.end (),
84+ [](const Aws::String& value) { return value.find (" m/" ) != Aws::String::npos && value.find (" g" ) != Aws::String::npos; });
13085
131- TEST_F (CredentialTrackingTest, TestNoEnvironmentCredentialsNoTracking)
132- {
133- // Ensure no environment variables are set
86+ EXPECT_TRUE (businessMetrics != userAgentParsed. end ());
87+
88+ // Clean up environment variables
13489 Aws::Environment::UnSetEnv (" AWS_ACCESS_KEY_ID" );
13590 Aws::Environment::UnSetEnv (" AWS_SECRET_ACCESS_KEY" );
136-
137- // Setup mock response
138- auto request = CreateHttpRequest (Aws::Http::URI (" http://test.com" ),
139- Aws::Http::HttpMethod::HTTP_POST,
140- Aws::Utils::Stream::DefaultResponseStreamFactoryMethod);
141- auto response = Aws::MakeShared<Standard::StandardHttpResponse>(ALLOCATION_TAG, request);
142- response->SetResponseCode (HttpResponseCode::OK);
143- response->GetResponseBody () << " {}" ;
144- mockHttpClient->AddResponseToReturn (response);
145-
146- // Create client configuration
147- ClientConfiguration config;
148- config.region = Aws::Region::US_EAST_1;
149-
150- MockAWSClient client (config);
151-
152- // Make a request
153- AmazonWebServiceRequestMock mockRequest;
154- auto outcome = client.MakeRequest (mockRequest);
155-
156- // Verify request succeeded
157- AWS_ASSERT_SUCCESS (outcome);
158-
159- // Verify User-Agent does NOT contain environment credentials tracking
160- auto lastRequest = mockHttpClient->GetMostRecentHttpRequest ();
161- EXPECT_TRUE (lastRequest.HasUserAgent ());
162- const auto & userAgent = lastRequest.GetUserAgent ();
163-
164- // Should not contain environment credentials feature "g" when not using env vars
165- EXPECT_TRUE (userAgent.find (" g" ) == Aws::String::npos);
16691}
0 commit comments