blob: d095529cacb1501b08343ddfe8f7dcc35b65dfbe [file] [log] [blame]
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.nearby;
import static com.google.common.truth.Truth.assertThat;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SdkSuppress;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public class FastPairAntispoofKeyDeviceMetadataTest {
private static final int BLE_TX_POWER = 5;
private static final String CONNECT_SUCCESS_COMPANION_APP_INSTALLED =
"CONNECT_SUCCESS_COMPANION_APP_INSTALLED";
private static final String CONNECT_SUCCESS_COMPANION_APP_NOT_INSTALLED =
"CONNECT_SUCCESS_COMPANION_APP_NOT_INSTALLED";
private static final float DELTA = 0.001f;
private static final int DEVICE_TYPE = 7;
private static final String DOWNLOAD_COMPANION_APP_DESCRIPTION =
"DOWNLOAD_COMPANION_APP_DESCRIPTION";
private static final String FAIL_CONNECT_GOTO_SETTINGS_DESCRIPTION =
"FAIL_CONNECT_GOTO_SETTINGS_DESCRIPTION";
private static final byte[] IMAGE = new byte[] {7, 9};
private static final String IMAGE_URL = "IMAGE_URL";
private static final String INITIAL_NOTIFICATION_DESCRIPTION =
"INITIAL_NOTIFICATION_DESCRIPTION";
private static final String INITIAL_NOTIFICATION_DESCRIPTION_NO_ACCOUNT =
"INITIAL_NOTIFICATION_DESCRIPTION_NO_ACCOUNT";
private static final String INITIAL_PAIRING_DESCRIPTION = "INITIAL_PAIRING_DESCRIPTION";
private static final String INTENT_URI = "INTENT_URI";
private static final String OPEN_COMPANION_APP_DESCRIPTION = "OPEN_COMPANION_APP_DESCRIPTION";
private static final String RETRO_ACTIVE_PAIRING_DESCRIPTION =
"RETRO_ACTIVE_PAIRING_DESCRIPTION";
private static final String SUBSEQUENT_PAIRING_DESCRIPTION = "SUBSEQUENT_PAIRING_DESCRIPTION";
private static final float TRIGGER_DISTANCE = 111;
private static final String TRUE_WIRELESS_IMAGE_URL_CASE = "TRUE_WIRELESS_IMAGE_URL_CASE";
private static final String TRUE_WIRELESS_IMAGE_URL_LEFT_BUD =
"TRUE_WIRELESS_IMAGE_URL_LEFT_BUD";
private static final String TRUE_WIRELESS_IMAGE_URL_RIGHT_BUD =
"TRUE_WIRELESS_IMAGE_URL_RIGHT_BUD";
private static final String UNABLE_TO_CONNECT_DESCRIPTION = "UNABLE_TO_CONNECT_DESCRIPTION";
private static final String UNABLE_TO_CONNECT_TITLE = "UNABLE_TO_CONNECT_TITLE";
private static final String UPDATE_COMPANION_APP_DESCRIPTION =
"UPDATE_COMPANION_APP_DESCRIPTION";
private static final String WAIT_LAUNCH_COMPANION_APP_DESCRIPTION =
"WAIT_LAUNCH_COMPANION_APP_DESCRIPTION";
private static final byte[] ANTI_SPOOFING_KEY = new byte[] {4, 5, 6};
private static final String NAME = "NAME";
@Test
@SdkSuppress(minSdkVersion = 32, codeName = "T")
public void testSetGetFastPairAntispoofKeyDeviceMetadataNotNull() {
FastPairDeviceMetadata fastPairDeviceMetadata = genFastPairDeviceMetadata();
FastPairAntispoofKeyDeviceMetadata fastPairAntispoofKeyDeviceMetadata =
genFastPairAntispoofKeyDeviceMetadata(ANTI_SPOOFING_KEY, fastPairDeviceMetadata);
assertThat(fastPairAntispoofKeyDeviceMetadata.getAntispoofPublicKey()).isEqualTo(
ANTI_SPOOFING_KEY);
ensureFastPairDeviceMetadataAsExpected(
fastPairAntispoofKeyDeviceMetadata.getFastPairDeviceMetadata());
}
@Test
@SdkSuppress(minSdkVersion = 32, codeName = "T")
public void testSetGetFastPairAntispoofKeyDeviceMetadataNull() {
FastPairAntispoofKeyDeviceMetadata fastPairAntispoofKeyDeviceMetadata =
genFastPairAntispoofKeyDeviceMetadata(null, null);
assertThat(fastPairAntispoofKeyDeviceMetadata.getAntispoofPublicKey()).isEqualTo(
null);
assertThat(fastPairAntispoofKeyDeviceMetadata.getFastPairDeviceMetadata()).isEqualTo(
null);
}
/* Verifies DeviceMetadata. */
private static void ensureFastPairDeviceMetadataAsExpected(FastPairDeviceMetadata metadata) {
assertThat(metadata.getBleTxPower()).isEqualTo(BLE_TX_POWER);
assertThat(metadata.getConnectSuccessCompanionAppInstalled())
.isEqualTo(CONNECT_SUCCESS_COMPANION_APP_INSTALLED);
assertThat(metadata.getConnectSuccessCompanionAppNotInstalled())
.isEqualTo(CONNECT_SUCCESS_COMPANION_APP_NOT_INSTALLED);
assertThat(metadata.getDeviceType()).isEqualTo(DEVICE_TYPE);
assertThat(metadata.getDownloadCompanionAppDescription())
.isEqualTo(DOWNLOAD_COMPANION_APP_DESCRIPTION);
assertThat(metadata.getFailConnectGoToSettingsDescription())
.isEqualTo(FAIL_CONNECT_GOTO_SETTINGS_DESCRIPTION);
assertThat(metadata.getImage()).isEqualTo(IMAGE);
assertThat(metadata.getImageUrl()).isEqualTo(IMAGE_URL);
assertThat(metadata.getInitialNotificationDescription())
.isEqualTo(INITIAL_NOTIFICATION_DESCRIPTION);
assertThat(metadata.getInitialNotificationDescriptionNoAccount())
.isEqualTo(INITIAL_NOTIFICATION_DESCRIPTION_NO_ACCOUNT);
assertThat(metadata.getInitialPairingDescription()).isEqualTo(INITIAL_PAIRING_DESCRIPTION);
assertThat(metadata.getIntentUri()).isEqualTo(INTENT_URI);
assertThat(metadata.getName()).isEqualTo(NAME);
assertThat(metadata.getOpenCompanionAppDescription())
.isEqualTo(OPEN_COMPANION_APP_DESCRIPTION);
assertThat(metadata.getRetroactivePairingDescription())
.isEqualTo(RETRO_ACTIVE_PAIRING_DESCRIPTION);
assertThat(metadata.getSubsequentPairingDescription())
.isEqualTo(SUBSEQUENT_PAIRING_DESCRIPTION);
assertThat(metadata.getTriggerDistance()).isWithin(DELTA).of(TRIGGER_DISTANCE);
assertThat(metadata.getTrueWirelessImageUrlCase()).isEqualTo(TRUE_WIRELESS_IMAGE_URL_CASE);
assertThat(metadata.getTrueWirelessImageUrlLeftBud())
.isEqualTo(TRUE_WIRELESS_IMAGE_URL_LEFT_BUD);
assertThat(metadata.getTrueWirelessImageUrlRightBud())
.isEqualTo(TRUE_WIRELESS_IMAGE_URL_RIGHT_BUD);
assertThat(metadata.getUnableToConnectDescription())
.isEqualTo(UNABLE_TO_CONNECT_DESCRIPTION);
assertThat(metadata.getUnableToConnectTitle()).isEqualTo(UNABLE_TO_CONNECT_TITLE);
assertThat(metadata.getUpdateCompanionAppDescription())
.isEqualTo(UPDATE_COMPANION_APP_DESCRIPTION);
assertThat(metadata.getWaitLaunchCompanionAppDescription())
.isEqualTo(WAIT_LAUNCH_COMPANION_APP_DESCRIPTION);
}
/* Generates FastPairAntispoofKeyDeviceMetadata. */
private static FastPairAntispoofKeyDeviceMetadata genFastPairAntispoofKeyDeviceMetadata(
byte[] antispoofPublicKey, FastPairDeviceMetadata deviceMetadata) {
FastPairAntispoofKeyDeviceMetadata.Builder builder =
new FastPairAntispoofKeyDeviceMetadata.Builder();
builder.setAntispoofPublicKey(antispoofPublicKey);
builder.setFastPairDeviceMetadata(deviceMetadata);
return builder.build();
}
/* Generates FastPairDeviceMetadata. */
private static FastPairDeviceMetadata genFastPairDeviceMetadata() {
FastPairDeviceMetadata.Builder builder = new FastPairDeviceMetadata.Builder();
builder.setBleTxPower(BLE_TX_POWER);
builder.setConnectSuccessCompanionAppInstalled(CONNECT_SUCCESS_COMPANION_APP_INSTALLED);
builder.setConnectSuccessCompanionAppNotInstalled(
CONNECT_SUCCESS_COMPANION_APP_NOT_INSTALLED);
builder.setDeviceType(DEVICE_TYPE);
builder.setDownloadCompanionAppDescription(DOWNLOAD_COMPANION_APP_DESCRIPTION);
builder.setFailConnectGoToSettingsDescription(FAIL_CONNECT_GOTO_SETTINGS_DESCRIPTION);
builder.setImage(IMAGE);
builder.setImageUrl(IMAGE_URL);
builder.setInitialNotificationDescription(INITIAL_NOTIFICATION_DESCRIPTION);
builder.setInitialNotificationDescriptionNoAccount(
INITIAL_NOTIFICATION_DESCRIPTION_NO_ACCOUNT);
builder.setInitialPairingDescription(INITIAL_PAIRING_DESCRIPTION);
builder.setIntentUri(INTENT_URI);
builder.setName(NAME);
builder.setOpenCompanionAppDescription(OPEN_COMPANION_APP_DESCRIPTION);
builder.setRetroactivePairingDescription(RETRO_ACTIVE_PAIRING_DESCRIPTION);
builder.setSubsequentPairingDescription(SUBSEQUENT_PAIRING_DESCRIPTION);
builder.setTriggerDistance(TRIGGER_DISTANCE);
builder.setTrueWirelessImageUrlCase(TRUE_WIRELESS_IMAGE_URL_CASE);
builder.setTrueWirelessImageUrlLeftBud(TRUE_WIRELESS_IMAGE_URL_LEFT_BUD);
builder.setTrueWirelessImageUrlRightBud(TRUE_WIRELESS_IMAGE_URL_RIGHT_BUD);
builder.setUnableToConnectDescription(UNABLE_TO_CONNECT_DESCRIPTION);
builder.setUnableToConnectTitle(UNABLE_TO_CONNECT_TITLE);
builder.setUpdateCompanionAppDescription(UPDATE_COMPANION_APP_DESCRIPTION);
builder.setWaitLaunchCompanionAppDescription(WAIT_LAUNCH_COMPANION_APP_DESCRIPTION);
return builder.build();
}
}