/******************************************************************************* * Copyright (c) 2002-2005 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM - Initial API and implementation *******************************************************************************/ package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; import org.eclipse.wst.wsi.internal.core.WSIException; import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; import org.eclipse.wst.wsi.internal.core.report.AssertionResult; import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; /** * BP4107 * For a request message containing an Upgrade field in the HTTP Headers. * The request message contains an Upgrade field in the HTTP Headers. */ public class BP4107 extends AssertionProcess { private final BaseMessageValidator validator; /** * @param BaseMessageValidator */ public BP4107(BaseMessageValidator impl) { super(impl); this.validator = impl; } public AssertionResult validate( TestAssertion testAssertion, EntryContext entryContext) throws WSIException { // Getting the Upgrade HTTP header value String upgrage = (String) HTTPUtils.getHttpHeaderTokens( entryContext.getMessageEntry().getHTTPHeaders(), ":").get(HTTPConstants.HEADER_UPGRADE.toUpperCase()); // If the header is presented, then the assertion passed if (upgrage != null) { failureDetail = validator.createFailureDetail( testAssertion.getDetailDescription(), entryContext); } // else the assertion is not applicable else { result = AssertionResult.RESULT_NOT_APPLICABLE; } return validator.createAssertionResult( testAssertion, result, failureDetail); } }