summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/hotspot2/anqp/OsuProviderInfoTest.java124
1 files changed, 124 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/anqp/OsuProviderInfoTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/anqp/OsuProviderInfoTest.java
index e20d6d53e..8ef93f061 100644
--- a/tests/wifitests/src/com/android/server/wifi/hotspot2/anqp/OsuProviderInfoTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/anqp/OsuProviderInfoTest.java
@@ -25,6 +25,9 @@ import org.junit.Test;
import java.net.ProtocolException;
import java.nio.BufferUnderflowException;
import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
/**
* Unit tests for {@link com.android.server.wifi.hotspot2.anqp.OsuProviderInfo}.
@@ -80,4 +83,125 @@ public class OsuProviderInfoTest {
assertEquals(OsuProviderInfoTestUtil.TEST_OSU_PROVIDER_INFO,
OsuProviderInfo.parse(buffer));
}
+
+ /**
+ * Verify that when a provider contained multiple friendly names in different languages, the
+ * friendly name that's in default language is returned.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void getFriendlyNameMatchingDefaultLocale() throws Exception {
+ List<I18Name> friendlyNames = new ArrayList<>();
+ Locale defaultLocale = Locale.getDefault();
+ Locale nonDefaultLocale = Locale.FRENCH;
+ if (defaultLocale.equals(nonDefaultLocale)) {
+ nonDefaultLocale = Locale.ENGLISH;
+ }
+ String nonDefaultString = "Non-default";
+ String defaultString = "Default";
+ friendlyNames.add(
+ new I18Name(nonDefaultLocale.getLanguage(), nonDefaultLocale, nonDefaultString));
+ friendlyNames.add(new I18Name(defaultLocale.getLanguage(), defaultLocale, defaultString));
+ OsuProviderInfo providerInfo =
+ new OsuProviderInfo(friendlyNames, null, null, null, null, null);
+ assertEquals(defaultString, providerInfo.getFriendlyName());
+ }
+
+ /**
+ * Verify that when a provider contained multiple friendly names where no friendly name
+ * is in default language, the first name in the list is returned.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void getFriendlyNameNotMatchingDefaultLocale() throws Exception {
+ List<I18Name> friendlyNames = new ArrayList<>();
+ Locale nonDefaultLocale = Locale.FRENCH;
+ if (nonDefaultLocale.equals(Locale.getDefault())) {
+ nonDefaultLocale = Locale.ENGLISH;
+ }
+ String firstString = "First name";
+ String secondString = "Second name";
+ friendlyNames.add(
+ new I18Name(nonDefaultLocale.getLanguage(), nonDefaultLocale, firstString));
+ friendlyNames.add(
+ new I18Name(nonDefaultLocale.getLanguage(), nonDefaultLocale, secondString));
+ OsuProviderInfo providerInfo =
+ new OsuProviderInfo(friendlyNames, null, null, null, null, null);
+ assertEquals(firstString, providerInfo.getFriendlyName());
+ }
+
+ /**
+ * Verify that null will be returned for a provider containing empty friendly name list.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void getFriendlyNameWithEmptyList() throws Exception {
+ OsuProviderInfo providerInfo =
+ new OsuProviderInfo(new ArrayList<I18Name>(), null, null, null, null, null);
+ assertEquals(null, providerInfo.getFriendlyName());
+ }
+
+ /**
+ * Verify that when a provider contained multiple service descriptions in different languages,
+ * the service description that's in default language is returned.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void getServiceDescriptionMatchingDefaultLocale() throws Exception {
+ List<I18Name> serviceDescriptions = new ArrayList<>();
+ Locale defaultLocale = Locale.getDefault();
+ Locale nonDefaultLocale = Locale.FRENCH;
+ if (defaultLocale.equals(nonDefaultLocale)) {
+ nonDefaultLocale = Locale.ENGLISH;
+ }
+ String nonDefaultString = "Non-default";
+ String defaultString = "Default";
+ serviceDescriptions.add(
+ new I18Name(nonDefaultLocale.getLanguage(), nonDefaultLocale, nonDefaultString));
+ serviceDescriptions.add(
+ new I18Name(defaultLocale.getLanguage(), defaultLocale, defaultString));
+ OsuProviderInfo providerInfo =
+ new OsuProviderInfo(null, null, null, null, null, serviceDescriptions);
+ assertEquals(defaultString, providerInfo.getServiceDescription());
+ }
+
+ /**
+ * Verify that when a provider contained multiple service descriptions where none of them
+ * is in default language, the first element in the list is returned.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void getServiceDescriptionNotMatchingDefaultLocale() throws Exception {
+ List<I18Name> serviceDescriptions = new ArrayList<>();
+ Locale nonDefaultLocale = Locale.FRENCH;
+ if (nonDefaultLocale.equals(Locale.getDefault())) {
+ nonDefaultLocale = Locale.ENGLISH;
+ }
+ String firstString = "First name";
+ String secondString = "Second name";
+ serviceDescriptions.add(
+ new I18Name(nonDefaultLocale.getLanguage(), nonDefaultLocale, firstString));
+ serviceDescriptions.add(
+ new I18Name(nonDefaultLocale.getLanguage(), nonDefaultLocale, secondString));
+ OsuProviderInfo providerInfo =
+ new OsuProviderInfo(null, null, null, null, null, serviceDescriptions);
+ assertEquals(firstString, providerInfo.getServiceDescription());
+ }
+
+ /**
+ * Verify that null will be returned for a provider containing empty friendly name list.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void getServiceDescriptionWithEmptyList() throws Exception {
+ OsuProviderInfo providerInfo =
+ new OsuProviderInfo(null, null, null, null, null, new ArrayList<I18Name>());
+ assertEquals(null, providerInfo.getServiceDescription());
+ }
}