@@ -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