/*******************************************************************************
 * Copyright (c) 2009 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 Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.e4.languages.javascript.debug.connect.test;

import org.eclipse.e4.languages.javascript.debug.connect.DisconnectException;
import org.eclipse.e4.languages.javascript.debug.connect.Request;
import org.eclipse.e4.languages.javascript.debug.connect.Response;
import org.eclipse.e4.languages.javascript.debug.connect.TimeoutException;

public class RequestVersionTest extends RequestTest {

	public void testVersion() throws DisconnectException, TimeoutException {
		Request request = new Request("version");
		debugSession.sendRequest(request);
		Response response = debugSession.receiveResponse(request.getSequence(), 30000);
		assertTrue(response.getBody().containsKey("javascript.version"));
		assertTrue(response.getBody().containsKey("ecmascript.version"));
		assertTrue(response.getBody().containsKey("javascript.vm.vendor"));
		assertTrue(response.getBody().containsKey("javascript.vm.name"));
		assertTrue(response.getBody().containsKey("javascript.vm.version"));
	}
}
