Skip to content

Commit 8723d0d

Browse files
always write trace
1 parent 6b79f96 commit 8723d0d

2 files changed

Lines changed: 75 additions & 81 deletions

File tree

AudioCuesheetEditor.End2EndTests/Pages/AboutTest.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,13 @@ await Context.Tracing.StartAsync(new()
2121
[TestCleanup]
2222
public async Task TestCleanup()
2323
{
24-
var failed = new[] { UnitTestOutcome.Failed, UnitTestOutcome.Error, UnitTestOutcome.Timeout, UnitTestOutcome.Aborted }.Contains(TestContext.CurrentTestOutcome);
25-
2624
await Context.Tracing.StopAsync(new()
2725
{
28-
Path = failed ? Path.Combine(
26+
Path = Path.Combine(
2927
Environment.CurrentDirectory,
3028
"playwright-traces",
3129
$"{TestContext.FullyQualifiedTestClassName}.{TestContext.TestName}.zip"
32-
) : null,
30+
)
3331
});
3432
}
3533

AudioCuesheetEditor.End2EndTests/Pages/IndexTest.cs

Lines changed: 73 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,13 @@ await Context.Tracing.StartAsync(new()
2222
[TestCleanup]
2323
public async Task TestCleanup()
2424
{
25-
var failed = new[] { UnitTestOutcome.Failed, UnitTestOutcome.Error, UnitTestOutcome.Timeout, UnitTestOutcome.Aborted }.Contains(TestContext.CurrentTestOutcome);
26-
2725
await Context.Tracing.StopAsync(new()
2826
{
29-
Path = failed ? Path.Combine(
27+
Path = Path.Combine(
3028
Environment.CurrentDirectory,
3129
"playwright-traces",
3230
$"{TestContext.FullyQualifiedTestClassName}.{TestContext.TestName}.zip"
33-
) : null,
31+
)
3432
});
3533
}
3634

@@ -76,18 +74,17 @@ public async Task Record()
7674
await Expect(Page.GetByRole(AriaRole.Cell, new() { Name = "Test Track 2 Title Clear" })).ToBeVisibleAsync();
7775
}
7876

79-
//TODO
80-
//[TestMethod]
81-
//public async Task ChangeLanguage()
82-
//{
83-
// // We need to use a new context because the default one doesn't work with changing a language
84-
// var context = await Browser.NewContextAsync();
85-
// var page = await context.NewPageAsync();
86-
// await page.GotoAsync("http://localhost:5132/");
87-
// await page.GetByRole(AriaRole.Button, new() { Name = "Change language" }).ClickAsync();
88-
// await page.Locator("div").Filter(new() { HasTextRegex = new Regex("^German \\(Germany\\)$") }).ClickAsync();
89-
// await Expect(page.Locator("#app")).ToContainTextAsync("Allgemeine Informationen");
90-
//}
77+
[TestMethod]
78+
public async Task ChangeLanguage()
79+
{
80+
// We need to use a new context because the default one doesn't work with changing a language
81+
var context = await Browser.NewContextAsync();
82+
var page = await context.NewPageAsync();
83+
await page.GotoAsync("http://localhost:5132/");
84+
await page.GetByRole(AriaRole.Button, new() { Name = "Change language" }).ClickAsync();
85+
await page.Locator("div").Filter(new() { HasTextRegex = new Regex("^German \\(Germany\\)$") }).ClickAsync();
86+
await Expect(page.Locator("#app")).ToContainTextAsync("Allgemeine Informationen");
87+
}
9188

9289
[TestMethod]
9390
public async Task Import()
@@ -104,66 +101,65 @@ public async Task Import()
104101
await Expect(Page.GetByRole(AriaRole.Group).Filter(new() { HasText = "AudiofileAudiofile Search" }).Locator("input[type=\"file\"]")).ToBeEmptyAsync();
105102
}
106103

