OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chromoting; | 5 package org.chromium.chromoting; |
6 | 6 |
7 import android.test.InstrumentationTestCase; | 7 import android.test.InstrumentationTestCase; |
8 import android.test.suitebuilder.annotation.MediumTest; | 8 import android.test.suitebuilder.annotation.MediumTest; |
9 import android.test.suitebuilder.annotation.SmallTest; | 9 import android.test.suitebuilder.annotation.SmallTest; |
10 | 10 |
11 import org.chromium.base.test.util.Feature; | 11 import org.chromium.base.test.util.Feature; |
12 import org.chromium.chromoting.test.util.MutableReference; | 12 import org.chromium.chromoting.test.util.MutableReference; |
13 | 13 |
| 14 import java.util.ArrayList; |
| 15 import java.util.List; |
| 16 |
14 /** | 17 /** |
15 * Tests for {@link Event}. | 18 * Tests for {@link Event}. |
16 */ | 19 */ |
17 public class EventTest extends InstrumentationTestCase { | 20 public class EventTest extends InstrumentationTestCase { |
18 @SmallTest | 21 @SmallTest |
19 @Feature({"Chromoting"}) | 22 @Feature({"Chromoting"}) |
20 public static void testBasicScenario() { | 23 public static void testBasicScenario() { |
21 Event.Raisable<Void> event = new Event.Raisable<>(); | 24 Event.Raisable<Void> event = new Event.Raisable<>(); |
22 final MutableReference<Integer> callTimes = new MutableReference<Integer
>(0); | 25 final MutableReference<Integer> callTimes = new MutableReference<Integer
>(0); |
23 Object eventId1 = event.add(new Event.ParameterRunnable<Void>() { | 26 Object eventId1 = event.add(new Event.ParameterRunnable<Void>() { |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 nextReturn.set(false); | 139 nextReturn.set(false); |
137 assertEquals(event.raise(null), 1); | 140 assertEquals(event.raise(null), 1); |
138 assertTrue(called.get()); | 141 assertTrue(called.get()); |
139 assertTrue(event.isEmpty()); | 142 assertTrue(event.isEmpty()); |
140 called.set(false); | 143 called.set(false); |
141 nextReturn.set(true); | 144 nextReturn.set(true); |
142 assertEquals(event.raise(null), 0); | 145 assertEquals(event.raise(null), 0); |
143 assertFalse(called.get()); | 146 assertFalse(called.get()); |
144 assertTrue(event.isEmpty()); | 147 assertTrue(event.isEmpty()); |
145 } | 148 } |
| 149 |
| 150 @SmallTest |
| 151 @Feature({"Chromoting"}) |
| 152 public static void testReproducibleEvent() { |
| 153 Event.Raisable<Object> event = new Event.ReproducibleRaisable<>(); |
| 154 final List<Object> called1 = new ArrayList<>(); |
| 155 final List<Object> called2 = new ArrayList<>(); |
| 156 final List<Object> called3 = new ArrayList<>(); |
| 157 final List<Object> called4 = new ArrayList<>(); |
| 158 final List<Object> parameters = new ArrayList<>(); |
| 159 event.add(new Event.ParameterRunnable<Object>() { |
| 160 @Override |
| 161 public void run(Object obj) { |
| 162 called1.add(obj); |
| 163 } |
| 164 }); |
| 165 Object parameter = new Object(); |
| 166 event.raise(parameter); |
| 167 parameters.add(parameter); |
| 168 event.add(new Event.ParameterRunnable<Object>() { |
| 169 @Override |
| 170 public void run(Object obj) { |
| 171 called2.add(obj); |
| 172 } |
| 173 }); |
| 174 parameter = new Object(); |
| 175 event.raise(parameter); |
| 176 parameters.add(parameter); |
| 177 event.add(new Event.ParameterRunnable<Object>() { |
| 178 @Override |
| 179 public void run(Object obj) { |
| 180 called3.add(obj); |
| 181 } |
| 182 }); |
| 183 parameter = new Object(); |
| 184 event.raise(parameter); |
| 185 parameters.add(parameter); |
| 186 event.add(new Event.ParameterRunnable<Object>() { |
| 187 @Override |
| 188 public void run(Object obj) { |
| 189 called4.add(obj); |
| 190 } |
| 191 }); |
| 192 |
| 193 assertEquals(called1.size(), 3); |
| 194 assertEquals(called2.size(), 3); |
| 195 assertEquals(called3.size(), 2); |
| 196 assertEquals(called4.size(), 1); |
| 197 |
| 198 for (int i = 0; i < 3; i++) { |
| 199 assertTrue(called1.get(i) == parameters.get(i)); |
| 200 assertTrue(called2.get(i) == parameters.get(i)); |
| 201 } |
| 202 for (int i = 0; i < 2; i++) { |
| 203 assertTrue(called3.get(i) == parameters.get(i + 1)); |
| 204 } |
| 205 assertTrue(called4.get(0) == parameters.get(2)); |
| 206 } |
146 } | 207 } |
OLD | NEW |