@@ -146,7 +146,8 @@ public void testGzip() throws IOException, DatastoreException {
146
146
new InjectedTestValues (gzip (response ), new byte [1 ], true );
147
147
RemoteRpc rpc = newRemoteRpc (injectedTestValues );
148
148
149
- InputStream is = rpc .call ("beginTransaction" , BeginTransactionResponse .getDefaultInstance ());
149
+ InputStream is =
150
+ rpc .call ("beginTransaction" , BeginTransactionResponse .getDefaultInstance (), "" , "" );
150
151
BeginTransactionResponse parsedResponse = BeginTransactionResponse .parseFrom (is );
151
152
is .close ();
152
153
@@ -159,14 +160,15 @@ public void testGzip() throws IOException, DatastoreException {
159
160
public void testHttpHeaders_expectE2eChecksumHeader () throws IOException {
160
161
// Enable E2E-Checksum system env variable
161
162
RemoteRpc .setSystemEnvE2EChecksum (true );
163
+ String projectId = "project-id" ;
162
164
MessageLite request =
163
- RollbackRequest .newBuilder ().setTransaction (ByteString .copyFromUtf8 ("project-id" )).build ();
165
+ RollbackRequest .newBuilder ().setTransaction (ByteString .copyFromUtf8 (projectId )).build ();
164
166
RemoteRpc rpc =
165
167
newRemoteRpc (
166
168
new InjectedTestValues (gzip (newBeginTransactionResponse ()), new byte [1 ], true ));
167
169
HttpRequest httpRequest =
168
170
rpc .getClient ().buildPostRequest (rpc .resolveURL ("blah" ), new ProtoHttpContent (request ));
169
- rpc .setHeaders (request , httpRequest );
171
+ rpc .setHeaders (request , httpRequest , projectId , "" );
170
172
assertNotNull (
171
173
httpRequest .getHeaders ().getFirstHeaderStringValue (RemoteRpc .API_FORMAT_VERSION_HEADER ));
172
174
// Expect to find e2e-checksum header
@@ -181,14 +183,15 @@ public void testHttpHeaders_expectE2eChecksumHeader() throws IOException {
181
183
public void testHttpHeaders_doNotExpectE2eChecksumHeader () throws IOException {
182
184
// disable E2E-Checksum system env variable
183
185
RemoteRpc .setSystemEnvE2EChecksum (false );
186
+ String projectId = "project-id" ;
184
187
MessageLite request =
185
- RollbackRequest .newBuilder ().setTransaction (ByteString .copyFromUtf8 ("project-id" )).build ();
188
+ RollbackRequest .newBuilder ().setTransaction (ByteString .copyFromUtf8 (projectId )).build ();
186
189
RemoteRpc rpc =
187
190
newRemoteRpc (
188
191
new InjectedTestValues (gzip (newBeginTransactionResponse ()), new byte [1 ], true ));
189
192
HttpRequest httpRequest =
190
193
rpc .getClient ().buildPostRequest (rpc .resolveURL ("blah" ), new ProtoHttpContent (request ));
191
- rpc .setHeaders (request , httpRequest );
194
+ rpc .setHeaders (request , httpRequest , projectId , "" );
192
195
assertNotNull (
193
196
httpRequest .getHeaders ().getFirstHeaderStringValue (RemoteRpc .API_FORMAT_VERSION_HEADER ));
194
197
// Do not expect to find e2e-checksum header
@@ -198,6 +201,38 @@ public void testHttpHeaders_doNotExpectE2eChecksumHeader() throws IOException {
198
201
.getFirstHeaderStringValue (EndToEndChecksumHandler .HTTP_REQUEST_CHECKSUM_HEADER ));
199
202
}
200
203
204
+ @ Test
205
+ public void testHttpHeaders_prefixHeader () throws IOException {
206
+ String projectId = "my-project" ;
207
+ String databaseId = "my-db" ;
208
+ MessageLite request =
209
+ RollbackRequest .newBuilder ()
210
+ .setTransaction (ByteString .copyFromUtf8 (projectId ))
211
+ .setDatabaseId (databaseId )
212
+ .build ();
213
+ RemoteRpc rpc =
214
+ newRemoteRpc (
215
+ new InjectedTestValues (gzip (newBeginTransactionResponse ()), new byte [1 ], true ));
216
+ HttpRequest httpRequest =
217
+ rpc .getClient ().buildPostRequest (rpc .resolveURL ("blah" ), new ProtoHttpContent (request ));
218
+ rpc .setHeaders (request , httpRequest , projectId , databaseId );
219
+ assertEquals (
220
+ "project_id=my-project&database_id=my-db" ,
221
+ httpRequest .getHeaders ().get (RemoteRpc .X_GOOG_REQUEST_PARAMS_HEADER ));
222
+
223
+ MessageLite request2 =
224
+ RollbackRequest .newBuilder ().setTransaction (ByteString .copyFromUtf8 (projectId )).build ();
225
+ RemoteRpc rpc2 =
226
+ newRemoteRpc (
227
+ new InjectedTestValues (gzip (newBeginTransactionResponse ()), new byte [1 ], true ));
228
+ HttpRequest httpRequest2 =
229
+ rpc2 .getClient ().buildPostRequest (rpc2 .resolveURL ("blah" ), new ProtoHttpContent (request2 ));
230
+ rpc2 .setHeaders (request , httpRequest2 , projectId , "" );
231
+ assertEquals (
232
+ "project_id=my-project" ,
233
+ httpRequest2 .getHeaders ().get (RemoteRpc .X_GOOG_REQUEST_PARAMS_HEADER ));
234
+ }
235
+
201
236
private static BeginTransactionResponse newBeginTransactionResponse () {
202
237
return BeginTransactionResponse .newBuilder ()
203
238
.setTransaction (ByteString .copyFromUtf8 ("blah-blah-blah" ))
0 commit comments