示例#1
0
        /// <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;
            }
        }
示例#3
0
 /// <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);
            }
        }