package org.rapidoid.http; /* * #%L * rapidoid-integration-tests * %% * Copyright (C) 2014 - 2017 Nikolche Mihajlovski and contributors * %% * Licensed 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. * #L% */ import org.junit.Test; import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Since; import org.rapidoid.config.Conf; import org.rapidoid.setup.App; import org.rapidoid.setup.Setup; import org.rapidoid.u.U; import org.rapidoid.util.Msc; @Authors("Nikolche Mihajlovski") @Since("5.3.0") public class HTTPProxyTest extends IsolatedIntegrationTest { @Test public void testProxy() { String http = Msc.http(); App.run(new String[0], U.frmt("/->%s://localhost:5555,%s://localhost:6666", http, http)); Setup x = Setup.create("x").port(5555); x.get("/who").html("X"); Setup y = Setup.create("y").port(6666); y.get("/who").html("Y"); eq(Self.get("/who").fetch(), "X"); eq(Self.get("/who").fetch(), "Y"); eq(Self.get("/who").fetch(), "X"); eq(Self.get("/who").fetch(), "Y"); x.shutdown(); y.shutdown(); } @Test public void testProxySimpleConfig() { Conf.PROXY.set("/", "localhost:5555,localhost:6666"); App.boot(); Setup a = Setup.create("a").port(5555); a.get("/who").html("A"); Setup b = Setup.create("b").port(6666); b.get("/who").html("B"); eq(Self.get("/who").fetch(), "A"); eq(Self.get("/who").fetch(), "B"); eq(Self.get("/who").fetch(), "A"); eq(Self.get("/who").fetch(), "B"); a.shutdown(); b.shutdown(); } }