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