com.gistlabs.mechanize.integration.test.Issue36Test.java Source code

Java tutorial

Introduction

Here is the source code for com.gistlabs.mechanize.integration.test.Issue36Test.java

Source

/**
 * Copyright (C) 2012-2014 Gist Labs, LLC. (http://gistlabs.com)
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */
package com.gistlabs.mechanize.integration.test;

import java.io.IOException;
import java.net.ProxySelector;

import org.apache.http.impl.client.AbstractHttpClient;
import org.apache.http.impl.conn.ProxySelectorRoutePlanner;

import com.gistlabs.mechanize.Mechanize;
import com.gistlabs.mechanize.Resource;
import com.gistlabs.mechanize.cookie.Cookie;
import com.gistlabs.mechanize.document.AbstractDocument;
import com.gistlabs.mechanize.document.html.form.Checkable;
import com.gistlabs.mechanize.document.html.form.Form;
import com.gistlabs.mechanize.impl.MechanizeAgent;

public class Issue36Test {

    //@org.junit.Test
    public void testRedirect() throws IOException {
        String username = "";
        String password = "";
        Mechanize agent = new MechanizeAgent(buildClient());

        String manageKindleUrl = "http://www.amazon.com/gp/digital/fiona/manage/ref=gno_yam_myk";
        AbstractDocument signinPage = agent.get(manageKindleUrl);

        debug(signinPage);

        Form form = signinPage.forms().get(0);
        form.get("email").setValue(username);
        ((Checkable) form.get("ap_signin_existing_radio")).setChecked(true);
        form.get("password").setValue(password);
        Resource managePage = form.submit();

        debug(managePage);

    }

    private AbstractHttpClient buildClient() {
        AbstractHttpClient result = MechanizeAgent.buildDefaultHttpClient();

        System.setProperty("http.proxyHost", "127.0.0.1");
        System.setProperty("http.proxyPort", "8888");

        //             HttpHost proxy = new HttpHost("localhost", 8080);
        //             result.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);

        ProxySelectorRoutePlanner routePlanner = new ProxySelectorRoutePlanner(
                result.getConnectionManager().getSchemeRegistry(), ProxySelector.getDefault());
        result.setRoutePlanner(routePlanner);

        return result;
    }

    private void debug(final Resource page) {
        System.out.println("\n\n\n");
        System.out.println("**** Page Headers ****");
        System.out.println(page.getResponse().toString());
        System.out.println("**** Page Cookies ****");
        for (Cookie cookie : page.getAgent().cookies())
            System.out.println(cookie.toString());
        System.out.println("**** Page Body ****");
        System.out.println(page.asString());
    }
}