blob: cd3e23997308f1df7edad42136168af3ba5c8eb1 [file] [log] [blame]
import 'package:webdriver/src/common/request.dart';
import 'package:webdriver/src/common/session.dart';
import 'package:webdriver/src/common/spec.dart';
import 'package:webdriver/src/common/webdriver_handler.dart';
import 'package:webdriver/src/common/capabilities.dart';
import 'package:webdriver/src/handler/w3c/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'], WebDriverSpec.W3c, session['capabilities']);
}
/// 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);
}