function _getExpandedOptions(oOptions) {
        var oOptionsExpansion = {};
        if (oOptions.ancestor) {
            var mAncestorSelector = _extractAncestorSelector(oOptions);
            var oAncestor = _ControlFinder._findControls(mAncestorSelector)[0];
            if (oAncestor) {
                oOptionsExpansion.ancestor = oAncestor;
                delete oOptions.ancestor;
            } else {
                throw new Error("Ancestor not found using selector: " + JSON.stringify(mAncestorSelector));
            }
        }
        if (oOptions.descendant) {
            var oDescendant = _ControlFinder._findControls(oOptions.descendant)[0];
            if (oDescendant) {
                oOptionsExpansion.descendant = oDescendant;
                delete oOptions.descendant;
            } else {
                throw new Error("Descendant not found using selector: " + JSON.stringify(oOptions.descendant));
            }
        }
        if (oOptions.sibling) {
            if (Array.isArray(oOptions.sibling)) {
                var oSibling = _ControlFinder._findControls(oOptions.sibling[0])[0];
                if (oSibling) {
                    // format for declarative selector with additional args: [[matcher1Arg1, matcher1Arg2,...], [matcher2Arg1, matcher2Arg2,...], ...]
                    oOptionsExpansion.sibling = [[oSibling, oOptions.sibling[1]]];
                    delete oOptions.sibling;
                }
            } else {
                var oSibling = _ControlFinder._findControls(oOptions.sibling)[0];
                if (oSibling) {
                    oOptionsExpansion.sibling = oSibling;
                    delete oOptions.sibling;
                } else {
                    throw new Error("Sibling not found using selector: " + JSON.stringify(oOptions.sibling));
                }
            }
        }

        if ($.isEmptyObject(oOptionsExpansion)) {
            return oOptions;
        } else {
            return $.extend({}, oOptions, {
                matchers: oOptionsExpansion
            });
        }
    }
/**
     * expand "expansion" values (values that are nested selector objects) for a given selector.
     * expansion means: replace each nested selector (1 level deep) with the matching control
     * @param {object} oOptions An Object containing conditions for control search similar to {@link sap.ui.test.Opa5#waitFor}
     * @return {object} "expanded" oOptions, in which nested selectors are replaced with controls
     * @private
     */
expand "expansion" values (values that are nested selector objects) for a given selector.
expansion means: replace each nested selector (1 level deep) with the matching control
@param {object} oOptions An Object containing conditions for control search similar to  sap.ui.test.Opa5#waitFor
@return {object} "expanded" oOptions, in which nested selectors are replaced with controls
@private
expand " expansion " values ( values that are nested selector objects ) for a given selector . expansion means : replace each nested selector ( 1 level deep ) with the matching control @param { object } oOptions An Object containing conditions for control search similar to sap . ui . test . Opa5#waitFor @return { object } " expanded " oOptions in which nested selectors are replaced with controls @private
function _getExpandedOptions(oOptions) {
        var oOptionsExpansion = {};
        if (oOptions.ancestor) {
            var mAncestorSelector = _extractAncestorSelector(oOptions);
            var oAncestor = _ControlFinder._findControls(mAncestorSelector)[0];
            if (oAncestor) {
                oOptionsExpansion.ancestor = oAncestor;
                delete oOptions.ancestor;
            } else {
                throw new Error("Ancestor not found using selector: " + JSON.stringify(mAncestorSelector));
            }
        }
        if (oOptions.descendant) {
            var oDescendant = _ControlFinder._findControls(oOptions.descendant)[0];
            if (oDescendant) {
                oOptionsExpansion.descendant = oDescendant;
                delete oOptions.descendant;
            } else {
                throw new Error("Descendant not found using selector: " + JSON.stringify(oOptions.descendant));
            }
        }
        if (oOptions.sibling) {
            if (Array.isArray(oOptions.sibling)) {
                var oSibling = _ControlFinder._findControls(oOptions.sibling[0])[0];
                if (oSibling) {
                    oOptionsExpansion.sibling = [[oSibling, oOptions.sibling[1]]];
                    delete oOptions.sibling;
                }
            } else {
                var oSibling = _ControlFinder._findControls(oOptions.sibling)[0];
                if (oSibling) {
                    oOptionsExpansion.sibling = oSibling;
                    delete oOptions.sibling;
                } else {
                    throw new Error("Sibling not found using selector: " + JSON.stringify(oOptions.sibling));
                }
            }
        }
        if ($.isEmptyObject(oOptionsExpansion)) {
            return oOptions;
        } else {
            return $.extend({}, oOptions, {
                matchers: oOptionsExpansion
            });
        }
    }
function _getExpandedOptions ( oOptions ) { var oOptionsExpansion = { } ; if ( oOptions . ancestor ) { var mAncestorSelector = _extractAncestorSelector ( oOptions ) ; var oAncestor = _ControlFinder . _findControls ( mAncestorSelector ) [ 0 ] ; if ( oAncestor ) { oOptionsExpansion . ancestor = oAncestor ; delete oOptions . ancestor ; } else { throw new Error ( "Ancestor not found using selector: " + JSON . stringify ( mAncestorSelector ) ) ; } } if ( oOptions . descendant ) { var oDescendant = _ControlFinder . _findControls ( oOptions . descendant ) [ 0 ] ; if ( oDescendant ) { oOptionsExpansion . descendant = oDescendant ; delete oOptions . descendant ; } else { throw new Error ( "Descendant not found using selector: " + JSON . stringify ( oOptions . descendant ) ) ; } } if ( oOptions . sibling ) { if ( Array . isArray ( oOptions . sibling ) ) { var oSibling = _ControlFinder . _findControls ( oOptions . sibling [ 0 ] ) [ 0 ] ; if ( oSibling ) { oOptionsExpansion . sibling = [ [ oSibling , oOptions . sibling [ 1 ] ] ] ; delete oOptions . sibling ; } } else { var oSibling = _ControlFinder . _findControls ( oOptions . sibling ) [ 0 ] ; if ( oSibling ) { oOptionsExpansion . sibling = oSibling ; delete oOptions . sibling ; } else { throw new Error ( "Sibling not found using selector: " + JSON . stringify ( oOptions . sibling ) ) ; } } } if ( $ . isEmptyObject ( oOptionsExpansion ) ) { return oOptions ; } else { return $ . extend ( { } , oOptions , { matchers : oOptionsExpansion } ) ; } }
expand "expansion" values (values that are nested selector objects) for a given selector.
expand " expansion " values ( values that are nested selector objects ) for a given selector .
// format for declarative selector with additional args: [[matcher1Arg1, matcher1Arg2,...], [matcher2Arg1, matcher2Arg2,...], ...]