gecko/accessible/tests/mochitest/nsIAccessible_states.js

65 lines
1.8 KiB
JavaScript

function testStates(aAccOrElmOrID, aState, aExtraState, aAbsentState,
aAbsentExtraState)
{
var [state, extraState] = getStates(aAccOrElmOrID);
is(state & aState, aState,
"wrong state bits for " + aAccOrElmOrID + "!");
if (aExtraState)
is(extraState & aExtraState, aExtraState,
"wrong extra state bits for " + aAccOrElmOrID + "!");
if (aAbsentState)
is(state & aAbsentState, 0,
"state bits should not be present in ID " + aAccOrElmOrID + "!");
if (aAbsentExtraState)
is(extraState & aAbsentExtraState, 0,
"extraState bits should not be present in ID " + aAccOrElmOrID + "!");
if (state & STATE_READONLY)
is(extraState & EXT_STATE_EDITABLE, 0,
"Read-only " + aAccOrElmOrID + " cannot be editable!");
if (extraState & EXT_STATE_EDITABLE)
is(state & STATE_READONLY, 0,
"Editable " + aAccOrElmOrID + " cannot be readonly!");
if (state & STATE_COLLAPSED || state & STATE_EXPANDED)
is(extraState & EXT_STATE_EXPANDABLE, EXT_STATE_EXPANDABLE,
"Collapsed or expanded " + aAccOrElmOrID + " should be expandable!");
if (state & STATE_COLLAPSED)
is(state & STATE_EXPANDED, 0,
"Collapsed " + aAccOrElmOrID + " cannot be expanded!");
if (state & STATE_EXPANDED)
is(state & STATE_COLLAPSED, 0,
"Expanded " + aAccOrElmOrID + " cannot be collapsed!");
}
function getStringStates(aAccOrElmOrID)
{
var [state, extraState] = getStates(aAccOrElmOrID);
var list = gAccRetrieval.getStringStates(state, extraState);
var str = "";
for (var index = 0; index < list.length; index++)
str += list.item(index) + ", ";
return str;
}
function getStates(aAccOrElmOrID)
{
var acc = getAccessible(aAccOrElmOrID);
if (!acc)
return [0, 0];
var state = {}, extraState = {};
acc.getState(state, extraState);
return [state.value, extraState.value];
}