• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright 2018 The WebRTC Project Authors. All rights reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 package org.webrtc;
12 
13 import static com.google.common.truth.Truth.assertThat;
14 
15 import androidx.test.runner.AndroidJUnit4;
16 import org.junit.Test;
17 import org.junit.runner.RunWith;
18 import org.robolectric.annotation.Config;
19 import org.webrtc.CryptoOptions;
20 
21 @RunWith(AndroidJUnit4.class)
22 @Config(manifest = Config.NONE)
23 public class CryptoOptionsTest {
24   // Validates the builder builds by default all false options.
25   @Test
testBuilderDefaultsAreFalse()26   public void testBuilderDefaultsAreFalse() {
27     CryptoOptions cryptoOptions = CryptoOptions.builder().createCryptoOptions();
28     assertThat(cryptoOptions.getSrtp().getEnableGcmCryptoSuites()).isFalse();
29     assertThat(cryptoOptions.getSrtp().getEnableAes128Sha1_32CryptoCipher()).isFalse();
30     assertThat(cryptoOptions.getSrtp().getEnableEncryptedRtpHeaderExtensions()).isFalse();
31     assertThat(cryptoOptions.getSFrame().getRequireFrameEncryption()).isFalse();
32   }
33 
34   // Validates the builder sets the correct parameters.
35   @Test
testBuilderCorrectlyInitializingGcmCrypto()36   public void testBuilderCorrectlyInitializingGcmCrypto() {
37     CryptoOptions cryptoOptions =
38         CryptoOptions.builder().setEnableGcmCryptoSuites(true).createCryptoOptions();
39     assertThat(cryptoOptions.getSrtp().getEnableGcmCryptoSuites()).isTrue();
40     assertThat(cryptoOptions.getSrtp().getEnableAes128Sha1_32CryptoCipher()).isFalse();
41     assertThat(cryptoOptions.getSrtp().getEnableEncryptedRtpHeaderExtensions()).isFalse();
42     assertThat(cryptoOptions.getSFrame().getRequireFrameEncryption()).isFalse();
43   }
44 
45   @Test
testBuilderCorrectlyInitializingAes128Sha1_32CryptoCipher()46   public void testBuilderCorrectlyInitializingAes128Sha1_32CryptoCipher() {
47     CryptoOptions cryptoOptions =
48         CryptoOptions.builder().setEnableAes128Sha1_32CryptoCipher(true).createCryptoOptions();
49     assertThat(cryptoOptions.getSrtp().getEnableGcmCryptoSuites()).isFalse();
50     assertThat(cryptoOptions.getSrtp().getEnableAes128Sha1_32CryptoCipher()).isTrue();
51     assertThat(cryptoOptions.getSrtp().getEnableEncryptedRtpHeaderExtensions()).isFalse();
52     assertThat(cryptoOptions.getSFrame().getRequireFrameEncryption()).isFalse();
53   }
54 
55   @Test
testBuilderCorrectlyInitializingEncryptedRtpHeaderExtensions()56   public void testBuilderCorrectlyInitializingEncryptedRtpHeaderExtensions() {
57     CryptoOptions cryptoOptions =
58         CryptoOptions.builder().setEnableEncryptedRtpHeaderExtensions(true).createCryptoOptions();
59     assertThat(cryptoOptions.getSrtp().getEnableGcmCryptoSuites()).isFalse();
60     assertThat(cryptoOptions.getSrtp().getEnableAes128Sha1_32CryptoCipher()).isFalse();
61     assertThat(cryptoOptions.getSrtp().getEnableEncryptedRtpHeaderExtensions()).isTrue();
62     assertThat(cryptoOptions.getSFrame().getRequireFrameEncryption()).isFalse();
63   }
64 
65   @Test
testBuilderCorrectlyInitializingRequireFrameEncryption()66   public void testBuilderCorrectlyInitializingRequireFrameEncryption() {
67     CryptoOptions cryptoOptions =
68         CryptoOptions.builder().setRequireFrameEncryption(true).createCryptoOptions();
69     assertThat(cryptoOptions.getSrtp().getEnableGcmCryptoSuites()).isFalse();
70     assertThat(cryptoOptions.getSrtp().getEnableAes128Sha1_32CryptoCipher()).isFalse();
71     assertThat(cryptoOptions.getSrtp().getEnableEncryptedRtpHeaderExtensions()).isFalse();
72     assertThat(cryptoOptions.getSFrame().getRequireFrameEncryption()).isTrue();
73   }
74 }
75