Skip to content

Commit cca4bef

Browse files
Fix InputRadioGroupsWithNamesNestedInteractWithEditContext (#24859)
* Fixed stale element issues * Reverted changes to blazor.server.js and blazor.webassembly.js
1 parent 1f84e28 commit cca4bef

File tree

1 file changed

+28
-43
lines changed

1 file changed

+28
-43
lines changed

src/Components/test/E2ETest/Tests/FormsTest.cs

Lines changed: 28 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -303,47 +303,43 @@ public void InputCheckboxInteractsWithEditContext()
303303
}
304304

305305
[Fact]
306+
[QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/24850")]
306307
public void InputRadioGroupWithoutNameInteractsWithEditContext()
307308
{
308309
var appElement = MountTypicalValidationComponent();
309-
var airlineInputs = FindAirlineInputs(appElement);
310-
var unknownAirlineInput = FindUnknownAirlineInput(airlineInputs);
311-
var bestAirlineInput = FindBestAirlineInput(airlineInputs);
312310
var messagesAccessor = CreateValidationMessagesAccessor(appElement);
313311

314-
// Validate unselected inputs
315-
Assert.All(airlineInputs.Where(i => i != unknownAirlineInput), i => Browser.False(() => i.Selected));
316-
317312
// Validate selected inputs
318-
Browser.True(() => unknownAirlineInput.Selected);
313+
Browser.True(() => FindUnknownAirlineInput().Selected);
314+
Browser.False(() => FindBestAirlineInput().Selected);
319315

320316
// InputRadio emits additional attributes
321-
Browser.True(() => unknownAirlineInput.GetAttribute("extra").Equals("additional"));
317+
Browser.True(() => FindUnknownAirlineInput().GetAttribute("extra").Equals("additional"));
322318

323319
// Validates on edit
324-
Assert.All(airlineInputs, i => Browser.Equal("valid", () => i.GetAttribute("class")));
320+
Browser.Equal("valid", () => FindUnknownAirlineInput().GetAttribute("class"));
321+
Browser.Equal("valid", () => FindBestAirlineInput().GetAttribute("class"));
325322

326-
bestAirlineInput.Click();
327-
airlineInputs = FindAirlineInputs(appElement);
323+
FindBestAirlineInput().Click();
328324

329-
Assert.All(airlineInputs, i => Browser.Equal("modified valid", () => i.GetAttribute("class")));
325+
Browser.Equal("modified valid", () => FindUnknownAirlineInput().GetAttribute("class"));
326+
Browser.Equal("modified valid", () => FindBestAirlineInput().GetAttribute("class"));
330327

331328
// Can become invalid
332-
unknownAirlineInput = FindUnknownAirlineInput(airlineInputs);
333-
unknownAirlineInput.Click();
334-
airlineInputs = FindAirlineInputs(appElement);
329+
FindUnknownAirlineInput().Click();
335330

336-
Assert.All(airlineInputs, i => Browser.Equal("modified invalid", () => i.GetAttribute("class")));
331+
Browser.Equal("modified invalid", () => FindUnknownAirlineInput().GetAttribute("class"));
332+
Browser.Equal("modified invalid", () => FindBestAirlineInput().GetAttribute("class"));
337333
Browser.Equal(new[] { "Pick a valid airline." }, messagesAccessor);
338334

339-
static IReadOnlyCollection<IWebElement> FindAirlineInputs(IWebElement appElement)
335+
IReadOnlyCollection<IWebElement> FindAirlineInputs()
340336
=> appElement.FindElement(By.ClassName("airline")).FindElements(By.TagName("input"));
341337

342-
static IWebElement FindUnknownAirlineInput(IReadOnlyCollection<IWebElement> airlineInputs)
343-
=> airlineInputs.First(i => i.GetAttribute("value").Equals("Unknown"));
338+
IWebElement FindUnknownAirlineInput()
339+
=> FindAirlineInputs().First(i => string.Equals("Unknown", i.GetAttribute("value")));
344340

345-
static IWebElement FindBestAirlineInput(IReadOnlyCollection<IWebElement> airlineInputs)
346-
=> airlineInputs.First(i => i.GetAttribute("value").Equals("BestAirline"));
341+
IWebElement FindBestAirlineInput()
342+
=> FindAirlineInputs().First(i => string.Equals("BestAirline", i.GetAttribute("value")));
347343
}
348344

349345
[Fact]
@@ -353,40 +349,29 @@ public void InputRadioGroupsWithNamesNestedInteractWithEditContext()
353349
var appElement = MountTypicalValidationComponent();
354350
var submitButton = appElement.FindElement(By.CssSelector("button[type=submit]"));
355351
var group = appElement.FindElement(By.ClassName("nested-radio-group"));
356-
var countryInputs = FindCountryInputs();
357-
var colorInputs = FindColorInputs();
358-
359-
// Validate group counts
360-
Assert.Equal(3, countryInputs.Count);
361-
Assert.Equal(4, colorInputs.Count);
362352

363353
// Validate unselected inputs
364-
Assert.All(countryInputs, i => Browser.False(() => i.Selected));
365-
Assert.All(colorInputs, i => Browser.False(() => i.Selected));
354+
Browser.True(() => FindCountryInputs().All(i => !i.Selected));
355+
Browser.True(() => FindColorInputs().All(i => !i.Selected));
366356

367357
// Invalidates on submit
368-
Assert.All(countryInputs, i => Browser.Equal("valid", () => i.GetAttribute("class")));
369-
Assert.All(colorInputs, i => Browser.Equal("valid", () => i.GetAttribute("class")));
358+
Browser.True(() => FindCountryInputs().All(i => string.Equals("valid", i.GetAttribute("class"))));
359+
Browser.True(() => FindColorInputs().All(i => string.Equals("valid", i.GetAttribute("class"))));
370360

371361
submitButton.Click();
372-
countryInputs = FindCountryInputs();
373-
colorInputs = FindColorInputs();
374362

375-
Assert.All(countryInputs, i => Browser.Equal("invalid", () => i.GetAttribute("class")));
376-
Assert.All(colorInputs, i => Browser.Equal("invalid", () => i.GetAttribute("class")));
363+
Browser.True(() => FindCountryInputs().All(i => string.Equals("invalid", i.GetAttribute("class"))));
364+
Browser.True(() => FindColorInputs().All(i => string.Equals("invalid", i.GetAttribute("class"))));
377365

378366
// Validates on edit
379-
countryInputs.First().Click();
380-
countryInputs = FindCountryInputs();
381-
colorInputs = FindColorInputs();
367+
FindCountryInputs().First().Click();
382368

383-
Assert.All(countryInputs, i => Browser.Equal("modified valid", () => i.GetAttribute("class")));
384-
Assert.All(colorInputs, i => Browser.Equal("invalid", () => i.GetAttribute("class")));
369+
Browser.True(() => FindCountryInputs().All(i => string.Equals("modified valid", i.GetAttribute("class"))));
370+
Browser.True(() => FindColorInputs().All(i => string.Equals("invalid", i.GetAttribute("class"))));
385371

386-
colorInputs.First().Click();
387-
colorInputs = FindColorInputs();
372+
FindColorInputs().First().Click();
388373

389-
Assert.All(colorInputs, i => Browser.Equal("modified valid", () => i.GetAttribute("class")));
374+
Browser.True(() => FindColorInputs().All(i => string.Equals("modified valid", i.GetAttribute("class"))));
390375

391376
IReadOnlyCollection<IWebElement> FindCountryInputs() => group.FindElements(By.Name("country"));
392377

0 commit comments

Comments
 (0)