@@ -212,9 +212,9 @@ public void notOnGcpButForceXds_DelegateToXds() {
212212 }
213213
214214 @ Test
215- public void notOnGcpButForceXds_KeyValueTrue_DelegateToXds () {
215+ public void notOnGcpButForceXds_WithValue_DelegateToXds () {
216216 GoogleCloudToProdNameResolver .isOnGcp = false ;
217- String target = TARGET_URI + "?force-xds=true " ;
217+ String target = TARGET_URI + "?force-xds=foo " ;
218218 resolver = enableRfc3986UrisParam
219219 ? new GoogleCloudToProdNameResolver (
220220 Uri .create (target ), args , fakeExecutorResource , nsRegistry .asFactory ())
@@ -235,6 +235,53 @@ public void notOnGcpButForceXds_KeyValueTrue_DelegateToXds() {
235235 }
236236 }
237237
238+ @ Test
239+ public void notOnGcpButForceXds_PercentEncoded_DelegateToXds () {
240+ GoogleCloudToProdNameResolver .isOnGcp = false ;
241+ String target = TARGET_URI + "?force%2Dxds" ;
242+ resolver = enableRfc3986UrisParam
243+ ? new GoogleCloudToProdNameResolver (
244+ Uri .create (target ), args , fakeExecutorResource , nsRegistry .asFactory ())
245+ : new GoogleCloudToProdNameResolver (
246+ URI .create (target ), args , fakeExecutorResource , nsRegistry .asFactory ());
247+ resolver .start (mockListener );
248+ fakeExecutor .runDueTasks ();
249+ assertThat (delegatedResolver .keySet ()).containsExactly ("xds" );
250+
251+ if (enableRfc3986UrisParam ) {
252+ Uri delegatedRfcUriValue = delegatedRfcUri .get ("xds" );
253+ assertThat (delegatedRfcUriValue ).isNotNull ();
254+ assertThat (delegatedRfcUriValue .getRawQuery ()).isNull ();
255+ } else {
256+ URI delegatedUriValue = delegatedUri .get ("xds" );
257+ assertThat (delegatedUriValue ).isNotNull ();
258+ assertThat (delegatedUriValue .getQuery ()).isNull ();
259+ }
260+ }
261+
262+ @ Test
263+ public void notOnGcpButForceXds_DuplicateKeys_DelegateToXds () {
264+ GoogleCloudToProdNameResolver .isOnGcp = false ;
265+ String target = TARGET_URI + "?force-xds=&force-xds=true" ;
266+ resolver = enableRfc3986UrisParam
267+ ? new GoogleCloudToProdNameResolver (
268+ Uri .create (target ), args , fakeExecutorResource , nsRegistry .asFactory ())
269+ : new GoogleCloudToProdNameResolver (
270+ URI .create (target ), args , fakeExecutorResource , nsRegistry .asFactory ());
271+ resolver .start (mockListener );
272+ fakeExecutor .runDueTasks ();
273+ assertThat (delegatedResolver .keySet ()).containsExactly ("xds" );
274+
275+ if (enableRfc3986UrisParam ) {
276+ Uri delegatedRfcUriValue = delegatedRfcUri .get ("xds" );
277+ assertThat (delegatedRfcUriValue ).isNotNull ();
278+ assertThat (delegatedRfcUriValue .getRawQuery ()).isNull ();
279+ } else {
280+ URI delegatedUriValue = delegatedUri .get ("xds" );
281+ assertThat (delegatedUriValue ).isNotNull ();
282+ assertThat (delegatedUriValue .getQuery ()).isNull ();
283+ }
284+ }
238285
239286 @ Test
240287 public void notOnGcpButForceXds_WithMultipleParams_DelegateToXds () {
@@ -252,11 +299,11 @@ public void notOnGcpButForceXds_WithMultipleParams_DelegateToXds() {
252299 if (enableRfc3986UrisParam ) {
253300 Uri delegatedRfcUriValue = delegatedRfcUri .get ("xds" );
254301 assertThat (delegatedRfcUriValue ).isNotNull ();
255- assertThat (delegatedRfcUriValue .getRawQuery ()).isEqualTo ( "foo=bar&baz=qux" );
302+ assertThat (delegatedRfcUriValue .getRawQuery ()).isNull ( );
256303 } else {
257304 URI delegatedUriValue = delegatedUri .get ("xds" );
258305 assertThat (delegatedUriValue ).isNotNull ();
259- assertThat (delegatedUriValue .getQuery ()).isEqualTo ( "foo=bar&baz=qux" );
306+ assertThat (delegatedUriValue .getQuery ()).isNull ( );
260307 }
261308 }
262309
@@ -276,11 +323,11 @@ public void notOnGcpButForceXds_WithEncodedAmpersand_DelegateToXds() {
276323 if (enableRfc3986UrisParam ) {
277324 Uri delegatedRfcUriValue = delegatedRfcUri .get ("xds" );
278325 assertThat (delegatedRfcUriValue ).isNotNull ();
279- assertThat (delegatedRfcUriValue .getRawQuery ()).isEqualTo ( "foo=bar%26baz" );
326+ assertThat (delegatedRfcUriValue .getRawQuery ()).isNull ( );
280327 } else {
281328 URI delegatedUriValue = delegatedUri .get ("xds" );
282329 assertThat (delegatedUriValue ).isNotNull ();
283- assertThat (delegatedUriValue .getRawQuery ()).isEqualTo ( "foo=bar%26baz" );
330+ assertThat (delegatedUriValue .getRawQuery ()).isNull ( );
284331 }
285332 }
286333
@@ -299,11 +346,11 @@ public void notOnGcpButForceXds_CaseSensitive_DelegateToDns() {
299346 if (enableRfc3986UrisParam ) {
300347 Uri delegatedRfcUriValue = delegatedRfcUri .get ("dns" );
301348 assertThat (delegatedRfcUriValue ).isNotNull ();
302- assertThat (delegatedRfcUriValue .getRawQuery ()).isEqualTo ( "FORCE-XDS" );
349+ assertThat (delegatedRfcUriValue .getRawQuery ()).isNull ( );
303350 } else {
304351 URI delegatedUriValue = delegatedUri .get ("dns" );
305352 assertThat (delegatedUriValue ).isNotNull ();
306- assertThat (delegatedUriValue .getQuery ()).isEqualTo ( "FORCE-XDS" );
353+ assertThat (delegatedUriValue .getQuery ()).isNull ( );
307354 }
308355 }
309356
0 commit comments