View Javadoc

1   package com.atlassian.asap.core.keys;
2   
3   import org.junit.Test;
4   
5   import java.nio.charset.StandardCharsets;
6   
7   import static org.hamcrest.Matchers.is;
8   import static org.junit.Assert.assertThat;
9   
10  public class DataUriUtilTest {
11      @Test
12      public void shouldDecodeUrlEncodedKeyId() {
13          String keyId = DataUriUtil.getKeyId("data:mime/type;kid=a%2Fb%2Fc%2Bd%2Fapi.key;base64,encoded/key+data==");
14          assertThat(keyId, is("a/b/c+d/api.key"));
15      }
16  
17      @Test
18      public void shouldDecodeBase64EncodedKeyData() {
19          byte[] keyData = DataUriUtil.getKeyData("data:mime/type;kid=a%2Fb%2Fc-key;base64,U2VjcmV0IEtleSE=");
20          assertThat(keyData, is("Secret Key!".getBytes(StandardCharsets.US_ASCII)));
21      }
22  
23      @Test(expected = IllegalArgumentException.class)
24      public void shouldRejectOtherSchemes() {
25          byte[] keyData = DataUriUtil.getKeyData("keys:mime/type;kid=a%2Fb%2Fc-key;base64,U2VjcmV0IEtleSE=");
26          assertThat(keyData, is("Secret Key!".getBytes(StandardCharsets.US_ASCII)));
27      }
28  
29      @Test(expected = IllegalArgumentException.class)
30      public void shouldHandleMissingKeyId() {
31          DataUriUtil.getKeyId("data:mime/type;base64,encoded/key+data==");
32      }
33  
34      @Test(expected = IllegalArgumentException.class)
35      public void shouldHandleMissingKeyData() {
36          DataUriUtil.getKeyId("data:mime/type;kid=a%2Fb%2Fc+d-key;base64,");
37      }
38  
39      @Test(expected = IllegalArgumentException.class)
40      public void shouldRejectKeyIdsWithoutUrlEncoding() {
41          DataUriUtil.getKeyId("data:mime/type;kid=a/b/c/key;base64,encoded/key+data==");
42      }
43  
44      @Test(expected = IllegalArgumentException.class)
45      public void shouldRejectKeyDataWithoutBase64Encoding() {
46          DataUriUtil.getKeyData("data:mime/type;kid=a%2Fb%2Fc-key;none,secret");
47      }
48  }