internal Task SelectAsync(BlazorClient client, string value) { if (!Events.TryGetValue("change", out var changeEventDescriptor)) { throw new InvalidOperationException("Element does not have a change event."); } var args = new TestChangeEventArgs { Value = value }; var webEventDescriptor = new WebEventDescriptor { EventHandlerId = changeEventDescriptor.EventId, EventName = "change", EventFieldInfo = new EventFieldInfo { ComponentId = 0, FieldValue = value } }; return(DispatchEventCore(client, webEventDescriptor, args)); }
public Task ClickAsync(BlazorClient client) { if (!Events.TryGetValue("click", out var clickEventDescriptor)) { throw new InvalidOperationException("Element does not have a click event."); } var mouseEventArgs = new TestMouseEventArgs { Type = clickEventDescriptor.EventName, Detail = 1 }; var webEventDescriptor = new WebEventDescriptor { EventHandlerId = clickEventDescriptor.EventId, EventName = "click", }; return(DispatchEventCore(client, webEventDescriptor, mouseEventArgs)); }
public static async Task <int> Main(string[] args) { if (args.Length == 0) { Console.WriteLine("a uri is required"); return(1); } Console.WriteLine("Press the ANY key to begin."); Console.ReadLine(); var uri = new Uri(args[0]); var client = new BlazorClient(); client.JSInterop += OnJSInterop; Console.CancelKeyPress += (sender, e) => client.Cancel(); var done = new TaskCompletionSource <bool>(TaskCreationOptions.RunContinuationsAsynchronously); // Click the counter button 1000 times client.RenderBatchReceived += (int batchId, byte[] data) => { if (batchId < 1000) { var _ = client.ClickAsync("thecounter"); } else { done.TrySetResult(true); } }; await client.ConnectAsync(uri, prerendered : true); await done.Task; return(0); }
private static Task DispatchEventCore(BlazorClient client, WebEventDescriptor descriptor, EventArgs eventArgs) => client.DispatchEventAsync(descriptor, eventArgs);