⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 http.java

📁 Software Testing Automation Framework (STAF)的开发代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    STAFMarshallingContext mc = new STAFMarshallingContext();
    List resultList = new ArrayList();

    if (pResult.optionTimes(SESSION) > 0)
    {
        // Get resolved value for SESSION option and make sure it's an integer

        STAFResult res = STAFUtil.resolveRequestVarAndCheckInt(
            SESSION, pResult.optionValue(SESSION), sHandle, info.requestNumber);

        if (res.rc != 0) return res;

        int sessionId = Integer.parseInt(res.result);

        WebSession session;

        // Get the session
        try
        {
            session = sessionList.getSession(sessionId);
        }
        catch (InvalidSessionIDException e)
        {
            return new STAFResult(STAFResult.DoesNotExist, e.getMessage());
        }

        if (pResult.optionTimes(DEFAULTHEADERS) > 0)
        {
            // LIST DEFAULTHEADERS

            HashMap headers = session.getDefaultHeaders();

            mc.setRootObject(headers);
            return new STAFResult(STAFResult.Ok, mc.marshall());
        }
        else if (pResult.optionTimes(AUTHENTICATIONHOSTS) > 0)
        {
            // LIST AUTHENTICATIONHOSTS

            HashMap authenticationSets = session.getAuthenticationSets();
            Iterator it = authenticationSets.keySet().iterator();

            while(it.hasNext())
                resultList.add((String)it.next());
        }
        else if (pResult.optionTimes(FORMS) > 0)
        {
            // LIST FORMS

            mc.setMapClassDefinition(fListFormMapClass);

            HashMap[] list = session.listForms();

            for (int i = 0; i < list.length; i++)
            {
                Map resultMap = fListFormMapClass.createInstance();

                resultMap.put("formIndex", list[i].get(WebElement.INDEX));

                String id = (String)list[i].get(WebElement.ID);
                String name = (String)list[i].get(WebElement.NAME);

                if (id != null && !id.equals(""))
                    resultMap.put("formID", id);

                if (name != null && !name.equals(""))
                    resultMap.put("formName", name);

                resultList.add(resultMap);
            }
        }
        else if (pResult.optionTimes(LINKS) > 0)
        {
            // LIST LINKS

            mc.setMapClassDefinition(fListLinkMapClass);

            HashMap[] list = session.listLinks();

            for (int i = 0; i < list.length; i++)
            {
                Map resultMap = fListLinkMapClass.createInstance();

                resultMap.put("linkIndex", list[i].get(WebElement.INDEX));

                String id = (String)list[i].get(WebElement.ID);
                String name = (String)list[i].get(WebElement.NAME);

                if (id != null && !id.equals(""))
                    resultMap.put("linkID", id);

                if (name != null && !name.equals(""))
                    resultMap.put("linkName", name);

                resultList.add(resultMap);
            }
        }
        else if (pResult.optionTimes(COOKIES) > 0)
        {
            // LIST COOKIES

            HashMap[] list = session.listCookies();

            for (int i = 0; i < list.length; i++)
                resultList.add(list[i].get(CookieAccess.NAME));
        }
        else if (pResult.optionTimes(FORMCONTROLS) > 0)
        {
            // LIST FORMCONTROLS

            String id = "";
            int idType = -1;

            if (pResult.optionTimes(ID) > 0)
            {
                // Resolve the ID option value

                res = STAFUtil.resolveRequestVar(
                    pResult.optionValue(ID), sHandle, info.requestNumber);

                if (res.rc != 0) return res;

                id = res.result;
                idType = WebSession.ID_ID_TYPE;
            }
            else if (pResult.optionTimes(NAME) > 0)
            {
                // Resolve the NAME option value

                res = STAFUtil.resolveRequestVar(
                    pResult.optionValue(NAME), sHandle, info.requestNumber);

                if (res.rc != 0) return res;

                id = res.result;
                idType = WebSession.NAME_ID_TYPE;
            }
            else if (pResult.optionTimes(INDEX) > 0)
            {
                // Resolve the INDEX option value

                res = STAFUtil.resolveRequestVar(
                    pResult.optionValue(INDEX), sHandle, info.requestNumber);

                if (res.rc != 0) return res;

                id = res.result;
                idType = WebSession.INDEX_ID_TYPE;
            }

            if (id.equals("") && idType == -1)
            {
                id = "1";
                idType = WebSession.INDEX_ID_TYPE;
            }
            try
            {
                HashMap data = session.summarizeForm(id, idType);
                List controls = (List) data.get(WebForm.CONTROLS);

                for (int i = 0; i < controls.size(); i++)
                    resultList.add(((Parameter)controls.get(i)).getKey());
            }
            catch (InvalidElementIDException e)
            {
                return new STAFResult(STAFResult.DoesNotExist, e.getMessage());
            }
        }
    }
    else
    {
        // LIST SESSIONS

        mc.setMapClassDefinition(fListSessionMapClass);

        HashMap[] list = sessionList.listSessions();
        
        for (int i = 0; i < list.length; i++)
        {
            Map sessionMap = fListSessionMapClass.createInstance();

            sessionMap.put("sessionID", list[i].get(WebSession.ID));

            String url = (String)list[i].get(WebSession.URL);
            String title = (String)list[i].get(WebSession.TITLE);

            if (url != null && !url.equals(""))
                sessionMap.put("url", url);
            
            if (title != null && !title.equals(""))
                sessionMap.put("title", title);
            
            resultList.add(sessionMap);
        }
    }

    mc.setRootObject(resultList);

    return new STAFResult(STAFResult.Ok, mc.marshall());
}

