/// <summary> /// Creates a new virtual response. /// </summary> /// <param name="request">The request callback.</param> /// <returns>The resulted response.</returns> public static IResponse Create(Action <VirtualResponse> request) { var vr = new VirtualResponse(); request(vr); return(vr); }
/// <summary> /// Opens a new document loaded from a virtual response that can be /// filled via the provided callback. /// </summary> /// <param name="context">The browsing context to use.</param> /// <param name="request">Callback with the response to setup.</param> /// <param name="cancel">The cancellation token.</param> /// <returns>The task that creates the document.</returns> public static async Task<IDocument> OpenAsync(this IBrowsingContext context, Action<VirtualResponse> request, CancellationToken cancel) { if (request == null) throw new ArgumentNullException("request"); if (context == null) context = BrowsingContext.New(); using (var response = new VirtualResponse()) { request(response); var source = response.CreateSourceFor(context.Configuration); var document = await context.LoadDocumentAsync(response, source, cancel).ConfigureAwait(false); context.NavigateTo(document); return document; } }
/// <summary> /// Creates a new virtual response. /// </summary> /// <param name="request">The request callback.</param> /// <returns>The resulted response.</returns> public static IResponse Create(Action<VirtualResponse> request) { var vr = new VirtualResponse(); request(vr); return vr; }
/// <summary> /// Opens a new document loaded from a virtual response that can be /// filled via the provided callback. /// </summary> /// <param name="context">The browsing context to use.</param> /// <param name="request">Callback with the response to setup.</param> /// <param name="cancel">The cancellation token.</param> /// <returns>The task that creates the document.</returns> public static Task<IDocument> OpenAsync(this IBrowsingContext context, Action<VirtualResponse> request, CancellationToken cancel) { if (request == null) throw new ArgumentNullException("request"); if (context == null) context = BrowsingContext.New(); using (var response = new VirtualResponse()) { request(response); var contentType = response.GetContentType(MimeTypes.Html); var source = response.CreateSourceFor(context.Configuration); return context.LoadDocumentAsync(response, contentType, source, cancel); } }