Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(778)

Unified Diff: remoting/android/javatests/src/org/chromium/chromoting/EventTest.java

Issue 2385593002: [Chromoting] PromisedRaisable in Android client (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/android/javatests/src/org/chromium/chromoting/EventTest.java
diff --git a/remoting/android/javatests/src/org/chromium/chromoting/EventTest.java b/remoting/android/javatests/src/org/chromium/chromoting/EventTest.java
index cf828a3a4ff45aaa6ed3c5550833b929b1e26c98..1507444b9f85e2e7d2291ed040ffda9d50067988 100644
--- a/remoting/android/javatests/src/org/chromium/chromoting/EventTest.java
+++ b/remoting/android/javatests/src/org/chromium/chromoting/EventTest.java
@@ -11,6 +11,9 @@ import android.test.suitebuilder.annotation.SmallTest;
import org.chromium.base.test.util.Feature;
import org.chromium.chromoting.test.util.MutableReference;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* Tests for {@link Event}.
*/
@@ -143,4 +146,62 @@ public class EventTest extends InstrumentationTestCase {
assertFalse(called.get());
assertTrue(event.isEmpty());
}
+
+ @SmallTest
+ @Feature({"Chromoting"})
+ public static void testReproducibleEvent() {
+ Event.Raisable<Object> event = new Event.ReproducibleRaisable<>();
+ final List<Object> called1 = new ArrayList<>();
+ final List<Object> called2 = new ArrayList<>();
+ final List<Object> called3 = new ArrayList<>();
+ final List<Object> called4 = new ArrayList<>();
+ final List<Object> parameters = new ArrayList<>();
+ event.add(new Event.ParameterRunnable<Object>() {
+ @Override
+ public void run(Object obj) {
+ called1.add(obj);
+ }
+ });
+ Object parameter = new Object();
+ event.raise(parameter);
+ parameters.add(parameter);
+ event.add(new Event.ParameterRunnable<Object>() {
+ @Override
+ public void run(Object obj) {
+ called2.add(obj);
+ }
+ });
+ parameter = new Object();
+ event.raise(parameter);
+ parameters.add(parameter);
+ event.add(new Event.ParameterRunnable<Object>() {
+ @Override
+ public void run(Object obj) {
+ called3.add(obj);
+ }
+ });
+ parameter = new Object();
+ event.raise(parameter);
+ parameters.add(parameter);
+ event.add(new Event.ParameterRunnable<Object>() {
+ @Override
+ public void run(Object obj) {
+ called4.add(obj);
+ }
+ });
+
+ assertEquals(called1.size(), 3);
+ assertEquals(called2.size(), 3);
+ assertEquals(called3.size(), 2);
+ assertEquals(called4.size(), 1);
+
+ for (int i = 0; i < 3; i++) {
+ assertTrue(called1.get(i) == parameters.get(i));
+ assertTrue(called2.get(i) == parameters.get(i));
+ }
+ for (int i = 0; i < 2; i++) {
+ assertTrue(called3.get(i) == parameters.get(i + 1));
+ }
+ assertTrue(called4.get(0) == parameters.get(2));
+ }
}

Powered by Google App Engine
This is Rietveld 408576698