Skip to content

Commit e63f005

Browse files
committed
Fix merge conflict
1 parent 8ff71d8 commit e63f005

9 files changed

Lines changed: 63 additions & 23 deletions

File tree

src/OrchardCoreContrib.Testing.UI/Browser.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace OrchardCoreContrib.Testing.UI;
1111
/// <param name="playwrightBrowserAccessor">The <see cref="IPlaywrightBrowserAccessor"/>.</param>
1212
/// <param name="type">The <see cref="BrowserType"/>.</param>
1313
/// <param name="headless">Whether to run browser in headless mode.</param>
14-
public class Browser(IPlaywrightBrowserAccessor playwrightBrowserAccessor, int delay) : IBrowser
14+
public class Browser(IPlaywrightBrowserAccessor playwrightBrowserAccessor) : IBrowser
1515
{
1616
/// <inheritdoc/>
1717
public PlaywrightBrowser InnerBrowser => playwrightBrowserAccessor.PlaywrightBrowser;
@@ -20,10 +20,10 @@ public class Browser(IPlaywrightBrowserAccessor playwrightBrowserAccessor, int d
2020
public BrowserType Type { get; set; }
2121

2222
/// <inheritdoc/>
23-
public int Delay => delay;
23+
public string Version { get; set; } = playwrightBrowserAccessor.PlaywrightBrowser.Version;
2424

2525
/// <inheritdoc/>
26-
public string Version { get; set; } = playwrightBrowserAccessor.PlaywrightBrowser.Version;
26+
public UITestOptions TestOptions { get; set; }
2727

2828
/// <inheritdoc/>
2929
public async Task<IPage> OpenPageAsync(string url)
@@ -32,7 +32,7 @@ public async Task<IPage> OpenPageAsync(string url)
3232

3333
await playwrightPage.GotoAsync(url);
3434

35-
var page = new Page(new PlaywrightPageAccessor(playwrightPage))
35+
var page = new Page(new PlaywrightPageAccessor(playwrightPage), this)
3636
{
3737
Title = await playwrightPage.TitleAsync(),
3838
Content = await playwrightPage.ContentAsync()

src/OrchardCoreContrib.Testing.UI/BrowserFactory.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ public static async Task<IBrowser> CreateAsync(IPlaywright playwright, UITestOpt
3939
_ => throw new NotSupportedException()
4040
};
4141

42-
return new Browser(new PlaywrightBrowserAccessor(browser)) { Type = testOptions.BrowserType };
42+
return new Browser(new PlaywrightBrowserAccessor(browser))
43+
{
44+
Type = testOptions.BrowserType,
45+
TestOptions = testOptions
46+
};
4347
}
4448
}

src/OrchardCoreContrib.Testing.UI/Element.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ namespace OrchardCoreContrib.Testing.UI;
77
/// </summary>
88
/// <remarks>The <see cref="Element"/>.</remarks>
99
/// <param name="locator">The <see cref="ILocator"/>.</param>
10-
public class Element(IPage page, ILocator locator) : IElement
10+
/// <param name="IPage">The <see cref="page"/>.</param>
11+
public class Element(ILocator locator, IPage page) : IElement
1112
{
12-
private readonly LocatorClickOptions _locatorClickOptions = page.Browser.Delay == 0
13+
private readonly LocatorClickOptions _locatorClickOptions = page.Browser.TestOptions.Delay == 0
1314
? null
14-
: new() { Delay = page.Browser.Delay };
15-
private readonly LocatorPressSequentiallyOptions _locatorPressSequentiallyOptions = page.Browser.Delay == 0
15+
: new() { Delay = page.Browser.TestOptions.Delay };
16+
private readonly LocatorPressSequentiallyOptions _locatorPressSequentiallyOptions = page.Browser.TestOptions.Delay == 0
1617
? null
17-
: new() { Delay = page.Browser.Delay };
18+
: new() { Delay = page.Browser.TestOptions.Delay };
1819

1920
IPage IElement.Page => page;
2021

@@ -36,7 +37,7 @@ public class Element(IPage page, ILocator locator) : IElement
3637
/// <inheritdoc/>
3738
public async Task TypeAsync(string text)
3839
{
39-
await locator.FillAsync(text);
40+
await locator.PressSequentiallyAsync(text, _locatorPressSequentiallyOptions);
4041

4142
InnerText = await locator.InnerTextAsync();
4243
InnerHtml = await locator.InnerHTMLAsync();

src/OrchardCoreContrib.Testing.UI/IBrowser.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ public interface IBrowser
1010
/// </summary>
1111
public Microsoft.Playwright.IBrowser InnerBrowser { get; }
1212

13+
/// <summary>
14+
/// Gets the test options that will be applied;
15+
/// </summary>
16+
public UITestOptions TestOptions { get; set; }
17+
1318
/// <summary>
1419
/// Gets or sets the browser type.
1520
/// </summary>

src/OrchardCoreContrib.Testing.UI/Page.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@ namespace OrchardCoreContrib.Testing.UI;
99
/// Creates an instance of <see cref="Page"/>.
1010
/// </remarks>
1111
/// <param name="playwrightPageAccessor">The <see cref="IPlaywrightPageAccessor"/>.</param>
12-
public class Page(IPlaywrightPageAccessor playwrightPageAccessor) : IPage
12+
/// <param name="browser">The <see cref="IBrowser"/>.</param>
13+
public class Page(IPlaywrightPageAccessor playwrightPageAccessor, IBrowser browser) : IPage
1314
{
1415
/// <inheritdoc/>
1516
public Microsoft.Playwright.IPage InnerPage => playwrightPageAccessor.PlaywrightPage;
1617

18+
IBrowser IPage.Browser => browser;
19+
1720
/// <inheritdoc/>
1821
public string Title { get; set; }
1922

@@ -33,7 +36,7 @@ public async Task GoToAsync(string url)
3336
public IElement FindElement(string selector)
3437
{
3538
var locator = InnerPage.Locator(selector);
36-
var element = new Element(locator)
39+
var element = new Element(locator, this)
3740
{
3841
InnerText = locator.InnerTextAsync().GetAwaiter().GetResult(),
3942
InnerHtml = locator.InnerHTMLAsync().GetAwaiter().GetResult(),

src/OrchardCoreContrib.Testing.UI/UITestOptions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,9 @@ public class UITestOptions
1414
/// Gets or sets the browser type to run the test on. Defaults <see cref="BrowserType.Edge"/>.
1515
/// </summary>
1616
public BrowserType BrowserType { get; set; } = BrowserType.Edge;
17+
18+
/// <summary>
19+
/// Gets or sets amount of time to wait before executing each event on the page. Defaults <c>0</c>.
20+
/// </summary>
21+
public int Delay { get; set; } = 0;
1722
}

test/OrchardCoreContrib.Testing.UI.Tests/ElementTests.cs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,22 @@
22

33
public class ElementTests
44
{
5+
private readonly Page _page;
6+
7+
public ElementTests()
8+
{
9+
var browser = new Browser(new PlaywrightBrowserAccessor(Mock.Of<Microsoft.Playwright.IBrowser>()))
10+
{
11+
TestOptions = new UITestOptions()
12+
};
13+
_page = new Page(new PlaywrightPageAccessor(Mock.Of<Microsoft.Playwright.IPage>()), browser);
14+
}
15+
516
[Fact]
617
public void GetElementInformation()
718
{
819
// Act
9-
var element = new Element(Mock.Of<ILocator>())
20+
var element = new Element(Mock.Of<ILocator>(), _page)
1021
{
1122
InnerHtml = "<h1>Orchard Core Contrib</h1>",
1223
InnerText = "Orchard Core Contrib",
@@ -26,7 +37,7 @@ public async Task ClickElement()
2637
{
2738
// Arrange
2839
var locatorMock = new Mock<ILocator>();
29-
var element = new Element(locatorMock.Object);
40+
var element = new Element(locatorMock.Object, _page);
3041

3142
// Act
3243
await element.ClickAsync();
@@ -40,13 +51,13 @@ public async Task TypeTextIntoElement()
4051
{
4152
// Arrange
4253
var locatorMock = new Mock<ILocator>();
43-
locatorMock.Setup(l => l.FillAsync(It.IsAny<string>(), null))
54+
locatorMock.Setup(l => l.PressSequentiallyAsync(It.IsAny<string>(), null))
4455
.Callback(() =>
4556
{
4657
locatorMock.Setup(l => l.InnerTextAsync(null))
4758
.ReturnsAsync("Orchard Core Contrib");
4859
});
49-
var element = new Element(locatorMock.Object);
60+
var element = new Element(locatorMock.Object, _page);
5061

5162
// Act
5263
await element.TypeAsync("Orchard Core Contrib");

test/OrchardCoreContrib.Testing.UI.Tests/PageTests.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@ namespace OrchardCoreContrib.Testing.UI.Tests;
22

33
public class PageTests
44
{
5-
private readonly IBrowser _browser = Mock.Of<IBrowser>();
5+
private readonly Browser _browser;
6+
7+
public PageTests()
8+
{
9+
_browser = new Browser(new PlaywrightBrowserAccessor(Mock.Of<Microsoft.Playwright.IBrowser>()))
10+
{
11+
TestOptions = new UITestOptions()
12+
};
13+
}
614

715
[Fact]
816
public void ShouldCreatePage()
@@ -11,7 +19,7 @@ public void ShouldCreatePage()
1119
var playwrightPageAccessor = new PlaywrightPageAccessor(Mock.Of<Microsoft.Playwright.IPage>());
1220

1321
// Act
14-
var page = new Page(_browser, playwrightPageAccessor);
22+
var page = new Page(playwrightPageAccessor, _browser);
1523

1624
// Assert
1725
Assert.NotNull(page);
@@ -33,7 +41,7 @@ public async Task GetPageInformation()
3341
var playwrightPageAccessor = new PlaywrightPageAccessor(pageMock.Object);
3442

3543
// Act
36-
var page = new Page(_browser, playwrightPageAccessor);
44+
var page = new Page(playwrightPageAccessor, _browser);
3745
await page.GoToAsync("www.occ.com");
3846

3947
// Assert
@@ -52,7 +60,7 @@ public void ShouldFindElement()
5260

5361
var playwrightPageAccessor = new PlaywrightPageAccessor(pageMock.Object);
5462

55-
var page = new Page(_browser, playwrightPageAccessor);
63+
var page = new Page(playwrightPageAccessor, _browser);
5664

5765
// Act
5866
var result = page.FindElement("selector");

test/OrchardCoreContrib.Testing.UI.Tests/PlaywrightPageHelper.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ public static async Task<IPage> GotoAsync(string pageName)
66
{
77
var playwright = await Playwright.CreateAsync();
88
var playwrightBrowser = await playwright.Chromium.LaunchAsync();
9-
var browser = new Browser(new PlaywrightBrowserAccessor(playwrightBrowser), BrowserType.Edge, headless: true, delay: 0);
9+
var browser = new Browser(new PlaywrightBrowserAccessor(playwrightBrowser))
10+
{
11+
TestOptions = new UITestOptions()
12+
};
1013

1114
var page = await playwrightBrowser.NewPageAsync();
1215

1316
await page.GotoAsync(PageHelper.GetFullPath(pageName));
1417

15-
return new Page(browser, new PlaywrightPageAccessor(page));
18+
return new Page(new PlaywrightPageAccessor(page), browser);
1619
}
1720
}

0 commit comments

Comments
 (0)