blob: a08aee6455da750f9c5d6a1b79fbe119cef9255c [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 javax.accessibility;
import java.util.Arrays;
import java.util.Vector;
import junit.framework.TestCase;
public class AccessibleStateSetTest extends TestCase {
private AccessibleStateSet stateSet;
private AccessibleState[] statesArray;
@Override
public void setUp() {
stateSet = new AccessibleStateSet();
statesArray = new AccessibleState[] { AccessibleState.ACTIVE,
AccessibleState.ARMED };
stateSet.addAll(statesArray);
}
@Override
public void tearDown() {
stateSet = null;
statesArray = null;
}
public void testAccessibleStateSet() throws Exception {
AccessibleState[] statesArray = { AccessibleState.ACTIVE,
AccessibleState.ARMED };
stateSet = new AccessibleStateSet(statesArray);
assertNotNull(stateSet.states);
try {
new AccessibleStateSet(null);
fail("expected null pointer exception");
} catch (NullPointerException e) {
}
}
public void testAddContains() throws Exception {
assertTrue("Must contain added state", stateSet
.contains(AccessibleState.ACTIVE));
assertTrue("Must contain added state", stateSet
.contains(AccessibleState.ARMED));
boolean added = stateSet.add(AccessibleState.ACTIVE);
assertEquals("Should not add duplicate item", 2, stateSet.states.size());
assertFalse("Should not add duplicate item", added);
assertFalse(stateSet.contains(null));
assertTrue(stateSet.add(null));
assertTrue(stateSet.contains(null));
stateSet.states = null;
assertFalse(stateSet.contains(null));
assertNull(stateSet.states);
stateSet.states = null;
stateSet.add(AccessibleState.ACTIVE);
}
public void testAddAll() {
stateSet.addAll(statesArray);
stateSet.addAll(statesArray);
assertEquals("Should not add duplicate items", statesArray.length,
stateSet.states.size());
try {
stateSet.addAll(null);
fail("expected null pointer exception");
} catch (NullPointerException e) {
}
}
public void testRemove() throws Exception {
boolean removed = stateSet.remove(AccessibleState.ICONIFIED);
assertFalse("Should not remove non-existing item", removed);
removed = stateSet.remove(AccessibleState.ACTIVE);
assertFalse("Should remove existing item", stateSet
.contains(AccessibleState.ACTIVE));
assertTrue("Should remove existing item", removed);
}
public void testClear() throws Exception {
stateSet.clear();
assertEquals("Cleared set should be empty", 0, stateSet.states.size());
stateSet.states = null;
stateSet.clear();
}
public void testToString() throws Exception {
String stateSetString = stateSet.toString();
assertTrue(
"String representation should contain elements representation",
stateSetString.indexOf(AccessibleState.ACTIVE.toString()) >= 0);
assertTrue(
"String representation should contain elements representation",
stateSetString.indexOf(AccessibleState.ARMED.toString()) >= 0);
stateSet.states = null;
stateSet.toString();
// regression test for HARMONY-1190
try {
new AccessibleStateSet(new AccessibleState[2]).toString();
fail("NullPointerException expected");
} catch (NullPointerException e) {
// expected
}
assertNull(new AccessibleStateSet(new AccessibleState[0]).toString());
}
public void testToArray() throws Exception {
AccessibleState[] statesReturnedArray = stateSet.toArray();
assertEquals("Returned array size don't match", statesArray.length,
statesReturnedArray.length);
for (int i = 0; i < statesReturnedArray.length; i++)
assertEquals("Returned element mismatch:" + i, statesArray[i],
statesReturnedArray[i]);
stateSet.states = null;
Arrays.asList(stateSet.toArray());
}
// Regression for HARMONY-2457
public void test_constructor() {
TestAccessibleStateSet obj = new TestAccessibleStateSet();
assertNull(obj.states);
}
static class TestAccessibleStateSet extends AccessibleStateSet {
Vector states;
TestAccessibleStateSet() {
super();
states = super.states;
}
}
}