/*
* 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.
*
*/
package org.esigate;
import java.io.IOException;
import java.util.Properties;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.esigate.http.IncomingRequest;
import org.esigate.test.TestUtils;
import org.esigate.test.conn.IResponseHandler;
import org.esigate.test.driver.AbstractDriverTestCase;
import junit.framework.Assert;
/**
* Tests for Cookie behavior.
*
* @author Nicolas Richeton
*
*/
public class DriverCookieTest extends AbstractDriverTestCase {
/**
* Ensure Secure attribute is kept is connection uses https.
*
* @throws Exception
*/
public void testSecure() throws Exception {
// Conf
Properties properties = new Properties();
properties.put(Parameters.REMOTE_URL_BASE.getName(), "http://provider/");
// Setup remote server (provider) response.
Driver driver = TestUtils.createMockDriver(properties, new IResponseHandler() {
@Override
public HttpResponse execute(HttpRequest request) throws IOException {
return TestUtils.createHttpResponse().status(HttpStatus.SC_OK).reason("OK")
.header("Set-Cookie", "testcookie=testvalue; Secure").entity("test").build();
}
});
// Https request : Cookie is forwarded as Secure
IncomingRequest request = TestUtils.createRequest("https://test.mydomain.fr/foobar/").build();
TestUtils.driverProxy(driver, request);
Assert.assertTrue(request.getNewCookies()[0].isSecure());
// Http request : Cookie is forwarded as NOT secure
request = TestUtils.createRequest("http://test.mydomain.fr/foobar/").build();
TestUtils.driverProxy(driver, request);
Assert.assertFalse(request.getNewCookies()[0].isSecure());
}
}