107-
//TODO
108-
// [TestMethod]
109-
// public async Task GenerateCuesheet()
110-
// {
111-
// await Page.GotoAsync("http://localhost:5132/");
112-
// await Page.GetByRole(AriaRole.Button, new() { Name = "File", Exact = true }).ClickAsync();
113-
// await Page.GetByText("Open").ClickAsync();
114-
// await Page.Locator("#dropFileInputId_SelectFileDialog").GetByRole(AriaRole.Button, new() { Name = "Choose File" }).ClickAsync();
115-
// await Page.Locator("#dropFileInputId_SelectFileDialog").GetByRole(AriaRole.Button, new() { Name = "Choose File" }).SetInputFilesAsync(new[] { "../../../../AudioCuesheetEditor/wwwroot/samples/Sample_Cuesheet.cue" });
116-
// await Expect(Page.GetByRole(AriaRole.Textbox, new() { Name = "Cuesheet artist" })).ToHaveValueAsync("Sample CD Artist");
117-
// await Expect(Page.GetByRole(AriaRole.Textbox, new() { Name = "Cuesheet title" })).ToHaveValueAsync("Sample CD Title");
118-
// await Expect(Page.GetByRole(AriaRole.Cell, new() { Name = "Sample Artist 6" }).GetByRole(AriaRole.Textbox)).ToHaveValueAsync("Sample Artist 6");
119-
// await Expect(Page.GetByRole(AriaRole.Row, new() { Name = "Increment Decrement Sample Artist 7 Clear Sample Title 7 Clear 00:31:54 00:45:" }).GetByRole(AriaRole.Textbox).Nth(3)).ToHaveValueAsync("00:45:54");
120-
// await Page.GetByRole(AriaRole.Button, new() { Name = "File", Exact = true }).ClickAsync();
121-
// await Page.GetByText("Export").ClickAsync();
122-
// await Page.GetByText("Cuesheet", new() { Exact = true }).ClickAsync();
123-
// var download = await Page.RunAndWaitForDownloadAsync(async () =>
124-
// {
125-
// await Page.GetByRole(AriaRole.Row, new() { Name = "Cuesheet.cue 00:00:00 00:45:" }).GetByRole(AriaRole.Button).ClickAsync();
126-
// });
127-
// // Read the downloaded file content as text
128-
// var cuesheetContent = await download.PathAsync();
129-
// var actualText = await File.ReadAllTextAsync(cuesheetContent);
130-
// var expectedText = @"TITLE ""Sample CD Title""
131-
//PERFORMER ""Sample CD Artist""
132-
//FILE ""Sample.mp3"" MP3
133-
// TRACK 01 AUDIO
134-
// TITLE ""Sample Title 1""
135-
// PERFORMER ""Sample Artist 1""
136-
// INDEX 01 00:00:00
137-
// TRACK 02 AUDIO
138-
// TITLE ""Sample Title 2""
139-
// PERFORMER ""Sample Artist 2""
140-
// INDEX 01 05:00:00
141-
// TRACK 03 AUDIO
142-
// TITLE ""Sample Title 3""
143-
// PERFORMER ""Sample Artist 3""
144-
// INDEX 01 09:23:00
145-
// TRACK 04 AUDIO
146-
// TITLE ""Sample Title 4""
147-
// PERFORMER ""Sample Artist 4""
148-
// INDEX 01 15:54:00
149-
// TRACK 05 AUDIO
150-
// TITLE ""Sample Title 5""
151-
// PERFORMER ""Sample Artist 5""
152-
// INDEX 01 20:13:00
153-
// TRACK 06 AUDIO
154-
// TITLE ""Sample Title 6""
155-
// PERFORMER ""Sample Artist 6""
156-
// INDEX 01 24:54:00
157-
// TRACK 07 AUDIO
158-
// TITLE ""Sample Title 7""
159-
// PERFORMER ""Sample Artist 7""
160-
// INDEX 01 31:54:00
161-
// TRACK 08 AUDIO
162-
// TITLE ""Sample Title 8""
163-
// PERFORMER ""Sample Artist 8""
164-
// INDEX 01 45:54:00
165-
//";
166-
// Assert.AreEqual(expectedText.Replace("\r\n", "\n"), actualText.Replace("\r\n", "\n"));
167-
// }
104+
[TestMethod]
105+
public async Task GenerateCuesheet()
106+
{
107+
await Page.GotoAsync("http://localhost:5132/");
108+
await Page.GetByRole(AriaRole.Button, new() { Name = "File", Exact = true }).ClickAsync();
109+
await Page.GetByText("Open").ClickAsync();
110+
await Page.Locator("#dropFileInputId_SelectFileDialog").GetByRole(AriaRole.Button, new() { Name = "Choose File" }).ClickAsync();
111+
await Page.Locator("#dropFileInputId_SelectFileDialog").GetByRole(AriaRole.Button, new() { Name = "Choose File" }).SetInputFilesAsync(new[] { "../../../../AudioCuesheetEditor/wwwroot/samples/Sample_Cuesheet.cue" });
112+
await Expect(Page.GetByRole(AriaRole.Textbox, new() { Name = "Cuesheet artist" })).ToHaveValueAsync("Sample CD Artist");
113+
await Expect(Page.GetByRole(AriaRole.Textbox, new() { Name = "Cuesheet title" })).ToHaveValueAsync("Sample CD Title");
114+
await Expect(Page.GetByRole(AriaRole.Cell, new() { Name = "Sample Artist 6" }).GetByRole(AriaRole.Textbox)).ToHaveValueAsync("Sample Artist 6");
115+
await Expect(Page.GetByRole(AriaRole.Row, new() { Name = "Increment Decrement Sample Artist 7 Clear Sample Title 7 Clear 00:31:54 00:45:" }).GetByRole(AriaRole.Textbox).Nth(3)).ToHaveValueAsync("00:45:54");
116+
await Page.GetByRole(AriaRole.Button, new() { Name = "File", Exact = true }).ClickAsync();
117+
await Page.GetByText("Export").ClickAsync();
118+
await Page.GetByText("Cuesheet", new() { Exact = true }).ClickAsync();
119+
var download = await Page.RunAndWaitForDownloadAsync(async () =>
120+
{
121+
await Page.GetByRole(AriaRole.Row, new() { Name = "Cuesheet.cue 00:00:00 00:45:" }).GetByRole(AriaRole.Button).ClickAsync();
122+
});
123+
// Read the downloaded file content as text
124+
var cuesheetContent = await download.PathAsync();
125+
var actualText = await File.ReadAllTextAsync(cuesheetContent);
126+
var expectedText = @"TITLE ""Sample CD Title""
127+
PERFORMER ""Sample CD Artist""
128+
FILE ""Sample.mp3"" MP3
129+
TRACK 01 AUDIO
130+
TITLE ""Sample Title 1""
131+
PERFORMER ""Sample Artist 1""
132+
INDEX 01 00:00:00
133+
TRACK 02 AUDIO
134+
TITLE ""Sample Title 2""
135+
PERFORMER ""Sample Artist 2""
136+
INDEX 01 05:00:00
137+
TRACK 03 AUDIO
138+
TITLE ""Sample Title 3""
139+
PERFORMER ""Sample Artist 3""
140+
INDEX 01 09:23:00
141+
TRACK 04 AUDIO
142+
TITLE ""Sample Title 4""
143+
PERFORMER ""Sample Artist 4""
144+
INDEX 01 15:54:00
145+
TRACK 05 AUDIO
146+
TITLE ""Sample Title 5""
147+
PERFORMER ""Sample Artist 5""
148+
INDEX 01 20:13:00
149+
TRACK 06 AUDIO
150+
TITLE ""Sample Title 6""
151+
PERFORMER ""Sample Artist 6""
152+
INDEX 01 24:54:00
153+
TRACK 07 AUDIO
154+
TITLE ""Sample Title 7""
155+
PERFORMER ""Sample Artist 7""
156+
INDEX 01 31:54:00
157+
TRACK 08 AUDIO
158+
TITLE ""Sample Title 8""
159+
PERFORMER ""Sample Artist 8""
160+
INDEX 01 45:54:00
161+
";
162+
Assert.AreEqual(expectedText.Replace("\r\n", "\n"), actualText.Replace("\r\n", "\n"));
163+
}
168164
}
169165
}

0 commit comments

Comments
 (0)