Example #1
0
        static async Task Clicks(BlazorClient client)
        {
            var batch = await client.ExpectRenderBatch(() => client.NavigateAsync(ServerUrl + "/home"));

            if (!client.Hive.TryFindElementById("changeState", out var changeState))
            {
                throw new InvalidOperationException($"Expected to have navigated to the home page.");
            }

            client.Hive.TryFindElementById("state", out var state);

            await changeState.ClickAsync(client.HubConnection);

            await client.PrepareForNextBatch(null);

            if (state.Attributes["data-state"].ToString() == "Clicked")
            {
                Console.WriteLine("State changed to clicked.");
            }
            else
            {
                throw new InvalidOperationException("State was not 'Clicked'.");
            }

            await client.ExpectRenderBatch(() => changeState.DoubleClickAsync(client.HubConnection));

            if (state.Attributes["data-state"].ToString() == "DoubleClicked")
            {
                Console.WriteLine("State changed to dblclicked.");
            }
            else
            {
                throw new InvalidOperationException("State was not 'DoubleClicked'.");
            }
        }
Example #2
0
        static async ValueTask VerifyNavigationAsync(BlazorClient client)
        {
            await client.ExpectRenderBatch(() => client.NavigateAsync($"{ServerUrl}/counter"));

            client.Hive.TryFindElementById("counter", out var counter);
            Debug.Assert(counter != null, "We must have navigated to counter.");
        }
Example #3
0
        async static Task RunAsync(Uri uri, BlazorClient client, CancellationToken cancellationToken)
        {
            var counterUri = uri.AbsoluteUri + "/counter";

            await using (client)
            {
                try
                {
                    await client.ExpectRenderBatch(async() =>
                    {
                        await client.HubConnection.InvokeAsync("OnLocationChanged", $"{counterUri.ToString()}", false, cancellationToken);
                    });

                    while (!cancellationToken.IsCancellationRequested)
                    {
                        await client.ClickAsync("clicker");

                        await Task.Delay(TimeSpan.FromSeconds(0.5));
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Client failed: " + ex);
                }
            }
        }
Example #4
0
        static async Task NavigateOnClick(BlazorClient client)
        {
            var batch = await client.ExpectRenderBatch(() => client.NavigateAsync(ServerUrl + "/home"));

            if (!client.Hive.TryFindElementById("navigateOnClick", out var navigateOnClick))
            {
                throw new InvalidOperationException($"Expected to have navigated to the home page.");
            }

            await navigateOnClick.ClickAsync(client.HubConnection);

            // Wait for one or more renders that causes fetchdata to have been updated.
            await client.ExistsAsync("fetchdata");

            Console.WriteLine("Completed navigation on click scenarios");
        }
Example #5
0
        static async Task Navigate(BlazorClient client)
        {
            var links = new[] { "counter", "fetchdata", "home" };

            for (var i = 0; i < 5; i++)
            {
                var link  = links[i % links.Length];
                var batch = await client.ExpectRenderBatch(() => client.NavigateAsync(ServerUrl + "/" + link));

                if (!client.Hive.TryFindElementById(link, out _))
                {
                    throw new InvalidOperationException($"Expected to have navigated to {link}.");
                }

                Console.WriteLine($"Navigated to {link}.");
                await Task.Delay(50);
            }

            Console.WriteLine("Completed navigation scenarios");
        }