//
// ========================================================================
// Copyright (c) 1995-2017 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http.spi;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.eclipse.jetty.http.spi.util.SpiConstants;
import org.eclipse.jetty.server.Server;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.sun.net.httpserver.HttpContext;
public class JettyHttpServerCreateContextTest extends JettyHttpServerCreateContextBase
{
private HttpContext context;
private Server server;
@Before
public void setUp() throws Exception
{
initializeJettyHttpServer(new Server());
}
@After
public void tearDown() throws Exception
{
if (jettyHttpServer != null)
{
jettyHttpServer.stop(SpiConstants.ONE);
}
}
@Test(expected = RuntimeException.class)
public void testWithoutContextHandler()
{
// when
jettyHttpServer.createContext("/");
// then
fail("A runtime exception must have occured by now as We haven't configure at " + "least one context handler collection.");
}
@Test(expected = RuntimeException.class)
public void testWithContextHandler()
{
// given
server = getContextHandlerServer();
initializeJettyHttpServer(server);
// when
jettyHttpServer.createContext("/");
// then
fail("A runtime exception must have occured by now as another context already bound to the given path.");
}
@Test(expected = RuntimeException.class)
public void testWithoutMatchedContextHandler()
{
// given
server = getContextHandlerServer();
initializeJettyHttpServer(server);
// when
jettyHttpServer.createContext("/a-context-that-does-not-exist");
// then
fail("A runtime exception must have occured by now as there is no matching " + "context handler collection has found.");
}
@Test
public void testWithMatchedContextHandler()
{
// given
server = getContextHandlerCollectionServer();
initializeJettyHttpServer(server);
// when
context = jettyHttpServer.createContext("/");
// then
assertEquals("Path must be equal to /","/",context.getPath());
}
@Test
public void testWithMatchedContextHandlerCollections()
{
// given
server = getContextHandlerCollectionsServer();
initializeJettyHttpServer(server);
// when
context = jettyHttpServer.createContext("/");
// then
assertEquals("Path must be equal to /","/",context.getPath());
}
}