diff options
author | Weilin Xu <xuweilin@google.com> | 2024-02-16 00:57:41 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2024-02-16 00:57:41 +0000 |
commit | e9598b4c3a68b4d68f82e7025b12e8a69112718d (patch) | |
tree | 568b8d0e5aeb3f0b037b597ff74bbb8b1337d16c | |
parent | 3de342c5fb3d1a0a57544259ee170a0a112813ba (diff) | |
parent | 8606813e25ec1114b0e17f611a8d907d9cea1951 (diff) | |
download | systemlibs-e9598b4c3a68b4d68f82e7025b12e8a69112718d.tar.gz |
Merge "Add unit tests for program info extension" into main
-rw-r--r-- | car-broadcastradio-support/tests/Android.bp | 1 | ||||
-rw-r--r-- | car-broadcastradio-support/tests/src/com/android/car/broadcastradio/support/platform/ProgramInfoExtTest.java | 93 |
2 files changed, 94 insertions, 0 deletions
diff --git a/car-broadcastradio-support/tests/Android.bp b/car-broadcastradio-support/tests/Android.bp index b6ee8aa..738dc77 100644 --- a/car-broadcastradio-support/tests/Android.bp +++ b/car-broadcastradio-support/tests/Android.bp @@ -21,6 +21,7 @@ package { android_test { name: "CarBroadcastRadioSupportTests", + platform_apis: true, srcs: ["src/**/*.java"], static_libs: [ "car-broadcastradio-support", diff --git a/car-broadcastradio-support/tests/src/com/android/car/broadcastradio/support/platform/ProgramInfoExtTest.java b/car-broadcastradio-support/tests/src/com/android/car/broadcastradio/support/platform/ProgramInfoExtTest.java new file mode 100644 index 0000000..2296050 --- /dev/null +++ b/car-broadcastradio-support/tests/src/com/android/car/broadcastradio/support/platform/ProgramInfoExtTest.java @@ -0,0 +1,93 @@ +/** + * Copyright (C) 2024 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 com.android.car.broadcastradio.support.platform; + +import android.hardware.radio.ProgramSelector; +import android.hardware.radio.RadioManager; +import android.hardware.radio.RadioMetadata; + +import com.google.common.truth.Expect; + +import org.junit.Rule; +import org.junit.Test; + +import java.util.Comparator; + +public final class ProgramInfoExtTest { + + private static final long FM_FREQUENCY = 88_500; + private static final String RDS_VALUE = "TestRds"; + private static final String PROGRAM_NAME_VALUE = "TestProgramName"; + private static final String TITLE_VALUE = "TestTitle"; + private static final String ARTIST_VALUE = "TestArtist"; + private static final String ALBUM_VALUE = "TestAlbum"; + private static final ProgramSelector.Identifier FM_IDENTIFIER = new ProgramSelector.Identifier( + ProgramSelector.IDENTIFIER_TYPE_AMFM_FREQUENCY, FM_FREQUENCY); + private static final ProgramSelector FM_SELECTOR = new ProgramSelector( + ProgramSelector.PROGRAM_TYPE_FM, FM_IDENTIFIER, /* secondaryIds= */ null, + /* vendorIds= */ null); + private static final RadioMetadata RADIO_METADATA = new RadioMetadata.Builder() + .putString(RadioMetadata.METADATA_KEY_RDS_PS, RDS_VALUE) + .putString(RadioMetadata.METADATA_KEY_PROGRAM_NAME, PROGRAM_NAME_VALUE) + .putString(RadioMetadata.METADATA_KEY_TITLE, TITLE_VALUE) + .putString(RadioMetadata.METADATA_KEY_ARTIST, ARTIST_VALUE) + .putString(RadioMetadata.METADATA_KEY_ALBUM, ALBUM_VALUE).build(); + private static final RadioMetadata EMPTY_RADIO_METADATA = new RadioMetadata.Builder().build(); + private static final RadioManager.ProgramInfo FM_INFO = new RadioManager.ProgramInfo( + FM_SELECTOR, FM_IDENTIFIER, FM_IDENTIFIER, /* relatedContents= */ null, + /* infoFlags= */ 0, /* signalQuality= */ 1, RADIO_METADATA, + /* vendorInfo= */ null); + + private static final Comparator<ProgramSelector> SELECTOR_COMPARATOR = + new ProgramSelectorExt.ProgramSelectorComparator(); + private static final Comparator<RadioManager.ProgramInfo> PROGRAM_INFO_COMPARATOR = + new ProgramInfoExt.ProgramInfoComparator(); + + @Rule + public final Expect mExpect = Expect.create(); + + @Test + public void getMetadata() { + mExpect.withMessage("FM radio metadata") + .that(ProgramInfoExt.getMetadata(FM_INFO)).isEqualTo(RADIO_METADATA); + } + + @Test + public void getMetadata_withNullMetadata() { + RadioManager.ProgramInfo infoWithNullMetadata = new RadioManager.ProgramInfo( + FM_SELECTOR, FM_IDENTIFIER, FM_IDENTIFIER, /* relatedContents= */ null, + /* infoFlags= */ 0, /* signalQuality= */ 1, /* metadata= */ null, + /* vendorInfo= */ null); + + mExpect.withMessage("FM radio metadata with null metadata") + .that(ProgramInfoExt.getMetadata(infoWithNullMetadata)) + .isEqualTo(EMPTY_RADIO_METADATA); + } + + @Test + public void compare_withSelectorsOfDifferentTypes() { + ProgramSelector fmSel2 = ProgramSelectorExt.createAmFmSelector(FM_FREQUENCY + 200); + RadioManager.ProgramInfo fmInfo2 = new RadioManager.ProgramInfo(fmSel2, + fmSel2.getPrimaryId(), fmSel2.getPrimaryId(), /* relatedContents= */ null, + /* infoFlags= */ 1, /* signalQuality= */ 0, new RadioMetadata.Builder().build(), + /* vendorInfo= */ null); + int expectedResult = SELECTOR_COMPARATOR.compare(fmSel2, FM_SELECTOR); + + mExpect.withMessage("Comparison between FM stations") + .that(PROGRAM_INFO_COMPARATOR.compare(fmInfo2, FM_INFO)).isEqualTo(expectedResult); + } +} |