Updated unittests for refactored classes.
Bug: 176208267
Bug: 177371091
Test: atest CtsTranslationTestCases
Change-Id: I21b34713b3dd4aacabb56e83ee1e68797b9cba09
diff --git a/tests/translation/src/android/translation/cts/CtsTranslationService.java b/tests/translation/src/android/translation/cts/CtsTranslationService.java
index 03e7cc1..5e4ce5c 100644
--- a/tests/translation/src/android/translation/cts/CtsTranslationService.java
+++ b/tests/translation/src/android/translation/cts/CtsTranslationService.java
@@ -20,10 +20,10 @@
import android.os.CancellationSignal;
import android.os.Handler;
import android.os.HandlerThread;
-import android.os.Looper;
-import android.service.translation.TranslationRequest;
import android.service.translation.TranslationService;
import android.util.Log;
+import android.view.translation.TranslationRequest;
+import android.view.translation.TranslationRequestValue;
import android.view.translation.TranslationResponse;
import android.view.translation.TranslationSpec;
@@ -112,8 +112,6 @@
@NonNull CancellationSignal cancellationSignal,
@NonNull OnTranslationResultCallback callback) {
Log.v(TAG, "onTranslationRequest(" + request + ")");
- final android.view.translation.TranslationRequest viewRequest =
- request.getTranslationRequests().get(0);
mHandler.post(() -> sTranslationReplier.handleOnTranslationRequest(getApplicationContext(),
request, sessionId, cancellationSignal, callback));
diff --git a/tests/translation/src/android/translation/cts/TranslationManagerTest.java b/tests/translation/src/android/translation/cts/TranslationManagerTest.java
index 9b54938..2ed4ee7 100644
--- a/tests/translation/src/android/translation/cts/TranslationManagerTest.java
+++ b/tests/translation/src/android/translation/cts/TranslationManagerTest.java
@@ -25,7 +25,9 @@
import android.util.Log;
import android.view.translation.TranslationManager;
import android.view.translation.TranslationRequest;
+import android.view.translation.TranslationRequestValue;
import android.view.translation.TranslationResponse;
+import android.view.translation.TranslationResponseValue;
import android.view.translation.TranslationSpec;
import android.view.translation.Translator;
@@ -100,8 +102,9 @@
sTranslationReplier.addResponse(
new TranslationResponse.Builder(TranslationResponse.TRANSLATION_STATUS_SUCCESS)
- .addTranslations(new TranslationRequest.Builder()
- .setTranslationText("success")
+ .setTranslationResponseValue(0, new TranslationResponseValue
+ .Builder(TranslationResponseValue.STATUS_SUCCESS)
+ .setText("success")
.build())
.build());
@@ -122,7 +125,10 @@
assertThat(translator.isDestroyed()).isFalse();
final TranslationResponse response = translator.translate(
- new TranslationRequest("hello world"));
+ new TranslationRequest.Builder()
+ .addTranslationRequestValue(
+ TranslationRequestValue.forText("hello world"))
+ .build());
sTranslationReplier.getNextTranslationRequest();
@@ -148,11 +154,14 @@
assertThat(response).isNotNull();
assertThat(response.getTranslationStatus())
.isEqualTo(TranslationResponse.TRANSLATION_STATUS_SUCCESS);
- assertThat(response.getTranslations().size()).isEqualTo(1);
+ assertThat(response.getTranslationResponseValues().size()).isEqualTo(1);
+ assertThat(response.getViewTranslationResponses().size()).isEqualTo(0);
- final TranslationRequest request = response.getTranslations().get(0);
- assertThat(request.getAutofillId()).isEqualTo(null);
- assertThat(request.getTranslationText()).isEqualTo("success");
+ final TranslationResponseValue value = response.getTranslationResponseValues().get(0);
+ assertThat(value.getStatusCode()).isEqualTo(TranslationResponseValue.STATUS_SUCCESS);
+ assertThat(value.getText()).isEqualTo("success");
+ assertThat(value.getTransliteration()).isNull();
+ assertThat(value.getDictionaryDescription()).isNull();
}
@Test
diff --git a/tests/translation/src/android/translation/cts/unittests/InternalTranslationRequestTest.java b/tests/translation/src/android/translation/cts/unittests/InternalTranslationRequestTest.java
deleted file mode 100644
index 1255647..0000000
--- a/tests/translation/src/android/translation/cts/unittests/InternalTranslationRequestTest.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2021 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.translation.cts.unittests;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.testng.Assert.assertThrows;
-
-import android.os.Parcel;
-import android.service.translation.TranslationRequest;
-import android.view.autofill.AutofillId;
-import android.view.translation.TranslationSpec;
-
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.ArrayList;
-
-@RunWith(AndroidJUnit4.class)
-public class InternalTranslationRequestTest {
-
- private final TranslationSpec mSourceSpec =
- new TranslationSpec("en", TranslationSpec.DATA_FORMAT_TEXT);
- private final TranslationSpec mDestSpec =
- new TranslationSpec("zh", TranslationSpec.DATA_FORMAT_TEXT);
- private final android.view.translation.TranslationRequest mRequest =
- new android.view.translation.TranslationRequest.Builder()
- .setAutofillId(new AutofillId(17))
- .setTranslationText("sample text")
- .build();
-
- @Test
- public void testBuilder_nullSpecs() {
- final ArrayList<android.view.translation.TranslationRequest> requests = new ArrayList<>();
- assertThrows(NullPointerException.class, () -> {
- final TranslationRequest request =
- new TranslationRequest.Builder(0, null, mDestSpec, requests).build();
- });
- assertThrows(NullPointerException.class, () -> {
- final TranslationRequest request =
- new TranslationRequest.Builder(0, mSourceSpec, null, requests).build();
- });
- }
-
- @Test
- public void testBuilder_nullRequests() {
- assertThrows(NullPointerException.class, () -> {
- final TranslationRequest request =
- new TranslationRequest.Builder(0, mSourceSpec, mDestSpec, null).build();
- });
- }
-
- @Test
- public void testBuilder_validRequests() {
- final ArrayList<android.view.translation.TranslationRequest> requests = new ArrayList<>();
- requests.add(mRequest);
- final TranslationRequest request =
- new TranslationRequest.Builder(0, mSourceSpec, mDestSpec, requests).build();
-
- assertThat(request.getRequestId()).isEqualTo(0);
- assertThat(request.getSourceSpec()).isEqualTo(mSourceSpec);
- assertThat(request.getDestSpec()).isEqualTo(mDestSpec);
- assertThat(request.getTranslationRequests().size()).isEqualTo(1);
-
- final android.view.translation.TranslationRequest request1 =
- request.getTranslationRequests().get(0);
- assertThat(request1.getAutofillId()).isEqualTo(new AutofillId(17));
- assertThat(request1.getTranslationText()).isEqualTo("sample text");
- }
-
- @Test
- public void testBuilder_validAddRequests() {
- final ArrayList<android.view.translation.TranslationRequest> requests = new ArrayList<>();
- final TranslationRequest request =
- new TranslationRequest.Builder(0, mSourceSpec, mDestSpec, requests)
- .addTranslationRequests(mRequest)
- .build();
-
- assertThat(request.getRequestId()).isEqualTo(0);
- assertThat(request.getSourceSpec()).isEqualTo(mSourceSpec);
- assertThat(request.getDestSpec()).isEqualTo(mDestSpec);
- assertThat(request.getTranslationRequests().size()).isEqualTo(1);
-
- final android.view.translation.TranslationRequest request1 =
- request.getTranslationRequests().get(0);
- assertThat(request1.getAutofillId()).isEqualTo(new AutofillId(17));
- assertThat(request1.getTranslationText()).isEqualTo("sample text");
- }
-
- @Test
- public void testParceledRequest() {
- final ArrayList<android.view.translation.TranslationRequest> requests = new ArrayList<>();
- requests.add(mRequest);
- final TranslationRequest request =
- new TranslationRequest.Builder(0, mSourceSpec, mDestSpec, requests).build();
-
- final Parcel parcel = Parcel.obtain();
- request.writeToParcel(parcel, 0);
- parcel.setDataPosition(0);
- final TranslationRequest parceledRequest =
- TranslationRequest.CREATOR.createFromParcel(parcel);
-
- assertThat(request.getRequestId()).isEqualTo(0);
- assertThat(request.getSourceSpec()).isEqualTo(mSourceSpec);
- assertThat(request.getDestSpec()).isEqualTo(mDestSpec);
- assertThat(request.getTranslationRequests().size()).isEqualTo(1);
-
- final android.view.translation.TranslationRequest request1 =
- parceledRequest.getTranslationRequests().get(0);
- assertThat(request1.getAutofillId()).isEqualTo(new AutofillId(17));
- assertThat(request1.getTranslationText()).isEqualTo("sample text");
- }
-}
\ No newline at end of file
diff --git a/tests/translation/src/android/translation/cts/unittests/TranslationRequestTest.java b/tests/translation/src/android/translation/cts/unittests/TranslationRequestTest.java
index eb3b772..a62f331 100644
--- a/tests/translation/src/android/translation/cts/unittests/TranslationRequestTest.java
+++ b/tests/translation/src/android/translation/cts/unittests/TranslationRequestTest.java
@@ -21,6 +21,8 @@
import android.os.Parcel;
import android.view.autofill.AutofillId;
import android.view.translation.TranslationRequest;
+import android.view.translation.TranslationRequestValue;
+import android.view.translation.ViewTranslationRequest;
import androidx.test.runner.AndroidJUnit4;
@@ -30,25 +32,49 @@
@RunWith(AndroidJUnit4.class)
public class TranslationRequestTest {
- private final AutofillId mAutofillId = new AutofillId(17);
- private final String mTranslationText = "sample text";
+ private final TranslationRequestValue mValue = TranslationRequestValue.forText("hello");
+
+ private final ViewTranslationRequest mRequest = new ViewTranslationRequest
+ .Builder(new AutofillId(17))
+ .setValue("sample id", TranslationRequestValue.forText("sample text"))
+ .build();
@Test
- public void testBuilder_validRequest() {
+ public void testBuilder_validViewTranslationRequest() {
final TranslationRequest request = new TranslationRequest.Builder()
- .setAutofillId(mAutofillId)
- .setTranslationText(mTranslationText)
+ .addViewTranslationRequest(mRequest)
.build();
- assertThat(request.getAutofillId()).isEqualTo(new AutofillId(17));
- assertThat(request.getTranslationText()).isEqualTo("sample text");
+ assertThat(request.getTranslationRequestValues().size()).isEqualTo(0);
+ assertThat(request.getViewTranslationRequests().size()).isEqualTo(1);
+
+ final ViewTranslationRequest viewRequest =
+ request.getViewTranslationRequests().get(0);
+ assertThat(viewRequest.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(viewRequest.getKeys().size()).isEqualTo(1);
+ assertThat(viewRequest.getKeys()).containsExactly("sample id");
+ assertThat(viewRequest.getValue("sample id").getText()).isEqualTo("sample text");
}
@Test
- public void testParceledRequest() {
+ public void testBuilder_validTranslationRequestValue() {
final TranslationRequest request = new TranslationRequest.Builder()
- .setAutofillId(mAutofillId)
- .setTranslationText(mTranslationText)
+ .addTranslationRequestValue(mValue)
+ .build();
+
+ assertThat(request.getTranslationRequestValues().size()).isEqualTo(1);
+ assertThat(request.getViewTranslationRequests().size()).isEqualTo(0);
+
+ final TranslationRequestValue value =
+ request.getTranslationRequestValues().get(0);
+ assertThat(value.getText()).isEqualTo("hello");
+ }
+
+ @Test
+ public void testParceledRequest_validTranslationRequestValues() {
+ final TranslationRequest request = new TranslationRequest.Builder()
+ .addTranslationRequestValue(mValue)
+ .addTranslationRequestValue(TranslationRequestValue.forText("world"))
.build();
final Parcel parcel = Parcel.obtain();
@@ -57,7 +83,98 @@
final TranslationRequest parceledRequest =
TranslationRequest.CREATOR.createFromParcel(parcel);
- assertThat(request.getAutofillId()).isEqualTo(new AutofillId(17));
- assertThat(request.getTranslationText()).isEqualTo("sample text");
+ assertThat(parceledRequest.getTranslationRequestValues().size()).isEqualTo(2);
+ assertThat(parceledRequest.getViewTranslationRequests().size()).isEqualTo(0);
+
+ final TranslationRequestValue value1 =
+ parceledRequest.getTranslationRequestValues().get(0);
+ assertThat(value1.getText()).isEqualTo("hello");
+
+ final TranslationRequestValue value2 =
+ parceledRequest.getTranslationRequestValues().get(1);
+ assertThat(value2.getText()).isEqualTo("world");
+ }
+
+ @Test
+ public void testBuilder_sameAutofillIdViewTranslationRequests() {
+ final TranslationRequest request = new TranslationRequest.Builder()
+ .addViewTranslationRequest(mRequest)
+ .addViewTranslationRequest(
+ new ViewTranslationRequest.Builder(new AutofillId(17))
+ .setValue("id2", TranslationRequestValue.forText("text2"))
+ .build())
+ .build();
+
+ assertThat(request.getTranslationRequestValues().size()).isEqualTo(0);
+ assertThat(request.getViewTranslationRequests().size()).isEqualTo(2);
+
+ final ViewTranslationRequest viewRequest =
+ request.getViewTranslationRequests().get(0);
+ assertThat(viewRequest.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(viewRequest.getKeys().size()).isEqualTo(1);
+ assertThat(viewRequest.getKeys()).containsExactly("sample id");
+ assertThat(viewRequest.getValue("sample id").getText()).isEqualTo("sample text");
+
+ final ViewTranslationRequest viewRequest2 =
+ request.getViewTranslationRequests().get(1);
+ assertThat(viewRequest2.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(viewRequest2.getKeys().size()).isEqualTo(1);
+ assertThat(viewRequest2.getKeys()).containsExactly("id2");
+ assertThat(viewRequest2.getValue("id2").getText()).isEqualTo("text2");
+ }
+
+ @Test
+ public void testBuilder_mixingAdders() {
+ final TranslationRequest request = new TranslationRequest.Builder()
+ .addViewTranslationRequest(mRequest)
+ .addTranslationRequestValue(mValue)
+ .build();
+
+ assertThat(request.getTranslationRequestValues().size()).isEqualTo(1);
+ assertThat(request.getViewTranslationRequests().size()).isEqualTo(1);
+
+ final ViewTranslationRequest viewRequest =
+ request.getViewTranslationRequests().get(0);
+ assertThat(viewRequest.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(viewRequest.getKeys().size()).isEqualTo(1);
+ assertThat(viewRequest.getKeys()).containsExactly("sample id");
+ assertThat(viewRequest.getValue("sample id").getText()).isEqualTo("sample text");
+
+ final TranslationRequestValue value =
+ request.getTranslationRequestValues().get(0);
+ assertThat(value.getText()).isEqualTo("hello");
+ }
+
+ @Test
+ public void testParceledRequest_validViewTranslationRequests() {
+ final TranslationRequest request = new TranslationRequest.Builder()
+ .addViewTranslationRequest(mRequest)
+ .addViewTranslationRequest(new ViewTranslationRequest.Builder(new AutofillId(42))
+ .setValue("id2", TranslationRequestValue.forText("test"))
+ .build())
+ .build();
+
+ final Parcel parcel = Parcel.obtain();
+ request.writeToParcel(parcel, 0);
+ parcel.setDataPosition(0);
+ final TranslationRequest parceledRequest =
+ TranslationRequest.CREATOR.createFromParcel(parcel);
+
+ assertThat(parceledRequest.getTranslationRequestValues().size()).isEqualTo(0);
+ assertThat(parceledRequest.getViewTranslationRequests().size()).isEqualTo(2);
+
+ final ViewTranslationRequest request1 =
+ parceledRequest.getViewTranslationRequests().get(0);
+ assertThat(request1.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(request1.getKeys().size()).isEqualTo(1);
+ assertThat(request1.getKeys()).containsExactly("sample id");
+ assertThat(request1.getValue("sample id").getText()).isEqualTo("sample text");
+
+ final ViewTranslationRequest request2 =
+ parceledRequest.getViewTranslationRequests().get(1);
+ assertThat(request2.getAutofillId()).isEqualTo(new AutofillId(42));
+ assertThat(request2.getKeys().size()).isEqualTo(1);
+ assertThat(request2.getKeys()).containsExactly("id2");
+ assertThat(request2.getValue("id2").getText()).isEqualTo("test");
}
}
\ No newline at end of file
diff --git a/tests/translation/src/android/translation/cts/unittests/TranslationResponseTest.java b/tests/translation/src/android/translation/cts/unittests/TranslationResponseTest.java
index 85548e1..d7f0054 100644
--- a/tests/translation/src/android/translation/cts/unittests/TranslationResponseTest.java
+++ b/tests/translation/src/android/translation/cts/unittests/TranslationResponseTest.java
@@ -16,131 +16,178 @@
package android.translation.cts.unittests;
+import static android.view.translation.TranslationResponseValue.STATUS_SUCCESS;
+
import static com.google.common.truth.Truth.assertThat;
+import static org.testng.Assert.assertThrows;
+
import android.os.Parcel;
import android.view.autofill.AutofillId;
-import android.view.translation.TranslationRequest;
import android.view.translation.TranslationResponse;
+import android.view.translation.TranslationResponseValue;
+import android.view.translation.ViewTranslationResponse;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
-import java.util.ArrayList;
-
@RunWith(AndroidJUnit4.class)
public class TranslationResponseTest {
- private final TranslationRequest mRequest = new TranslationRequest.Builder()
- .setAutofillId(new AutofillId(17))
- .setTranslationText("text1")
- .build();
- private final TranslationRequest mRequest2 = new TranslationRequest.Builder()
- .setAutofillId(new AutofillId(42))
- .setTranslationText("text2")
+ private final TranslationResponseValue mValue =
+ new TranslationResponseValue.Builder(STATUS_SUCCESS)
+ .setText("hello")
+ .build();
+
+ private final ViewTranslationResponse mResponse = new ViewTranslationResponse
+ .Builder(new AutofillId(17))
+ .setValue("sample id",
+ new TranslationResponseValue.Builder(STATUS_SUCCESS)
+ .setText("sample text")
+ .build())
.build();
@Test
- public void testBuilder_nullTranslation() {
- final TranslationResponse response =
+ public void testBuilder_validViewTranslationResponse() {
+ final TranslationResponse request =
new TranslationResponse.Builder(TranslationResponse.TRANSLATION_STATUS_SUCCESS)
- .addTranslations(null)
- .build();
+ .setViewTranslationResponse(0, mResponse)
+ .build();
- assertThat(response.getTranslationStatus())
- .isEqualTo(TranslationResponse.TRANSLATION_STATUS_SUCCESS);
- assertThat(response.getTranslations().size()).isEqualTo(1);
- assertThat(response.getTranslations().get(0)).isNull();
+ assertThat(request.getTranslationResponseValues().size()).isEqualTo(0);
+ assertThat(request.getViewTranslationResponses().size()).isEqualTo(1);
+
+ final ViewTranslationResponse viewRequest =
+ request.getViewTranslationResponses().get(0);
+ assertThat(viewRequest.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(viewRequest.getKeys().size()).isEqualTo(1);
+ assertThat(viewRequest.getValue("sample id").getText()).isEqualTo("sample text");
}
@Test
- public void testBuilder_emptyTranslations() {
- final TranslationResponse response =
+ public void testBuilder_errorViewTranslationResponse() {
+ final TranslationResponse request =
new TranslationResponse.Builder(TranslationResponse.TRANSLATION_STATUS_SUCCESS)
- .build();
+ .setViewTranslationResponse(0, new ViewTranslationResponse
+ .Builder(new AutofillId(42))
+ .setValue("id2",
+ TranslationResponseValue.forError())
+ .build())
+ .build();
- assertThat(response.getTranslationStatus())
- .isEqualTo(TranslationResponse.TRANSLATION_STATUS_SUCCESS);
- assertThat(response.getTranslations().size()).isEqualTo(0);
+ assertThat(request.getTranslationResponseValues().size()).isEqualTo(0);
+ assertThat(request.getViewTranslationResponses().size()).isEqualTo(1);
+
+ final ViewTranslationResponse viewRequest =
+ request.getViewTranslationResponses().get(0);
+ assertThat(viewRequest.getAutofillId()).isEqualTo(new AutofillId(42));
+ assertThat(viewRequest.getKeys().size()).isEqualTo(1);
+ assertThat(viewRequest.getValue("id2").getStatusCode())
+ .isEqualTo(TranslationResponseValue.STATUS_ERROR);
}
@Test
- public void testBuilder_changeTranslationStatus() {
- final TranslationResponse response =
+ public void testBuilder_validTranslationResponseValue() {
+ final TranslationResponse request =
new TranslationResponse.Builder(TranslationResponse.TRANSLATION_STATUS_SUCCESS)
- .setTranslationStatus(TranslationResponse.TRANSLATION_STATUS_UNKNOWN_ERROR)
- .build();
+ .setTranslationResponseValue(0, mValue)
+ .build();
- assertThat(response.getTranslationStatus())
- .isEqualTo(TranslationResponse.TRANSLATION_STATUS_UNKNOWN_ERROR);
+ assertThat(request.getTranslationResponseValues().size()).isEqualTo(1);
+ assertThat(request.getViewTranslationResponses().size()).isEqualTo(0);
+
+ final TranslationResponseValue value =
+ request.getTranslationResponseValues().get(0);
+ assertThat(value.getText()).isEqualTo("hello");
}
@Test
- public void testBuilder_validAddRequests() {
- final TranslationResponse response =
+ public void testParceledRequest_validTranslationResponseValues() {
+ final TranslationResponse request =
new TranslationResponse.Builder(TranslationResponse.TRANSLATION_STATUS_SUCCESS)
- .addTranslations(mRequest)
- .addTranslations(mRequest2)
- .build();
-
- assertThat(response.getTranslationStatus())
- .isEqualTo(TranslationResponse.TRANSLATION_STATUS_SUCCESS);
- assertThat(response.getTranslations().size()).isEqualTo(2);
-
- final TranslationRequest request1 = response.getTranslations().get(0);
- assertThat(request1.getAutofillId()).isEqualTo(new AutofillId(17));
- assertThat(request1.getTranslationText()).isEqualTo("text1");
-
- final TranslationRequest request2 = response.getTranslations().get(1);
- assertThat(request2.getAutofillId()).isEqualTo(new AutofillId(42));
- assertThat(request2.getTranslationText()).isEqualTo("text2");
- }
-
- @Test
- public void testBuilder_validSetRequests() {
- final ArrayList<TranslationRequest> requests = new ArrayList<>();
- requests.add(mRequest);
- requests.add(mRequest2);
- final TranslationResponse response =
- new TranslationResponse.Builder(TranslationResponse.TRANSLATION_STATUS_SUCCESS)
- .setTranslations(requests)
- .build();
-
- assertThat(response.getTranslationStatus())
- .isEqualTo(TranslationResponse.TRANSLATION_STATUS_SUCCESS);
- assertThat(response.getTranslations().size()).isEqualTo(2);
-
- final TranslationRequest request1 = response.getTranslations().get(0);
- assertThat(request1.getAutofillId()).isEqualTo(new AutofillId(17));
- assertThat(request1.getTranslationText()).isEqualTo("text1");
-
- final TranslationRequest request2 = response.getTranslations().get(1);
- assertThat(request2.getAutofillId()).isEqualTo(new AutofillId(42));
- assertThat(request2.getTranslationText()).isEqualTo("text2");
- }
-
- @Test
- public void testParceledResponse() {
- final TranslationResponse response =
- new TranslationResponse.Builder(TranslationResponse.TRANSLATION_STATUS_SUCCESS)
- .addTranslations(mRequest)
- .build();
+ .setTranslationResponseValue(0, mValue)
+ .setTranslationResponseValue(2,
+ new TranslationResponseValue.Builder(STATUS_SUCCESS)
+ .setText("world")
+ .build())
+ .build();
final Parcel parcel = Parcel.obtain();
- response.writeToParcel(parcel, 0);
+ request.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
- final TranslationResponse parceledResponse =
+ final TranslationResponse parceledRequest =
TranslationResponse.CREATOR.createFromParcel(parcel);
- assertThat(response.getTranslationStatus())
- .isEqualTo(TranslationResponse.TRANSLATION_STATUS_SUCCESS);
- assertThat(response.getTranslations().size()).isEqualTo(1);
+ assertThat(parceledRequest.getTranslationResponseValues().size()).isEqualTo(2);
+ assertThat(parceledRequest.getViewTranslationResponses().size()).isEqualTo(0);
- final TranslationRequest request1 = response.getTranslations().get(0);
+ final TranslationResponseValue value1 =
+ parceledRequest.getTranslationResponseValues().get(0);
+ assertThat(value1.getText()).isEqualTo("hello");
+
+ final TranslationResponseValue value2 =
+ parceledRequest.getTranslationResponseValues().get(2);
+ assertThat(value2.getText()).isEqualTo("world");
+ }
+
+ @Test
+ public void testBuilder_mixingAdders() {
+ final TranslationResponse response =
+ new TranslationResponse.Builder(TranslationResponse.TRANSLATION_STATUS_SUCCESS)
+ .setViewTranslationResponse(0, mResponse)
+ .setTranslationResponseValue(0, mValue)
+ .build();
+
+ assertThat(response.getTranslationResponseValues().size()).isEqualTo(1);
+ assertThat(response.getViewTranslationResponses().size()).isEqualTo(1);
+
+ final ViewTranslationResponse viewResponse =
+ response.getViewTranslationResponses().get(0);
+ assertThat(viewResponse.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(viewResponse.getKeys().size()).isEqualTo(1);
+ assertThat(viewResponse.getValue("sample id").getText()).isEqualTo("sample text");
+
+ final TranslationResponseValue value =
+ response.getTranslationResponseValues().get(0);
+ assertThat(value.getText()).isEqualTo("hello");
+ }
+
+ @Test
+ public void testParceledRequest_validViewTranslationResponses() {
+ final TranslationResponse request =
+ new TranslationResponse.Builder(TranslationResponse.TRANSLATION_STATUS_SUCCESS)
+ .setViewTranslationResponse(0, mResponse)
+ .setViewTranslationResponse(2, new ViewTranslationResponse
+ .Builder(new AutofillId(42))
+ .setValue("id2",
+ new TranslationResponseValue.Builder(STATUS_SUCCESS)
+ .setText("test")
+ .build())
+ .build())
+ .build();
+
+ final Parcel parcel = Parcel.obtain();
+ request.writeToParcel(parcel, 0);
+ parcel.setDataPosition(0);
+ final TranslationResponse parceledRequest =
+ TranslationResponse.CREATOR.createFromParcel(parcel);
+
+ assertThat(parceledRequest.getTranslationResponseValues().size()).isEqualTo(0);
+ assertThat(parceledRequest.getViewTranslationResponses().size()).isEqualTo(2);
+
+ final ViewTranslationResponse request1 =
+ parceledRequest.getViewTranslationResponses().get(0);
assertThat(request1.getAutofillId()).isEqualTo(new AutofillId(17));
- assertThat(request1.getTranslationText()).isEqualTo("text1");
+ assertThat(request1.getKeys().size()).isEqualTo(1);
+ assertThat(request1.getValue("sample id").getText()).isEqualTo("sample text");
+
+ final ViewTranslationResponse request2 =
+ parceledRequest.getViewTranslationResponses().get(2);
+ assertThat(request2.getAutofillId()).isEqualTo(new AutofillId(42));
+ assertThat(request2.getKeys().size()).isEqualTo(1);
+ assertThat(request2.getValue("id2").getText()).isEqualTo("test");
}
}
\ No newline at end of file
diff --git a/tests/translation/src/android/translation/cts/unittests/TranslationValueTest.java b/tests/translation/src/android/translation/cts/unittests/TranslationValueTest.java
new file mode 100644
index 0000000..0144224
--- /dev/null
+++ b/tests/translation/src/android/translation/cts/unittests/TranslationValueTest.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2021 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.translation.cts.unittests;
+
+import static android.view.translation.TranslationResponseValue.STATUS_SUCCESS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
+import android.view.translation.TranslationRequestValue;
+import android.view.translation.TranslationResponseValue;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class TranslationValueTest {
+
+ @Test
+ public void testTranslationRequestValue_forText() {
+ final TranslationRequestValue value = TranslationRequestValue.forText("sample text");
+
+ assertThat(value.getText()).isEqualTo("sample text");
+ }
+
+ @Test
+ public void testTranslationResponseValue_validBuilder() {
+ final TranslationResponseValue value = new TranslationResponseValue.Builder(STATUS_SUCCESS)
+ .setText("sample text")
+ .build();
+
+ assertThat(value.getStatusCode()).isEqualTo(STATUS_SUCCESS);
+ assertThat(value.getText()).isEqualTo("sample text");
+ }
+
+ @Test
+ public void testTranslationResponseValue_forError() {
+ final TranslationResponseValue value = TranslationResponseValue.forError();
+
+ assertThat(value.getStatusCode()).isEqualTo(TranslationResponseValue.STATUS_ERROR);
+ assertThat(value.getText()).isNull();
+ }
+}
diff --git a/tests/translation/src/android/translation/cts/unittests/ViewTranslationRequestTest.java b/tests/translation/src/android/translation/cts/unittests/ViewTranslationRequestTest.java
new file mode 100644
index 0000000..5a6d46b
--- /dev/null
+++ b/tests/translation/src/android/translation/cts/unittests/ViewTranslationRequestTest.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2021 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.translation.cts.unittests;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
+import android.view.autofill.AutofillId;
+import android.view.translation.TranslationRequestValue;
+import android.view.translation.ViewTranslationRequest;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class ViewTranslationRequestTest {
+
+ private final AutofillId mAutofillId = new AutofillId(17);
+
+ @Test
+ public void testBuilder_nullAutofillId() {
+ assertThrows(NullPointerException.class, () -> new ViewTranslationRequest.Builder(null));
+ }
+
+ @Test
+ public void testBuilder_validSetText() {
+ final ViewTranslationRequest request = new ViewTranslationRequest.Builder(mAutofillId)
+ .setValue("sample id",
+ TranslationRequestValue.forText("sample text"))
+ .build();
+
+ assertThat(request.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(request.getKeys().size()).isEqualTo(1);
+ assertThat(request.getKeys()).containsExactly("sample id");
+ assertThat(request.getValue("sample id").getText()).isEqualTo("sample text");
+ }
+
+ @Test
+ public void testBuilder_setTextTwice() {
+ final ViewTranslationRequest request = new ViewTranslationRequest.Builder(mAutofillId)
+ .setValue("sample id",
+ TranslationRequestValue.forText("sample text"))
+ .setValue("sample id",
+ TranslationRequestValue.forText("text2"))
+ .build();
+
+ assertThat(request.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(request.getKeys().size()).isEqualTo(1);
+ assertThat(request.getKeys()).containsExactly("sample id");
+ assertThat(request.getValue("sample id").getText()).isEqualTo("text2");
+ }
+
+ @Test
+ public void testGetValue_invalidId() {
+ final ViewTranslationRequest request = new ViewTranslationRequest.Builder(mAutofillId)
+ .setValue("sample id",
+ TranslationRequestValue.forText("sample text"))
+ .build();
+
+ assertThat(request.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(request.getKeys().size()).isEqualTo(1);
+ assertThat(request.getKeys()).containsExactly("sample id");
+ assertThat(request.getValue("sample id").getText()).isEqualTo("sample text");
+
+ assertThrows(IllegalArgumentException.class, () -> request.getValue("something"));
+ assertThrows(NullPointerException.class, () -> request.getValue(null));
+ }
+
+ @Test
+ public void testBuilder_multipleTexts() {
+ final ViewTranslationRequest request = new ViewTranslationRequest.Builder(mAutofillId)
+ .setValue("sample id",
+ TranslationRequestValue.forText("sample text"))
+ .setValue("id2",
+ TranslationRequestValue.forText("text2"))
+ .build();
+
+ assertThat(request.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(request.getKeys().size()).isEqualTo(2);
+ assertThat(request.getKeys()).containsExactly("sample id", "id2");
+ assertThat(request.getValue("sample id").getText()).isEqualTo("sample text");
+ assertThat(request.getValue("id2").getText()).isEqualTo("text2");
+ }
+}
diff --git a/tests/translation/src/android/translation/cts/unittests/ViewTranslationResponseTest.java b/tests/translation/src/android/translation/cts/unittests/ViewTranslationResponseTest.java
new file mode 100644
index 0000000..c3a9516
--- /dev/null
+++ b/tests/translation/src/android/translation/cts/unittests/ViewTranslationResponseTest.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2021 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.translation.cts.unittests;
+
+import static android.view.translation.TranslationResponseValue.STATUS_SUCCESS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
+import android.view.autofill.AutofillId;
+import android.view.translation.TranslationResponseValue;
+import android.view.translation.ViewTranslationResponse;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class ViewTranslationResponseTest {
+
+ private final AutofillId mAutofillId = new AutofillId(17);
+
+ @Test
+ public void testBuilder_nullAutofillId() {
+ assertThrows(NullPointerException.class, () -> new ViewTranslationResponse.Builder(null));
+ }
+
+ @Test
+ public void testBuilder_validAddText() {
+ final ViewTranslationResponse request = new ViewTranslationResponse.Builder(mAutofillId)
+ .setValue("sample id",
+ new TranslationResponseValue.Builder(STATUS_SUCCESS)
+ .setText("sample text")
+ .build())
+ .build();
+
+ assertThat(request.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(request.getKeys().size()).isEqualTo(1);
+ assertThat(request.getValue("sample id").getText()).isEqualTo("sample text");
+ }
+
+ @Test
+ public void testBuilder_validAddError() {
+ final ViewTranslationResponse request = new ViewTranslationResponse.Builder(mAutofillId)
+ .setValue("sample id", TranslationResponseValue.forError())
+ .build();
+
+ assertThat(request.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(request.getKeys().size()).isEqualTo(1);
+ assertThat(request.getValue("sample id").getStatusCode())
+ .isEqualTo(TranslationResponseValue.STATUS_ERROR);
+ }
+
+ @Test
+ public void testGetValue_invalidId() {
+ final ViewTranslationResponse request = new ViewTranslationResponse.Builder(mAutofillId)
+ .setValue("sample id",
+ new TranslationResponseValue.Builder(STATUS_SUCCESS)
+ .setText("sample text")
+ .build())
+ .build();
+
+ assertThat(request.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(request.getKeys().size()).isEqualTo(1);
+ assertThat(request.getValue("sample id").getText()).isEqualTo("sample text");
+
+ assertThrows(IllegalArgumentException.class, () -> request.getValue("something"));
+ assertThrows(NullPointerException.class, () -> request.getValue(null));
+ }
+
+ @Test
+ public void testBuilder_multipleResults() {
+ final ViewTranslationResponse request = new ViewTranslationResponse.Builder(mAutofillId)
+ .setValue("sample id",
+ new TranslationResponseValue.Builder(STATUS_SUCCESS)
+ .setText("sample text")
+ .build())
+ .setValue("id2",
+ new TranslationResponseValue.Builder(STATUS_SUCCESS)
+ .setText("text2")
+ .build())
+ .setValue("id3", TranslationResponseValue.forError())
+ .build();
+
+ assertThat(request.getAutofillId()).isEqualTo(new AutofillId(17));
+ assertThat(request.getKeys().size()).isEqualTo(3);
+ assertThat(request.getValue("sample id").getText()).isEqualTo("sample text");
+ assertThat(request.getValue("id2").getText()).isEqualTo("text2");
+ assertThat(request.getValue("id3").getStatusCode())
+ .isEqualTo(TranslationResponseValue.STATUS_ERROR);
+ }
+}