| /* |
| * Copyright 2018 The WebRTC Project Authors. All rights reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| package org.webrtc; |
| |
| import static com.google.common.truth.Truth.assertThat; |
| |
| import org.chromium.testing.local.LocalRobolectricTestRunner; |
| import org.junit.Test; |
| import org.junit.runner.RunWith; |
| import org.robolectric.annotation.Config; |
| import org.webrtc.CryptoOptions; |
| |
| @RunWith(LocalRobolectricTestRunner.class) |
| @Config(manifest = Config.NONE) |
| public class CryptoOptionsTest { |
| // Validates the builder builds by default all false options. |
| @Test |
| public void testBuilderDefaultsAreFalse() { |
| CryptoOptions cryptoOptions = CryptoOptions.builder().createCryptoOptions(); |
| assertThat(cryptoOptions.getSrtp().getEnableGcmCryptoSuites()).isFalse(); |
| assertThat(cryptoOptions.getSrtp().getEnableAes128Sha1_32CryptoCipher()).isFalse(); |
| assertThat(cryptoOptions.getSrtp().getEnableEncryptedRtpHeaderExtensions()).isFalse(); |
| assertThat(cryptoOptions.getSFrame().getRequireFrameEncryption()).isFalse(); |
| } |
| |
| // Validates the builder sets the correct parameters. |
| @Test |
| public void testBuilderCorrectlyInitializingGcmCrypto() { |
| CryptoOptions cryptoOptions = |
| CryptoOptions.builder().setEnableGcmCryptoSuites(true).createCryptoOptions(); |
| assertThat(cryptoOptions.getSrtp().getEnableGcmCryptoSuites()).isTrue(); |
| assertThat(cryptoOptions.getSrtp().getEnableAes128Sha1_32CryptoCipher()).isFalse(); |
| assertThat(cryptoOptions.getSrtp().getEnableEncryptedRtpHeaderExtensions()).isFalse(); |
| assertThat(cryptoOptions.getSFrame().getRequireFrameEncryption()).isFalse(); |
| } |
| |
| @Test |
| public void testBuilderCorrectlyInitializingAes128Sha1_32CryptoCipher() { |
| CryptoOptions cryptoOptions = |
| CryptoOptions.builder().setEnableAes128Sha1_32CryptoCipher(true).createCryptoOptions(); |
| assertThat(cryptoOptions.getSrtp().getEnableGcmCryptoSuites()).isFalse(); |
| assertThat(cryptoOptions.getSrtp().getEnableAes128Sha1_32CryptoCipher()).isTrue(); |
| assertThat(cryptoOptions.getSrtp().getEnableEncryptedRtpHeaderExtensions()).isFalse(); |
| assertThat(cryptoOptions.getSFrame().getRequireFrameEncryption()).isFalse(); |
| } |
| |
| @Test |
| public void testBuilderCorrectlyInitializingEncryptedRtpHeaderExtensions() { |
| CryptoOptions cryptoOptions = |
| CryptoOptions.builder().setEnableEncryptedRtpHeaderExtensions(true).createCryptoOptions(); |
| assertThat(cryptoOptions.getSrtp().getEnableGcmCryptoSuites()).isFalse(); |
| assertThat(cryptoOptions.getSrtp().getEnableAes128Sha1_32CryptoCipher()).isFalse(); |
| assertThat(cryptoOptions.getSrtp().getEnableEncryptedRtpHeaderExtensions()).isTrue(); |
| assertThat(cryptoOptions.getSFrame().getRequireFrameEncryption()).isFalse(); |
| } |
| |
| @Test |
| public void testBuilderCorrectlyInitializingRequireFrameEncryption() { |
| CryptoOptions cryptoOptions = |
| CryptoOptions.builder().setRequireFrameEncryption(true).createCryptoOptions(); |
| assertThat(cryptoOptions.getSrtp().getEnableGcmCryptoSuites()).isFalse(); |
| assertThat(cryptoOptions.getSrtp().getEnableAes128Sha1_32CryptoCipher()).isFalse(); |
| assertThat(cryptoOptions.getSrtp().getEnableEncryptedRtpHeaderExtensions()).isFalse(); |
| assertThat(cryptoOptions.getSFrame().getRequireFrameEncryption()).isTrue(); |
| } |
| } |