From d1248e611b6adc5bd52a77a400fc31a2c748eba4 Mon Sep 17 00:00:00 2001 From: jon8787 <112368577+jon8787@users.noreply.github.com> Date: Fri, 26 Jul 2024 15:08:35 +1000 Subject: [PATCH] jon-UID2-3680-test-coverage-v4-base64-tokens --- test/UID2.Client.Test/BidstreamClientTests.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/UID2.Client.Test/BidstreamClientTests.cs b/test/UID2.Client.Test/BidstreamClientTests.cs index 1d59bc4..8acbb4f 100644 --- a/test/UID2.Client.Test/BidstreamClientTests.cs +++ b/test/UID2.Client.Test/BidstreamClientTests.cs @@ -81,6 +81,26 @@ private void SmokeTestForBidstream(IdentityScope identityScope, TokenVersion tok DecryptAndAssertSuccess(advertisingToken, tokenVersion); } + [Theory] + [InlineData(IdentityScope.UID2)] + [InlineData(IdentityScope.EUID)] + private void CanDecryptV4TokenEncodedAsBase64(IdentityScope identityScope) + { + Refresh(KeyBidstreamResponse(new[] { MASTER_KEY, SITE_KEY }, identityScope)); + + var now = DateTime.UtcNow; + var advertisingTokenBase64Url = AdvertisingTokenBuilder.Builder().WithVersion(TokenVersion.V4).WithScope(identityScope).WithEstablished(now.AddMonths(-4)).WithGenerated(now.AddDays(-1)).WithExpiry(now.AddDays(2)).Build(); + + var tokenAsBinary = UID2Base64UrlCoder.Decode(advertisingTokenBase64Url); + var advertisingTokenBase64 = Convert.ToBase64String(tokenAsBinary); + Assert.True(advertisingTokenBase64.Contains("=")); + Assert.True(advertisingTokenBase64.Contains("/")); + Assert.True(advertisingTokenBase64.Contains("+")); + + DecryptAndAssertSuccess(advertisingTokenBase64, TokenVersion.V4); + } + + private void DecryptAndAssertSuccess(string advertisingToken, TokenVersion tokenVersion) { var res = _client.DecryptTokenIntoRawUid(advertisingToken, null);