Exemplo n.º 1
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.");
        }
Exemplo n.º 2
0
        static async Task Main(string[] args)
        {
            var client = new BlazorClient();

            client.JSInterop += async(args) =>
            {
                if (args.Identifier == "Blazor._internal.navigationManager.navigateTo")
                {
                    var jsonDocument = JsonDocument.Parse(args.ArgsJson);
                    var array        = jsonDocument.RootElement;
                    var uri          = array[0].GetString();
                    if (array[1].GetBoolean())
                    {
                        throw new NotSupportedException("Force load is not supported.");
                    }

                    await client.NavigateAsync(ServerUrl + "/" + uri);
                }
            };
            await client.ConnectAsync(new Uri(ServerUrl));

            await Navigate(client);

            await Clicks(client);

            await NavigateOnClick(client);

            await TypeAhead(client);

            Console.WriteLine("Done");
        }
Exemplo n.º 3
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'.");
            }
        }
Exemplo n.º 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");
        }
Exemplo n.º 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");
        }