blob: ba36d7704c6f792ea49383599e55089c85604851 [file] [log] [blame]
import '../../common/capabilities.dart';
import '../../common/request.dart';
import '../../common/session.dart';
import '../../common/spec.dart';
import '../../common/webdriver_handler.dart';
import 'utils.dart';
class W3cSessionHandler extends SessionHandler {
@override
WebDriverRequest buildCreateRequest({Map<String, dynamic>? desired}) {
desired ??= Capabilities.empty;
return WebDriverRequest.postRequest('session', {
'capabilities': {'alwaysMatch': desired}
});
}
@override
SessionInfo parseCreateResponse(WebDriverResponse response) {
final session = parseW3cResponse(response);
return SessionInfo(
session['sessionId'] as String,
WebDriverSpec.W3c,
session['capabilities'] as Map<String, dynamic>,
);
}
/// Requesting existing session info is not supported in W3c.
@override
WebDriverRequest buildInfoRequest(String id) =>
WebDriverRequest.nullRequest(id);
@override
SessionInfo parseInfoResponse(
WebDriverResponse response, [
String? sessionId,
]) =>
SessionInfo(response.body!, WebDriverSpec.W3c, Capabilities.empty);
}