| /* |
| * Copyright 2008 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.emultest.java.util; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| /** |
| * Tests ArrayList class (and by extension, AbstractList). |
| */ |
| @SuppressWarnings("unchecked") |
| public class ArrayListTest extends ListTestBase { |
| |
| private static final class ArrayListWithRemoveRange extends ArrayList { |
| @Override |
| public void removeRange(int fromIndex, int toIndex) { |
| super.removeRange(fromIndex, toIndex); |
| } |
| } |
| |
| public void testRemoveRange() { |
| ArrayListWithRemoveRange l = new ArrayListWithRemoveRange(); |
| for (int i = 0; i < 10; i++) { |
| l.add(new Integer(i)); |
| } |
| try { |
| l.removeRange(-1, 1); |
| fail(); |
| } catch (IndexOutOfBoundsException expected) { |
| } |
| |
| try { |
| l.removeRange(2, 1); |
| fail(); |
| } catch (IndexOutOfBoundsException expected) { |
| } |
| |
| try { |
| l.removeRange(2, 11); |
| fail(); |
| } catch (IndexOutOfBoundsException expected) { |
| } |
| |
| l.removeRange(3, 5); |
| assertEquals(8, l.size()); |
| for (int i = 0; i < 3; i++) { |
| Integer elem = (Integer) l.get(i); |
| assertEquals(i, elem.intValue()); |
| } |
| for (int i = 3; i < 8; i++) { |
| Integer elem = (Integer) l.get(i); |
| assertEquals(i + 2, elem.intValue()); |
| } |
| } |
| |
| @Override |
| protected List makeEmptyList() { |
| return new ArrayList(); |
| } |
| } |