Package org.archive.crawler.selftest

Source Code of org.archive.crawler.selftest.FormLoginSelfTest

/*
*  This file is part of the Heritrix web crawler (crawler.archive.org).
*
*  Licensed to the Internet Archive (IA) by one or more individual
*  contributors.
*
*  The IA 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 org.archive.crawler.selftest;

import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.bio.SocketConnector;
import org.mortbay.jetty.handler.DefaultHandler;
import org.mortbay.jetty.handler.HandlerList;
import org.mortbay.jetty.handler.ResourceHandler;
import org.mortbay.jetty.servlet.ServletHandler;
import org.mortbay.jetty.servlet.ServletHolder;

/**
* Test form-based authentication
*
* @contributor stack
* @contributor gojomo
*/
public class FormLoginSelfTest
    extends SelfTestBase
{
    /**
     * Files to find as a list.
     */
    final private static Set<String> EXPECTED = Collections.unmodifiableSet(
            new HashSet<String>(Arrays.asList(new String[] {
            "index.html", "login/login.html", "success.html", "robots.txt", "favicon.ico"
    })));

    @Override
    protected void verify() throws Exception {
        Set<String> found = this.filesInArcs();
        assertEquals("wrong files in ARCs",EXPECTED,found);
    }

    @Override
    protected void startHttpServer() throws Exception {
        Server server = new Server();
       
        SocketConnector sc = new SocketConnector();
        sc.setHost("127.0.0.1");
        sc.setPort(7777);
        server.addConnector(sc);
        ResourceHandler rhandler = new ResourceHandler();
        rhandler.setResourceBase(getSrcHtdocs().getAbsolutePath());
       
        ServletHandler servletHandler = new ServletHandler();       
       
        HandlerList handlers = new HandlerList();
        handlers.setHandlers(new Handler[] {
                rhandler,
                servletHandler,
                new DefaultHandler() });
        server.setHandler(handlers);
       
        ServletHolder holder = new ServletHolder(new FormAuthServlet());
        servletHandler.addServletWithMapping(holder, "/login/*");

        this.httpServer = server;
        this.httpServer.start();
    }

    protected String getSeedsString() {
        return "http://127.0.0.1:7777/index.html";
    }
   
    @Override
    protected String changeGlobalConfig(String config) {
        String formLoginConfig =
                " <bean id='extractorForms' class='org.archive.modules.forms.ExtractorHTMLForms'/>\n"
                        + "    <bean id='formFiller' class='org.archive.modules.forms.FormLoginProcessor'>\n"
                        + "            <property name='loginUsername' value='Mr. Happy Pants' />\n"
                        + "            <property name='loginPassword' value='xyzzy' />\n"
                        + "    </bean>\n";
        config = config.replace("<!--@@MORE_EXTRACTORS@@-->", formLoginConfig);
        return super.changeGlobalConfig(config);
    }

}
TOP

Related Classes of org.archive.crawler.selftest.FormLoginSelfTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.