/*****************************************************************************/
/*                                                                           */
/* Method: handleSet                                                         */
/* Description: performs the desired set interaction                         */
/* Parameters: info - request info passed to acceptRequest                   */
/* Returns: STAFResult.OK                                                    */
/*                                                                           */
/*****************************************************************************/

private STAFResult handleSet(STAFServiceInterfaceLevel30.RequestInfo info)
    throws STAFException
{
    // Verify the requester has at least trust level 3

    STAFResult trustResult = STAFUtil.validateTrust(
        3, fServiceName, "SET", fLocalMachineName, info);

    if (trustResult.rc != STAFResult.Ok) return trustResult;

    // Parse the result

    STAFCommandParseResult pResult = setParser.parse(info.request);

    if (pResult.rc != 0)
    {
        return new STAFResult(STAFResult.InvalidRequestString,
                              pResult.errorBuffer);
    }

    // Get resolved value for SESSION option and make sure it's an integer

    STAFResult res = STAFUtil.resolveRequestVarAndCheckInt(
        SESSION, pResult.optionValue(SESSION), sHandle, info.requestNumber);

    if (res.rc != 0) return res;
    
    int sessionId = Integer.parseInt(res.result);

    WebSession session;

    // Get the session

    try
    {
        session = sessionList.getSession(sessionId);
    }
    catch (InvalidSessionIDException e)
    {
        return new STAFResult(STAFResult.DoesNotExist, e.getMessage());
    }

    if (!session.isOwner(info.stafInstanceUUID))
    {
        // Verify the requester has at least trust level 4 since not the
        // session owner

        trustResult = STAFUtil.validateTrust(
            4, fServiceName, "SET", fLocalMachineName, info);

        if (trustResult.rc != STAFResult.Ok) return trustResult;
    }

    String result = "";

    if (pResult.optionTimes(DEFAULTHEADER) > 0)
    {
        // Resolve the DEFAULTHEADER option value

        res = STAFUtil.resolveRequestVar(
            pResult.optionValue(DEFAULTHEADER), sHandle, info.requestNumber);

        if (res.rc != 0) return res;

        String key = res.result;

        // Resolve the VALUE option value

        res = STAFUtil.resolveRequestVar(
            pResult.optionValue(VALUE), sHandle, info.requestNumber);

        if (res.rc != 0) return res;

        String value = res.result;

        session.setDefaultHeader(key, value);

    }
    else if (pResult.optionTimes(AUTHENTICATIONHOST) > 0)
    {
        // Resolve the AUTHENTICATIONHOST option value

        res = STAFUtil.resolveRequestVar(
            pResult.optionValue(AUTHENTICATIONHOST), sHandle,
            info.requestNumber);

        if (res.rc != 0) return res;

        String key = res.result;

        // Resolve the AUTHENTICATIONUSER option value

        res = STAFUtil.resolveRequestVar(
            pResult.optionValue(AUTHENTICATIONUSER), sHandle,
            info.requestNumber);

        if (res.rc != 0) return res;

        String user = res.result;

        String pwd = "";
        if (pResult.optionTimes(AUTHENTICATIONPWD) > 0)
        {
            // Resolve the AUTHENTICATIONPWD option value

            res = STAFUtil.resolveRequestVar(
                pResult.optionValue(AUTHENTICATIONPWD), sHandle,
                info.requestNumber);

            if (res.rc != 0) return res;

            // Remove privacy delimiters.  Can remove since never show
            // true value of a authentication password on a query request.
            pwd = STAFUtil.removePrivacyDelimiters(res.result);
        }

        String domain = "";

        if (pResult.optionTimes(AUTHENTICATIONDOMAIN) > 0)
        {
            // Resolve the AUTHENTICATIONDOMAIN option value

            res = STAFUtil.resolveRequestVar(
                pResult.optionValue(AUTHENTICATIONDOMAIN), sHandle,
                info.requestNumber);

            if (res.rc != 0) return res;

            domain = res.result;
        }

        session.setAuthenticationSet(key, user, pwd, domain);

    }
    else if (pResult.optionTimes(NOAUTOREDIRECT) > 0)
    {
        session.setDefaultFollowRedirect(false);

    }
    else if (pResult.optionTimes(AUTOREDIRECT) > 0)
    {
        session.setDefaultFollowRedirect(true);

    }
    else if (pResult.optionTimes(COOKIE) > 0)
    {
        if (pResult.optionTimes(POLICY) > 0)
        {
            // Resolve the POLICY option value

            res = STAFUtil.resolveRequestVar(
                pResult.optionValue(POLICY), sHandle, info.requestNumber);

            if (res.rc != 0) return res;

            String policy = res.result;

            session.setCookiePolicy(policy);
        }

        // Resolve the NAME option value

        res = STAFUtil.resolveRequestVar(
            pResult.optionValue(NAME), sHandle, info.requestNumber);

        if (res.rc != 0) return res;

        String name = res.result;

        if (pResult.optionTimes(VALUE) > 0)
        {
            // Resolve the VALUE option value

            res = STAFUtil.resolveRequestVar(
                pResult.optionValue(VALUE), sHandle, info.requestNumber);

            if (res.rc != 0) return res;

            String value = res.result;

            try
            {
                session.setCookieValue(name, value);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -