summaryrefslogtreecommitdiffstats
path: root/base/android/javatests/src/org/chromium
diff options
context:
space:
mode:
authorkkimlabs@chromium.org <kkimlabs@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-04 01:24:46 +0000
committerkkimlabs@chromium.org <kkimlabs@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-04 01:24:46 +0000
commit0dfbb9e1db98b3b15f77080cf5ab957bda3f11fb (patch)
tree959941ef780a911a9c44e71b2f7bb1869ea0c74c /base/android/javatests/src/org/chromium
parent506cffda1d172de96de10167d82ed0cf1a7358e0 (diff)
downloadchromium_src-0dfbb9e1db98b3b15f77080cf5ab957bda3f11fb.zip
chromium_src-0dfbb9e1db98b3b15f77080cf5ab957bda3f11fb.tar.gz
chromium_src-0dfbb9e1db98b3b15f77080cf5ab957bda3f11fb.tar.bz2
[Android] Add reinitiate() to ObserverList's iterator.
If we need to iterate an ObserverList multiple times, we can avoid iterator object reallocation by using this reinitiate() method. BUG=273217 Review URL: https://chromiumcodereview.appspot.com/22824044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221105 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/android/javatests/src/org/chromium')
-rw-r--r--base/android/javatests/src/org/chromium/base/ObserverListTest.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/base/android/javatests/src/org/chromium/base/ObserverListTest.java b/base/android/javatests/src/org/chromium/base/ObserverListTest.java
index 10c898c..8a17445 100644
--- a/base/android/javatests/src/org/chromium/base/ObserverListTest.java
+++ b/base/android/javatests/src/org/chromium/base/ObserverListTest.java
@@ -7,6 +7,7 @@ package org.chromium.base;
import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.SmallTest;
+import org.chromium.base.ObserverList;
import org.chromium.base.test.util.Feature;
import java.lang.Iterable;
@@ -177,4 +178,43 @@ public class ObserverListTest extends InstrumentationTestCase {
}
assertTrue(noElementExceptionThrown);
}
+
+ @SmallTest
+ @Feature({"Android-AppBase"})
+ public void testRewindableIterator() {
+ ObserverList<Integer> observerList = new ObserverList<Integer>();
+ observerList.addObserver(5);
+ observerList.addObserver(10);
+ observerList.addObserver(15);
+ assertEquals(3, getSizeOfIterable(observerList));
+
+ ObserverList.RewindableIterator<Integer> it = observerList.rewindableIterator();
+ assertTrue(it.hasNext());
+ assertTrue(5 == it.next());
+ assertTrue(it.hasNext());
+ assertTrue(10 == it.next());
+ assertTrue(it.hasNext());
+ assertTrue(15 == it.next());
+ assertFalse(it.hasNext());
+
+ it.rewind();
+
+ assertTrue(it.hasNext());
+ assertTrue(5 == it.next());
+ assertTrue(it.hasNext());
+ assertTrue(10 == it.next());
+ assertTrue(it.hasNext());
+ assertTrue(15 == it.next());
+ assertEquals(5, (int) observerList.mObservers.get(0));
+ observerList.removeObserver(5);
+ assertEquals(null, observerList.mObservers.get(0));
+
+ it.rewind();
+
+ assertEquals(10, (int) observerList.mObservers.get(0));
+ assertTrue(it.hasNext());
+ assertTrue(10 == it.next());
+ assertTrue(it.hasNext());
+ assertTrue(15 == it.next());
+ }
}