Package org.openqa.selenium.server

Source Code of org.openqa.selenium.server.StaticContentHandlerUnitTest

package org.openqa.selenium.server;

import junit.framework.TestCase;
import static org.easymock.classextension.EasyMock.createMock;
import static org.easymock.classextension.EasyMock.expect;
import static org.easymock.classextension.EasyMock.expectLastCall;
import static org.easymock.classextension.EasyMock.replay;
import static org.easymock.classextension.EasyMock.verify;
import org.mortbay.http.HttpContext;
import org.mortbay.http.HttpRequest;
import org.mortbay.http.HttpResponse;
import org.mortbay.util.Resource;

import java.io.File;
import java.io.IOException;
import java.util.Date;

public class StaticContentHandlerUnitTest extends TestCase {
    private StaticContentHandler handler;
    private boolean slowResourcesInitially;

    public void setUp() throws Exception {
        super.setUp();
        handler = new StaticContentHandler("", false);
        slowResourcesInitially = StaticContentHandler.getSlowResources();
    }
   
    public void tearDown() {
        StaticContentHandler.setSlowResources(slowResourcesInitially);
    }

    public void testShouldMakePageNotCachedWhenHandle() throws Exception {
        HttpResponse response = new HttpResponse();
        handler.handle("", "", new HttpRequest(), response);
        assertEquals("Thu, 01 Jan 1970 00:00:00 GMT", response.getField("Expires"));
    }
   
    public void testShouldDelayResourceLoadingIfSetToSlow() throws Exception {
        long start = new Date().getTime();
        StaticContentHandler.setSlowResources(true);
        handler.getResource("not_exists");
        long end = new Date().getTime();
        assertTrue(end - start >= 0.9 * StaticContentHandler.SERVER_DELAY);
    }

    public void testShouldDoubleDelayWithAPageMarkedAsSlow() throws Exception {
        long start = new Date().getTime();
        StaticContentHandler.setSlowResources(true);
        handler.getResource("something-really-slow.html");
        long end = new Date().getTime();
        long diff = end - start;
        System.out.println("diff = " + diff);
        assertTrue(end - start >= 1.9 * StaticContentHandler.SERVER_DELAY);
    }

    public void testShouldReturnTheFirstResourceLocatedByLocators() throws Exception {
        final File file = File.createTempFile("selenium-test-", "");
        file.deleteOnExit();
        handler.addStaticContent(new ResourceLocator() {
            public Resource getResource(HttpContext context, String pathInContext) throws IOException {
                return Resource.newResource("Missing");
            }
        });
        handler.addStaticContent(new ResourceLocator() {
            public Resource getResource(HttpContext context, String pathInContext) throws IOException {
                return Resource.newResource(file.toURI().toURL());
            }
        });
        assertEquals(file, handler.getResource(file.toURI().toURL().toString()).getFile());
    }

    public void testShouldReturnMissingResourceIfNoResourceLocated() throws Exception {
        Resource resource = handler.getResource("not exists path");
        assertFalse(resource.exists());
    }

    public void testHandleSetsResponseAttributeInCaseOfMissingResource() throws Exception {
      String pathInContext = "/invalid";
      String pathParams = "";
      HttpRequest httpRequest = new HttpRequest();
      HttpResponse httpResponse = new HttpResponse();
      handler.handle(pathInContext, pathParams, httpRequest, httpResponse);
      assertEquals("True", httpResponse.getAttribute("NotFound"));
    }
   
    public void testHandleSetsNoResponseStatusCodeInCaseOfAvailableResource() throws Exception {
     
      StaticContentHandler mock = createMock(StaticContentHandler.class,
                StaticContentHandler.class.getDeclaredMethod("getResource", String.class),
                StaticContentHandler.class.getDeclaredMethod("callSuperHandle", String.class, String.class, HttpRequest.class, HttpResponse.class));

      String pathInContext = "/driver/?cmd=getNewBrowserSession&1=*chrome&2=http://www.google.com";
      String pathParams = "";
      HttpRequest httpRequest = new HttpRequest();
      HttpResponse httpResponse = new HttpResponse();
     
      expect(mock.getResource(pathInContext)).andReturn(Resource.newResource("found_resource"));
      mock.callSuperHandle(pathInContext, pathParams, httpRequest, httpResponse);
      expectLastCall().once();
      replay(mock);
     
      mock.handle(pathInContext, pathParams, httpRequest, httpResponse);
      assertEquals(HttpResponse.__200_OK, httpResponse.getStatus());
      verify(mock);
    }
   

}
TOP

Related Classes of org.openqa.selenium.server.StaticContentHandlerUnitTest

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.