/* * Copyright 2007 Google Inc. * * 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 com.google.gwt.user.client.ui; import com.google.gwt.junit.client.GWTTestCase; import java.util.Iterator; /** * TODO: document me. */ public class WidgetCollectionTest extends GWTTestCase { public String getModuleName() { return "com.google.gwt.user.User"; } private static class Container implements HasWidgets { public WidgetCollection collection = new WidgetCollection(this); public void add(Widget w) { } public void clear() { } public Iterator iterator() { return null; } public boolean remove(Widget w) { if (!collection.contains(w)) { return false; } collection.remove(w); return true; } } public void testAddRemove() { Container c = new Container(); WidgetCollection wc = c.collection; Label l0 = new Label("foo"); Label l1 = new Label("bar"); Label l2 = new Label("baz"); wc.add(l0); wc.add(l1); wc.add(l2); assertEquals(wc.size(), 3); assertEquals(wc.get(1), l1); wc.remove(l1); assertEquals(wc.size(), 2); assertEquals(wc.get(1), l2); assertFalse(wc.contains(l1)); wc.remove(0); assertFalse(wc.contains(l0)); assertEquals(wc.indexOf(l2), 0); } public void testIterator() { Container c = new Container(); WidgetCollection wc = c.collection; Label l0 = new Label("foo"); Label l1 = new Label("bar"); Label l2 = new Label("baz"); wc.add(l0); wc.add(l1); wc.add(l2); Iterator it = wc.iterator(); assertTrue(it.hasNext()); assertEquals(it.next(), l0); it.remove(); assertTrue(it.hasNext()); assertEquals(it.next(), l1); assertEquals(it.next(), l2); assertFalse(it.hasNext()); } }