From 78ed32e5504c7bb653a8d5dbc0cf8dedd0f8e245 Mon Sep 17 00:00:00 2001 From: MiriamKyoseva <133047546+MiriamKyoseva@users.noreply.github.com> Date: Fri, 8 Mar 2024 13:15:09 +0200 Subject: [PATCH 01/75] updates to API module and package upgrades --- BellatrixTestFramework.sln | 287 ++++++++++++++++++ src/Bellatrix.Api/ApiClientService.cs | 68 +++-- src/Bellatrix.Api/Bellatrix.API.csproj | 2 +- src/Bellatrix.Core/Bellatrix.Core.csproj | 2 +- .../Bellatrix.Desktop.csproj | 2 +- src/Bellatrix.Mobile/Bellatrix.Mobile.csproj | 2 +- .../Bellatrix.Plugins.Screenshots.csproj | 2 +- .../Bellatrix.Plugins.Video.csproj | 2 +- src/Bellatrix.Web/Bellatrix.Web.csproj | 2 +- .../Bellatrix.API.GettingStarted.csproj | 4 +- .../Bellatrix.API.Tests.csproj | 4 +- .../Bellatrix.Desktop.Tests.csproj | 4 +- .../Bellatrix.Mobile.Tests.csproj | 4 +- .../Bellatrix.Web.Tests.csproj | 4 +- .../Bellatrix.API.Tests.csproj | 4 +- .../Bellatrix.API.Tests.csproj | 4 +- .../Bellatrix.Desktop.Tests.csproj | 4 +- .../Bellatrix.Desktop.Tests.csproj | 4 +- .../Bellatrix.Mobile.Android.Tests.csproj | 4 +- .../Bellatrix.Mobile.Android.Tests.csproj | 4 +- .../Bellatrix.Mobile.IOS.Tests.csproj | 4 +- .../Bellatrix.Mobile.IOS.Tests.csproj | 4 +- .../Bellatrix.Web.Tests.csproj | 7 +- .../Bellatrix.Web.Tests.csproj | 4 +- 24 files changed, 371 insertions(+), 61 deletions(-) diff --git a/BellatrixTestFramework.sln b/BellatrixTestFramework.sln index a4f02df7..a0a7ace0 100644 --- a/BellatrixTestFramework.sln +++ b/BellatrixTestFramework.sln @@ -86,6 +86,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bellatrix.Email", "src\Bell EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bellatrix.AWS", "src\Bellatrix.AWS\Bellatrix.AWS.csproj", "{1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bellatrix.Playwright", "src\Bellatrix.Playwright\Bellatrix.Playwright.csproj", "{08D46A7C-4BCC-4813-B20F-C7A9039621C9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution DEBUG|Any CPU = DEBUG|Any CPU @@ -96,6 +98,10 @@ Global QA|ARM = QA|ARM QA|x64 = QA|x64 QA|x86 = QA|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 STAGE|Any CPU = STAGE|Any CPU STAGE|ARM = STAGE|ARM STAGE|x64 = STAGE|x64 @@ -118,6 +124,14 @@ Global {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.QA|x64.Build.0 = Release|Any CPU {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.QA|x86.ActiveCfg = Release|Any CPU {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.QA|x86.Build.0 = Release|Any CPU + {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.Release|Any CPU.Build.0 = Release|Any CPU + {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.Release|ARM.ActiveCfg = Release|Any CPU + {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.Release|ARM.Build.0 = Release|Any CPU + {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.Release|x64.ActiveCfg = Release|Any CPU + {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.Release|x64.Build.0 = Release|Any CPU + {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.Release|x86.ActiveCfg = Release|Any CPU + {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.Release|x86.Build.0 = Release|Any CPU {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.STAGE|Any CPU.Build.0 = Debug|Any CPU {BD61AD2E-71C8-4E3D-9B79-C34660CD6CD7}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -142,6 +156,14 @@ Global {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.QA|x64.Build.0 = Release|Any CPU {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.QA|x86.ActiveCfg = Release|Any CPU {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.QA|x86.Build.0 = Release|Any CPU + {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.Release|Any CPU.Build.0 = Release|Any CPU + {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.Release|ARM.ActiveCfg = Release|Any CPU + {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.Release|ARM.Build.0 = Release|Any CPU + {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.Release|x64.ActiveCfg = Release|Any CPU + {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.Release|x64.Build.0 = Release|Any CPU + {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.Release|x86.ActiveCfg = Release|Any CPU + {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.Release|x86.Build.0 = Release|Any CPU {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.STAGE|Any CPU.Build.0 = Debug|Any CPU {B1DF9A0A-2218-4F91-83AB-2830EA2B2014}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -166,6 +188,14 @@ Global {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.QA|x64.Build.0 = Release|Any CPU {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.QA|x86.ActiveCfg = Release|Any CPU {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.QA|x86.Build.0 = Release|Any CPU + {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.Release|Any CPU.Build.0 = Release|Any CPU + {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.Release|ARM.ActiveCfg = Release|Any CPU + {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.Release|ARM.Build.0 = Release|Any CPU + {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.Release|x64.ActiveCfg = Release|Any CPU + {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.Release|x64.Build.0 = Release|Any CPU + {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.Release|x86.ActiveCfg = Release|Any CPU + {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.Release|x86.Build.0 = Release|Any CPU {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.STAGE|Any CPU.Build.0 = Debug|Any CPU {49932FF4-0BB7-4B74-99DB-5E8D78D8051E}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -190,6 +220,14 @@ Global {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.QA|x64.Build.0 = Release|Any CPU {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.QA|x86.ActiveCfg = Release|Any CPU {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.QA|x86.Build.0 = Release|Any CPU + {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.Release|Any CPU.Build.0 = Release|Any CPU + {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.Release|ARM.ActiveCfg = Release|Any CPU + {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.Release|ARM.Build.0 = Release|Any CPU + {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.Release|x64.ActiveCfg = Release|Any CPU + {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.Release|x64.Build.0 = Release|Any CPU + {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.Release|x86.ActiveCfg = Release|Any CPU + {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.Release|x86.Build.0 = Release|Any CPU {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.STAGE|Any CPU.Build.0 = Debug|Any CPU {3C224657-2F76-4997-BE2E-B8CC8D8F98D5}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -214,6 +252,14 @@ Global {782C017B-03B5-491A-8058-0E98A56A7730}.QA|x64.Build.0 = Release|Any CPU {782C017B-03B5-491A-8058-0E98A56A7730}.QA|x86.ActiveCfg = Release|Any CPU {782C017B-03B5-491A-8058-0E98A56A7730}.QA|x86.Build.0 = Release|Any CPU + {782C017B-03B5-491A-8058-0E98A56A7730}.Release|Any CPU.ActiveCfg = Release|Any CPU + {782C017B-03B5-491A-8058-0E98A56A7730}.Release|Any CPU.Build.0 = Release|Any CPU + {782C017B-03B5-491A-8058-0E98A56A7730}.Release|ARM.ActiveCfg = Release|Any CPU + {782C017B-03B5-491A-8058-0E98A56A7730}.Release|ARM.Build.0 = Release|Any CPU + {782C017B-03B5-491A-8058-0E98A56A7730}.Release|x64.ActiveCfg = Release|Any CPU + {782C017B-03B5-491A-8058-0E98A56A7730}.Release|x64.Build.0 = Release|Any CPU + {782C017B-03B5-491A-8058-0E98A56A7730}.Release|x86.ActiveCfg = Release|Any CPU + {782C017B-03B5-491A-8058-0E98A56A7730}.Release|x86.Build.0 = Release|Any CPU {782C017B-03B5-491A-8058-0E98A56A7730}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {782C017B-03B5-491A-8058-0E98A56A7730}.STAGE|Any CPU.Build.0 = Debug|Any CPU {782C017B-03B5-491A-8058-0E98A56A7730}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -238,6 +284,14 @@ Global {066E5471-7F04-4DB7-85D3-69D6D6464F46}.QA|x64.Build.0 = Release|Any CPU {066E5471-7F04-4DB7-85D3-69D6D6464F46}.QA|x86.ActiveCfg = Release|Any CPU {066E5471-7F04-4DB7-85D3-69D6D6464F46}.QA|x86.Build.0 = Release|Any CPU + {066E5471-7F04-4DB7-85D3-69D6D6464F46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {066E5471-7F04-4DB7-85D3-69D6D6464F46}.Release|Any CPU.Build.0 = Release|Any CPU + {066E5471-7F04-4DB7-85D3-69D6D6464F46}.Release|ARM.ActiveCfg = Release|Any CPU + {066E5471-7F04-4DB7-85D3-69D6D6464F46}.Release|ARM.Build.0 = Release|Any CPU + {066E5471-7F04-4DB7-85D3-69D6D6464F46}.Release|x64.ActiveCfg = Release|Any CPU + {066E5471-7F04-4DB7-85D3-69D6D6464F46}.Release|x64.Build.0 = Release|Any CPU + {066E5471-7F04-4DB7-85D3-69D6D6464F46}.Release|x86.ActiveCfg = Release|Any CPU + {066E5471-7F04-4DB7-85D3-69D6D6464F46}.Release|x86.Build.0 = Release|Any CPU {066E5471-7F04-4DB7-85D3-69D6D6464F46}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {066E5471-7F04-4DB7-85D3-69D6D6464F46}.STAGE|Any CPU.Build.0 = Debug|Any CPU {066E5471-7F04-4DB7-85D3-69D6D6464F46}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -262,6 +316,14 @@ Global {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.QA|x64.Build.0 = Release|Any CPU {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.QA|x86.ActiveCfg = Release|Any CPU {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.QA|x86.Build.0 = Release|Any CPU + {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.Release|Any CPU.Build.0 = Release|Any CPU + {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.Release|ARM.ActiveCfg = Release|Any CPU + {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.Release|ARM.Build.0 = Release|Any CPU + {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.Release|x64.ActiveCfg = Release|Any CPU + {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.Release|x64.Build.0 = Release|Any CPU + {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.Release|x86.ActiveCfg = Release|Any CPU + {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.Release|x86.Build.0 = Release|Any CPU {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.STAGE|Any CPU.Build.0 = Debug|Any CPU {BE3F14A5-B8E0-4D4F-B873-8D21DD8D1F0B}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -286,6 +348,14 @@ Global {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.QA|x64.Build.0 = Release|Any CPU {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.QA|x86.ActiveCfg = Release|Any CPU {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.QA|x86.Build.0 = Release|Any CPU + {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.Release|Any CPU.Build.0 = Release|Any CPU + {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.Release|ARM.ActiveCfg = Release|Any CPU + {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.Release|ARM.Build.0 = Release|Any CPU + {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.Release|x64.ActiveCfg = Release|Any CPU + {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.Release|x64.Build.0 = Release|Any CPU + {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.Release|x86.ActiveCfg = Release|Any CPU + {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.Release|x86.Build.0 = Release|Any CPU {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.STAGE|Any CPU.Build.0 = Debug|Any CPU {52921B2D-65F6-4069-B5B5-5BC2E36823D3}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -310,6 +380,14 @@ Global {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.QA|x64.Build.0 = Release|Any CPU {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.QA|x86.ActiveCfg = Release|Any CPU {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.QA|x86.Build.0 = Release|Any CPU + {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.Release|Any CPU.Build.0 = Release|Any CPU + {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.Release|ARM.ActiveCfg = Release|Any CPU + {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.Release|ARM.Build.0 = Release|Any CPU + {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.Release|x64.ActiveCfg = Release|Any CPU + {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.Release|x64.Build.0 = Release|Any CPU + {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.Release|x86.ActiveCfg = Release|Any CPU + {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.Release|x86.Build.0 = Release|Any CPU {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.STAGE|Any CPU.Build.0 = Debug|Any CPU {AFA64BA1-DEC5-4CE5-84BC-C1984EF08539}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -334,6 +412,14 @@ Global {63C58E46-5934-446F-ABF9-08D9395FCA89}.QA|x64.Build.0 = Release|Any CPU {63C58E46-5934-446F-ABF9-08D9395FCA89}.QA|x86.ActiveCfg = Release|Any CPU {63C58E46-5934-446F-ABF9-08D9395FCA89}.QA|x86.Build.0 = Release|Any CPU + {63C58E46-5934-446F-ABF9-08D9395FCA89}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63C58E46-5934-446F-ABF9-08D9395FCA89}.Release|Any CPU.Build.0 = Release|Any CPU + {63C58E46-5934-446F-ABF9-08D9395FCA89}.Release|ARM.ActiveCfg = Release|Any CPU + {63C58E46-5934-446F-ABF9-08D9395FCA89}.Release|ARM.Build.0 = Release|Any CPU + {63C58E46-5934-446F-ABF9-08D9395FCA89}.Release|x64.ActiveCfg = Release|Any CPU + {63C58E46-5934-446F-ABF9-08D9395FCA89}.Release|x64.Build.0 = Release|Any CPU + {63C58E46-5934-446F-ABF9-08D9395FCA89}.Release|x86.ActiveCfg = Release|Any CPU + {63C58E46-5934-446F-ABF9-08D9395FCA89}.Release|x86.Build.0 = Release|Any CPU {63C58E46-5934-446F-ABF9-08D9395FCA89}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {63C58E46-5934-446F-ABF9-08D9395FCA89}.STAGE|Any CPU.Build.0 = Debug|Any CPU {63C58E46-5934-446F-ABF9-08D9395FCA89}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -358,6 +444,14 @@ Global {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.QA|x64.Build.0 = Release|Any CPU {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.QA|x86.ActiveCfg = Release|Any CPU {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.QA|x86.Build.0 = Release|Any CPU + {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.Release|Any CPU.Build.0 = Release|Any CPU + {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.Release|ARM.ActiveCfg = Release|Any CPU + {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.Release|ARM.Build.0 = Release|Any CPU + {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.Release|x64.ActiveCfg = Release|Any CPU + {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.Release|x64.Build.0 = Release|Any CPU + {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.Release|x86.ActiveCfg = Release|Any CPU + {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.Release|x86.Build.0 = Release|Any CPU {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.STAGE|Any CPU.Build.0 = Debug|Any CPU {3F76EC74-87E9-41EB-A4BF-14B42D7BEC13}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -382,6 +476,14 @@ Global {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.QA|x64.Build.0 = Release|Any CPU {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.QA|x86.ActiveCfg = Release|Any CPU {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.QA|x86.Build.0 = Release|Any CPU + {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.Release|Any CPU.Build.0 = Release|Any CPU + {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.Release|ARM.ActiveCfg = Release|Any CPU + {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.Release|ARM.Build.0 = Release|Any CPU + {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.Release|x64.ActiveCfg = Release|Any CPU + {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.Release|x64.Build.0 = Release|Any CPU + {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.Release|x86.ActiveCfg = Release|Any CPU + {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.Release|x86.Build.0 = Release|Any CPU {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.STAGE|Any CPU.Build.0 = Debug|Any CPU {0AF83D6C-F5BE-420E-A60B-6C0A5BA32198}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -406,6 +508,14 @@ Global {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.QA|x64.Build.0 = Release|Any CPU {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.QA|x86.ActiveCfg = Release|Any CPU {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.QA|x86.Build.0 = Release|Any CPU + {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.Release|Any CPU.ActiveCfg = Release|Any CPU + {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.Release|Any CPU.Build.0 = Release|Any CPU + {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.Release|ARM.ActiveCfg = Release|Any CPU + {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.Release|ARM.Build.0 = Release|Any CPU + {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.Release|x64.ActiveCfg = Release|Any CPU + {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.Release|x64.Build.0 = Release|Any CPU + {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.Release|x86.ActiveCfg = Release|Any CPU + {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.Release|x86.Build.0 = Release|Any CPU {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.STAGE|Any CPU.Build.0 = Debug|Any CPU {98C10EF5-874B-4E97-8996-62AE5E4ADF57}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -430,6 +540,14 @@ Global {B1CB28FF-86E6-4989-BB10-F790E96452BC}.QA|x64.Build.0 = Release|Any CPU {B1CB28FF-86E6-4989-BB10-F790E96452BC}.QA|x86.ActiveCfg = Release|Any CPU {B1CB28FF-86E6-4989-BB10-F790E96452BC}.QA|x86.Build.0 = Release|Any CPU + {B1CB28FF-86E6-4989-BB10-F790E96452BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1CB28FF-86E6-4989-BB10-F790E96452BC}.Release|Any CPU.Build.0 = Release|Any CPU + {B1CB28FF-86E6-4989-BB10-F790E96452BC}.Release|ARM.ActiveCfg = Release|Any CPU + {B1CB28FF-86E6-4989-BB10-F790E96452BC}.Release|ARM.Build.0 = Release|Any CPU + {B1CB28FF-86E6-4989-BB10-F790E96452BC}.Release|x64.ActiveCfg = Release|Any CPU + {B1CB28FF-86E6-4989-BB10-F790E96452BC}.Release|x64.Build.0 = Release|Any CPU + {B1CB28FF-86E6-4989-BB10-F790E96452BC}.Release|x86.ActiveCfg = Release|Any CPU + {B1CB28FF-86E6-4989-BB10-F790E96452BC}.Release|x86.Build.0 = Release|Any CPU {B1CB28FF-86E6-4989-BB10-F790E96452BC}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {B1CB28FF-86E6-4989-BB10-F790E96452BC}.STAGE|Any CPU.Build.0 = Debug|Any CPU {B1CB28FF-86E6-4989-BB10-F790E96452BC}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -454,6 +572,14 @@ Global {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.QA|x64.Build.0 = Release|Any CPU {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.QA|x86.ActiveCfg = Release|Any CPU {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.QA|x86.Build.0 = Release|Any CPU + {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.Release|Any CPU.Build.0 = Release|Any CPU + {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.Release|ARM.ActiveCfg = Release|Any CPU + {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.Release|ARM.Build.0 = Release|Any CPU + {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.Release|x64.ActiveCfg = Release|Any CPU + {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.Release|x64.Build.0 = Release|Any CPU + {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.Release|x86.ActiveCfg = Release|Any CPU + {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.Release|x86.Build.0 = Release|Any CPU {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.STAGE|Any CPU.Build.0 = Debug|Any CPU {D6DE1943-0BBA-48B7-A9CF-42B122837E01}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -478,6 +604,14 @@ Global {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.QA|x64.Build.0 = Release|Any CPU {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.QA|x86.ActiveCfg = Release|Any CPU {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.QA|x86.Build.0 = Release|Any CPU + {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.Release|Any CPU.Build.0 = Release|Any CPU + {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.Release|ARM.ActiveCfg = Release|Any CPU + {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.Release|ARM.Build.0 = Release|Any CPU + {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.Release|x64.ActiveCfg = Release|Any CPU + {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.Release|x64.Build.0 = Release|Any CPU + {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.Release|x86.ActiveCfg = Release|Any CPU + {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.Release|x86.Build.0 = Release|Any CPU {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.STAGE|Any CPU.Build.0 = Debug|Any CPU {D78AD8D0-5D1E-468B-9406-3F501A24F30F}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -502,6 +636,14 @@ Global {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.QA|x64.Build.0 = Release|Any CPU {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.QA|x86.ActiveCfg = Release|Any CPU {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.QA|x86.Build.0 = Release|Any CPU + {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.Release|Any CPU.Build.0 = Release|Any CPU + {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.Release|ARM.ActiveCfg = Release|Any CPU + {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.Release|ARM.Build.0 = Release|Any CPU + {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.Release|x64.ActiveCfg = Release|Any CPU + {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.Release|x64.Build.0 = Release|Any CPU + {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.Release|x86.ActiveCfg = Release|Any CPU + {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.Release|x86.Build.0 = Release|Any CPU {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.STAGE|Any CPU.Build.0 = Debug|Any CPU {7C6F2754-83B4-499D-916A-01D4DF9B2F42}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -526,6 +668,14 @@ Global {FEB95B08-B353-4446-9756-ACC6B363F505}.QA|x64.Build.0 = Release|Any CPU {FEB95B08-B353-4446-9756-ACC6B363F505}.QA|x86.ActiveCfg = Release|Any CPU {FEB95B08-B353-4446-9756-ACC6B363F505}.QA|x86.Build.0 = Release|Any CPU + {FEB95B08-B353-4446-9756-ACC6B363F505}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEB95B08-B353-4446-9756-ACC6B363F505}.Release|Any CPU.Build.0 = Release|Any CPU + {FEB95B08-B353-4446-9756-ACC6B363F505}.Release|ARM.ActiveCfg = Release|Any CPU + {FEB95B08-B353-4446-9756-ACC6B363F505}.Release|ARM.Build.0 = Release|Any CPU + {FEB95B08-B353-4446-9756-ACC6B363F505}.Release|x64.ActiveCfg = Release|Any CPU + {FEB95B08-B353-4446-9756-ACC6B363F505}.Release|x64.Build.0 = Release|Any CPU + {FEB95B08-B353-4446-9756-ACC6B363F505}.Release|x86.ActiveCfg = Release|Any CPU + {FEB95B08-B353-4446-9756-ACC6B363F505}.Release|x86.Build.0 = Release|Any CPU {FEB95B08-B353-4446-9756-ACC6B363F505}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {FEB95B08-B353-4446-9756-ACC6B363F505}.STAGE|Any CPU.Build.0 = Debug|Any CPU {FEB95B08-B353-4446-9756-ACC6B363F505}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -550,6 +700,14 @@ Global {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.QA|x64.Build.0 = Release|Any CPU {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.QA|x86.ActiveCfg = Release|Any CPU {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.QA|x86.Build.0 = Release|Any CPU + {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.Release|Any CPU.Build.0 = Release|Any CPU + {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.Release|ARM.ActiveCfg = Release|Any CPU + {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.Release|ARM.Build.0 = Release|Any CPU + {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.Release|x64.ActiveCfg = Release|Any CPU + {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.Release|x64.Build.0 = Release|Any CPU + {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.Release|x86.ActiveCfg = Release|Any CPU + {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.Release|x86.Build.0 = Release|Any CPU {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.STAGE|Any CPU.Build.0 = Debug|Any CPU {2CF946A9-5E40-46F4-821B-E9F7F2A71032}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -574,6 +732,14 @@ Global {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.QA|x64.Build.0 = Release|Any CPU {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.QA|x86.ActiveCfg = Release|Any CPU {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.QA|x86.Build.0 = Release|Any CPU + {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.Release|Any CPU.Build.0 = Release|Any CPU + {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.Release|ARM.ActiveCfg = Release|Any CPU + {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.Release|ARM.Build.0 = Release|Any CPU + {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.Release|x64.ActiveCfg = Release|Any CPU + {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.Release|x64.Build.0 = Release|Any CPU + {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.Release|x86.ActiveCfg = Release|Any CPU + {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.Release|x86.Build.0 = Release|Any CPU {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.STAGE|Any CPU.Build.0 = Debug|Any CPU {41D201A3-7C12-42F7-9208-BF2A8224DE3C}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -598,6 +764,14 @@ Global {FB3976A8-B006-4458-9309-74C1DC0527CF}.QA|x64.Build.0 = Release|Any CPU {FB3976A8-B006-4458-9309-74C1DC0527CF}.QA|x86.ActiveCfg = Release|Any CPU {FB3976A8-B006-4458-9309-74C1DC0527CF}.QA|x86.Build.0 = Release|Any CPU + {FB3976A8-B006-4458-9309-74C1DC0527CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB3976A8-B006-4458-9309-74C1DC0527CF}.Release|Any CPU.Build.0 = Release|Any CPU + {FB3976A8-B006-4458-9309-74C1DC0527CF}.Release|ARM.ActiveCfg = Release|Any CPU + {FB3976A8-B006-4458-9309-74C1DC0527CF}.Release|ARM.Build.0 = Release|Any CPU + {FB3976A8-B006-4458-9309-74C1DC0527CF}.Release|x64.ActiveCfg = Release|Any CPU + {FB3976A8-B006-4458-9309-74C1DC0527CF}.Release|x64.Build.0 = Release|Any CPU + {FB3976A8-B006-4458-9309-74C1DC0527CF}.Release|x86.ActiveCfg = Release|Any CPU + {FB3976A8-B006-4458-9309-74C1DC0527CF}.Release|x86.Build.0 = Release|Any CPU {FB3976A8-B006-4458-9309-74C1DC0527CF}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {FB3976A8-B006-4458-9309-74C1DC0527CF}.STAGE|Any CPU.Build.0 = Debug|Any CPU {FB3976A8-B006-4458-9309-74C1DC0527CF}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -622,6 +796,14 @@ Global {1655D07C-3977-421E-96EF-818B33F4582F}.QA|x64.Build.0 = Release|Any CPU {1655D07C-3977-421E-96EF-818B33F4582F}.QA|x86.ActiveCfg = Release|Any CPU {1655D07C-3977-421E-96EF-818B33F4582F}.QA|x86.Build.0 = Release|Any CPU + {1655D07C-3977-421E-96EF-818B33F4582F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1655D07C-3977-421E-96EF-818B33F4582F}.Release|Any CPU.Build.0 = Release|Any CPU + {1655D07C-3977-421E-96EF-818B33F4582F}.Release|ARM.ActiveCfg = Release|Any CPU + {1655D07C-3977-421E-96EF-818B33F4582F}.Release|ARM.Build.0 = Release|Any CPU + {1655D07C-3977-421E-96EF-818B33F4582F}.Release|x64.ActiveCfg = Release|Any CPU + {1655D07C-3977-421E-96EF-818B33F4582F}.Release|x64.Build.0 = Release|Any CPU + {1655D07C-3977-421E-96EF-818B33F4582F}.Release|x86.ActiveCfg = Release|Any CPU + {1655D07C-3977-421E-96EF-818B33F4582F}.Release|x86.Build.0 = Release|Any CPU {1655D07C-3977-421E-96EF-818B33F4582F}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {1655D07C-3977-421E-96EF-818B33F4582F}.STAGE|Any CPU.Build.0 = Debug|Any CPU {1655D07C-3977-421E-96EF-818B33F4582F}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -646,6 +828,14 @@ Global {1324787E-16DD-40DD-B81E-62C750A4CE0B}.QA|x64.Build.0 = Release|Any CPU {1324787E-16DD-40DD-B81E-62C750A4CE0B}.QA|x86.ActiveCfg = Release|Any CPU {1324787E-16DD-40DD-B81E-62C750A4CE0B}.QA|x86.Build.0 = Release|Any CPU + {1324787E-16DD-40DD-B81E-62C750A4CE0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1324787E-16DD-40DD-B81E-62C750A4CE0B}.Release|Any CPU.Build.0 = Release|Any CPU + {1324787E-16DD-40DD-B81E-62C750A4CE0B}.Release|ARM.ActiveCfg = Release|Any CPU + {1324787E-16DD-40DD-B81E-62C750A4CE0B}.Release|ARM.Build.0 = Release|Any CPU + {1324787E-16DD-40DD-B81E-62C750A4CE0B}.Release|x64.ActiveCfg = Release|Any CPU + {1324787E-16DD-40DD-B81E-62C750A4CE0B}.Release|x64.Build.0 = Release|Any CPU + {1324787E-16DD-40DD-B81E-62C750A4CE0B}.Release|x86.ActiveCfg = Release|Any CPU + {1324787E-16DD-40DD-B81E-62C750A4CE0B}.Release|x86.Build.0 = Release|Any CPU {1324787E-16DD-40DD-B81E-62C750A4CE0B}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {1324787E-16DD-40DD-B81E-62C750A4CE0B}.STAGE|Any CPU.Build.0 = Debug|Any CPU {1324787E-16DD-40DD-B81E-62C750A4CE0B}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -670,6 +860,14 @@ Global {E979D9FB-3C1F-40BC-A135-207DE454F35D}.QA|x64.Build.0 = Release|Any CPU {E979D9FB-3C1F-40BC-A135-207DE454F35D}.QA|x86.ActiveCfg = Release|Any CPU {E979D9FB-3C1F-40BC-A135-207DE454F35D}.QA|x86.Build.0 = Release|Any CPU + {E979D9FB-3C1F-40BC-A135-207DE454F35D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E979D9FB-3C1F-40BC-A135-207DE454F35D}.Release|Any CPU.Build.0 = Release|Any CPU + {E979D9FB-3C1F-40BC-A135-207DE454F35D}.Release|ARM.ActiveCfg = Release|Any CPU + {E979D9FB-3C1F-40BC-A135-207DE454F35D}.Release|ARM.Build.0 = Release|Any CPU + {E979D9FB-3C1F-40BC-A135-207DE454F35D}.Release|x64.ActiveCfg = Release|Any CPU + {E979D9FB-3C1F-40BC-A135-207DE454F35D}.Release|x64.Build.0 = Release|Any CPU + {E979D9FB-3C1F-40BC-A135-207DE454F35D}.Release|x86.ActiveCfg = Release|Any CPU + {E979D9FB-3C1F-40BC-A135-207DE454F35D}.Release|x86.Build.0 = Release|Any CPU {E979D9FB-3C1F-40BC-A135-207DE454F35D}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {E979D9FB-3C1F-40BC-A135-207DE454F35D}.STAGE|Any CPU.Build.0 = Debug|Any CPU {E979D9FB-3C1F-40BC-A135-207DE454F35D}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -694,6 +892,14 @@ Global {35D95A27-61C9-4951-B5F9-5D087B7E3570}.QA|x64.Build.0 = Release|Any CPU {35D95A27-61C9-4951-B5F9-5D087B7E3570}.QA|x86.ActiveCfg = Release|Any CPU {35D95A27-61C9-4951-B5F9-5D087B7E3570}.QA|x86.Build.0 = Release|Any CPU + {35D95A27-61C9-4951-B5F9-5D087B7E3570}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35D95A27-61C9-4951-B5F9-5D087B7E3570}.Release|Any CPU.Build.0 = Release|Any CPU + {35D95A27-61C9-4951-B5F9-5D087B7E3570}.Release|ARM.ActiveCfg = Release|Any CPU + {35D95A27-61C9-4951-B5F9-5D087B7E3570}.Release|ARM.Build.0 = Release|Any CPU + {35D95A27-61C9-4951-B5F9-5D087B7E3570}.Release|x64.ActiveCfg = Release|Any CPU + {35D95A27-61C9-4951-B5F9-5D087B7E3570}.Release|x64.Build.0 = Release|Any CPU + {35D95A27-61C9-4951-B5F9-5D087B7E3570}.Release|x86.ActiveCfg = Release|Any CPU + {35D95A27-61C9-4951-B5F9-5D087B7E3570}.Release|x86.Build.0 = Release|Any CPU {35D95A27-61C9-4951-B5F9-5D087B7E3570}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {35D95A27-61C9-4951-B5F9-5D087B7E3570}.STAGE|Any CPU.Build.0 = Debug|Any CPU {35D95A27-61C9-4951-B5F9-5D087B7E3570}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -718,6 +924,14 @@ Global {27D8C2B5-1977-4990-AC21-7B775918FD97}.QA|x64.Build.0 = Release|Any CPU {27D8C2B5-1977-4990-AC21-7B775918FD97}.QA|x86.ActiveCfg = Release|Any CPU {27D8C2B5-1977-4990-AC21-7B775918FD97}.QA|x86.Build.0 = Release|Any CPU + {27D8C2B5-1977-4990-AC21-7B775918FD97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27D8C2B5-1977-4990-AC21-7B775918FD97}.Release|Any CPU.Build.0 = Release|Any CPU + {27D8C2B5-1977-4990-AC21-7B775918FD97}.Release|ARM.ActiveCfg = Release|Any CPU + {27D8C2B5-1977-4990-AC21-7B775918FD97}.Release|ARM.Build.0 = Release|Any CPU + {27D8C2B5-1977-4990-AC21-7B775918FD97}.Release|x64.ActiveCfg = Release|Any CPU + {27D8C2B5-1977-4990-AC21-7B775918FD97}.Release|x64.Build.0 = Release|Any CPU + {27D8C2B5-1977-4990-AC21-7B775918FD97}.Release|x86.ActiveCfg = Release|Any CPU + {27D8C2B5-1977-4990-AC21-7B775918FD97}.Release|x86.Build.0 = Release|Any CPU {27D8C2B5-1977-4990-AC21-7B775918FD97}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {27D8C2B5-1977-4990-AC21-7B775918FD97}.STAGE|Any CPU.Build.0 = Debug|Any CPU {27D8C2B5-1977-4990-AC21-7B775918FD97}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -742,6 +956,14 @@ Global {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.QA|x64.Build.0 = Release|Any CPU {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.QA|x86.ActiveCfg = Release|Any CPU {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.QA|x86.Build.0 = Release|Any CPU + {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.Release|Any CPU.Build.0 = Release|Any CPU + {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.Release|ARM.ActiveCfg = Release|Any CPU + {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.Release|ARM.Build.0 = Release|Any CPU + {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.Release|x64.ActiveCfg = Release|Any CPU + {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.Release|x64.Build.0 = Release|Any CPU + {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.Release|x86.ActiveCfg = Release|Any CPU + {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.Release|x86.Build.0 = Release|Any CPU {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.STAGE|Any CPU.Build.0 = Debug|Any CPU {DBA0A06A-9557-4ECD-82B4-9E859F7B5D81}.STAGE|ARM.ActiveCfg = Debug|Any CPU @@ -766,6 +988,14 @@ Global {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.QA|x64.Build.0 = QA|Any CPU {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.QA|x86.ActiveCfg = QA|Any CPU {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.QA|x86.Build.0 = QA|Any CPU + {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.Release|Any CPU.ActiveCfg = LOCAL|Any CPU + {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.Release|Any CPU.Build.0 = LOCAL|Any CPU + {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.Release|ARM.ActiveCfg = LOCAL|Any CPU + {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.Release|ARM.Build.0 = LOCAL|Any CPU + {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.Release|x64.ActiveCfg = LOCAL|Any CPU + {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.Release|x64.Build.0 = LOCAL|Any CPU + {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.Release|x86.ActiveCfg = LOCAL|Any CPU + {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.Release|x86.Build.0 = LOCAL|Any CPU {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.STAGE|Any CPU.ActiveCfg = STAGE|Any CPU {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.STAGE|Any CPU.Build.0 = STAGE|Any CPU {CD72BD04-655A-45B6-9BF3-DB6F1C6FDA3D}.STAGE|ARM.ActiveCfg = STAGE|Any CPU @@ -790,6 +1020,14 @@ Global {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.QA|x64.Build.0 = QA|Any CPU {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.QA|x86.ActiveCfg = QA|Any CPU {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.QA|x86.Build.0 = QA|Any CPU + {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.Release|Any CPU.ActiveCfg = LOCAL|Any CPU + {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.Release|Any CPU.Build.0 = LOCAL|Any CPU + {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.Release|ARM.ActiveCfg = LOCAL|Any CPU + {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.Release|ARM.Build.0 = LOCAL|Any CPU + {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.Release|x64.ActiveCfg = LOCAL|Any CPU + {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.Release|x64.Build.0 = LOCAL|Any CPU + {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.Release|x86.ActiveCfg = LOCAL|Any CPU + {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.Release|x86.Build.0 = LOCAL|Any CPU {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.STAGE|Any CPU.ActiveCfg = STAGE|Any CPU {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.STAGE|Any CPU.Build.0 = STAGE|Any CPU {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2}.STAGE|ARM.ActiveCfg = STAGE|Any CPU @@ -814,6 +1052,14 @@ Global {282955A5-8980-48F5-8F6E-4AE9E74AE189}.QA|x64.Build.0 = QA|Any CPU {282955A5-8980-48F5-8F6E-4AE9E74AE189}.QA|x86.ActiveCfg = QA|Any CPU {282955A5-8980-48F5-8F6E-4AE9E74AE189}.QA|x86.Build.0 = QA|Any CPU + {282955A5-8980-48F5-8F6E-4AE9E74AE189}.Release|Any CPU.ActiveCfg = LOCAL|Any CPU + {282955A5-8980-48F5-8F6E-4AE9E74AE189}.Release|Any CPU.Build.0 = LOCAL|Any CPU + {282955A5-8980-48F5-8F6E-4AE9E74AE189}.Release|ARM.ActiveCfg = LOCAL|Any CPU + {282955A5-8980-48F5-8F6E-4AE9E74AE189}.Release|ARM.Build.0 = LOCAL|Any CPU + {282955A5-8980-48F5-8F6E-4AE9E74AE189}.Release|x64.ActiveCfg = LOCAL|Any CPU + {282955A5-8980-48F5-8F6E-4AE9E74AE189}.Release|x64.Build.0 = LOCAL|Any CPU + {282955A5-8980-48F5-8F6E-4AE9E74AE189}.Release|x86.ActiveCfg = LOCAL|Any CPU + {282955A5-8980-48F5-8F6E-4AE9E74AE189}.Release|x86.Build.0 = LOCAL|Any CPU {282955A5-8980-48F5-8F6E-4AE9E74AE189}.STAGE|Any CPU.ActiveCfg = STAGE|Any CPU {282955A5-8980-48F5-8F6E-4AE9E74AE189}.STAGE|Any CPU.Build.0 = STAGE|Any CPU {282955A5-8980-48F5-8F6E-4AE9E74AE189}.STAGE|ARM.ActiveCfg = STAGE|Any CPU @@ -838,6 +1084,14 @@ Global {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.QA|x64.Build.0 = QA|Any CPU {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.QA|x86.ActiveCfg = QA|Any CPU {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.QA|x86.Build.0 = QA|Any CPU + {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.Release|Any CPU.ActiveCfg = LOCAL|Any CPU + {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.Release|Any CPU.Build.0 = LOCAL|Any CPU + {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.Release|ARM.ActiveCfg = LOCAL|Any CPU + {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.Release|ARM.Build.0 = LOCAL|Any CPU + {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.Release|x64.ActiveCfg = LOCAL|Any CPU + {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.Release|x64.Build.0 = LOCAL|Any CPU + {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.Release|x86.ActiveCfg = LOCAL|Any CPU + {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.Release|x86.Build.0 = LOCAL|Any CPU {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.STAGE|Any CPU.ActiveCfg = STAGE|Any CPU {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.STAGE|Any CPU.Build.0 = STAGE|Any CPU {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.STAGE|ARM.ActiveCfg = STAGE|Any CPU @@ -846,6 +1100,38 @@ Global {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.STAGE|x64.Build.0 = STAGE|Any CPU {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.STAGE|x86.ActiveCfg = STAGE|Any CPU {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F}.STAGE|x86.Build.0 = STAGE|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.DEBUG|Any CPU.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.DEBUG|Any CPU.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.DEBUG|ARM.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.DEBUG|ARM.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.DEBUG|x64.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.DEBUG|x64.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.DEBUG|x86.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.DEBUG|x86.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.QA|Any CPU.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.QA|Any CPU.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.QA|ARM.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.QA|ARM.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.QA|x64.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.QA|x64.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.QA|x86.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.QA|x86.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.Release|Any CPU.Build.0 = Release|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.Release|ARM.ActiveCfg = Release|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.Release|ARM.Build.0 = Release|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.Release|x64.ActiveCfg = Release|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.Release|x64.Build.0 = Release|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.Release|x86.ActiveCfg = Release|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.Release|x86.Build.0 = Release|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.STAGE|Any CPU.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.STAGE|Any CPU.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.STAGE|ARM.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.STAGE|ARM.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.STAGE|x64.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.STAGE|x64.Build.0 = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.STAGE|x86.ActiveCfg = Debug|Any CPU + {08D46A7C-4BCC-4813-B20F-C7A9039621C9}.STAGE|x86.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -883,6 +1169,7 @@ Global {0D8E9CEB-A9B3-4A89-8A47-04417D46DAB2} = {E8AA67CB-09C6-4E4B-AFF1-0D5875903C34} {282955A5-8980-48F5-8F6E-4AE9E74AE189} = {E8AA67CB-09C6-4E4B-AFF1-0D5875903C34} {1AFF3507-F2C7-4240-A9D4-B166BEAC9B6F} = {E8AA67CB-09C6-4E4B-AFF1-0D5875903C34} + {08D46A7C-4BCC-4813-B20F-C7A9039621C9} = {1DF0F472-E4CA-4EFD-9459-F5B90E2E8E67} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {5CA92FF2-B2AC-41BA-ADDD-1F259867B5F4} diff --git a/src/Bellatrix.Api/ApiClientService.cs b/src/Bellatrix.Api/ApiClientService.cs index 23f77941..6435d65f 100644 --- a/src/Bellatrix.Api/ApiClientService.cs +++ b/src/Bellatrix.Api/ApiClientService.cs @@ -13,6 +13,7 @@ // https://bellatrix.solutions/ using System; using System.Diagnostics; +using System.Net; using System.Threading; using System.Threading.Tasks; using Bellatrix.Api.Configuration; @@ -31,27 +32,11 @@ public class ApiClientService private readonly ApiSettings _apiSettings = ConfigurationService.GetSection(); // TODO: is this going to be accessible in the service container? - public ApiClientService(string baseUrl = null) + public ApiClientService(string baseUrl = null, CookieContainer cookieContainer = null) { _executionProvider = new ExecutionProvider(); InitializeExecutionExtensions(_executionProvider); - var options = new RestClientOptions - { - BaseUrl = baseUrl is not null ? new Uri(baseUrl) : null, - FollowRedirects = true - }; - - _executionProvider.OnClientInitialized(WrappedClient); - var authenticator = ServicesCollection.Current.Resolve(); - if (authenticator != null) - { - options.Authenticator = authenticator; - } - WrappedClient = new RestClient( - options, - configureSerialization: s => s.UseNewtonsoftJson() - ); ////WrappedClient.AddHandler("application/json", () => NewtonsoftJsonSerializer.Default); ////WrappedClient.AddHandler("text/json", () => NewtonsoftJsonSerializer.Default); ////WrappedClient.AddHandler("text/x-json", () => NewtonsoftJsonSerializer.Default); @@ -63,6 +48,8 @@ public ApiClientService(string baseUrl = null) MaxRetryAttempts = _apiSettings.MaxRetryAttempts; PauseBetweenFailures = Utilities.TimeSpanConverter.Convert(_apiSettings.PauseBetweenFailures, _apiSettings.TimeUnit); + InitializeNewRestClient(baseUrl, cookieContainer); + int timeoutSeconds = _apiSettings.ClientTimeoutSeconds; Policy.Timeout(timeoutSeconds, onTimeout: (context, timespan, task) => { @@ -83,11 +70,23 @@ public ApiClientService(string baseUrl = null) public int MaxRetryAttempts { get; set; } - ////public Uri BaseUrl - ////{ - //// get => WrappedClient.Ur.AbsoluteUri; - //// set => WrappedClient.BaseUrl = new Uri(value); - ////} + public CookieContainer CookieContainer + { + get => WrappedClient.Options.CookieContainer; + set + { + InitializeNewRestClient(WrappedClient.Options.BaseUrl.AbsoluteUri, value); + } + } + + public Uri BaseUrl + { + get => WrappedClient.Options.BaseUrl; + set + { + InitializeNewRestClient(value.AbsoluteUri, WrappedClient.Options.CookieContainer); + } + } public TimeSpan PauseBetweenFailures { get; set; } @@ -348,4 +347,29 @@ private void SetJsonContent(RestRequest request, object obj = null) request.AddJsonBody(obj); } } + + private void InitializeNewRestClient(string baseUrl = null, CookieContainer cookieContainer = null) + { + var options = new RestClientOptions + { + BaseUrl = baseUrl is not null ? new Uri(baseUrl) : null, + FollowRedirects = true + }; + + if (cookieContainer is not null) + { + options.CookieContainer = cookieContainer; + } + + _executionProvider.OnClientInitialized(WrappedClient); + var authenticator = ServicesCollection.Current.Resolve(); + if (authenticator != null) + { + options.Authenticator = authenticator; + } + WrappedClient = new RestClient( + options, + configureSerialization: s => s.UseNewtonsoftJson() + ); + } } \ No newline at end of file diff --git a/src/Bellatrix.Api/Bellatrix.API.csproj b/src/Bellatrix.Api/Bellatrix.API.csproj index 82a2e859..539b3db9 100644 --- a/src/Bellatrix.Api/Bellatrix.API.csproj +++ b/src/Bellatrix.Api/Bellatrix.API.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Bellatrix.Core/Bellatrix.Core.csproj b/src/Bellatrix.Core/Bellatrix.Core.csproj index bf33451d..ece8cc8f 100644 --- a/src/Bellatrix.Core/Bellatrix.Core.csproj +++ b/src/Bellatrix.Core/Bellatrix.Core.csproj @@ -18,7 +18,7 @@ - + diff --git a/src/Bellatrix.Desktop/Bellatrix.Desktop.csproj b/src/Bellatrix.Desktop/Bellatrix.Desktop.csproj index dc52ec20..a63140e4 100644 --- a/src/Bellatrix.Desktop/Bellatrix.Desktop.csproj +++ b/src/Bellatrix.Desktop/Bellatrix.Desktop.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/Bellatrix.Mobile/Bellatrix.Mobile.csproj b/src/Bellatrix.Mobile/Bellatrix.Mobile.csproj index 5bf9b7fb..f9e291a7 100644 --- a/src/Bellatrix.Mobile/Bellatrix.Mobile.csproj +++ b/src/Bellatrix.Mobile/Bellatrix.Mobile.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/Bellatrix.Plugins.Screenshots/Bellatrix.Plugins.Screenshots.csproj b/src/Bellatrix.Plugins.Screenshots/Bellatrix.Plugins.Screenshots.csproj index b22807c5..5660190a 100644 --- a/src/Bellatrix.Plugins.Screenshots/Bellatrix.Plugins.Screenshots.csproj +++ b/src/Bellatrix.Plugins.Screenshots/Bellatrix.Plugins.Screenshots.csproj @@ -4,7 +4,7 @@ - + diff --git a/src/Bellatrix.Plugins.Video/Bellatrix.Plugins.Video.csproj b/src/Bellatrix.Plugins.Video/Bellatrix.Plugins.Video.csproj index e273ffb4..5c35b5ea 100644 --- a/src/Bellatrix.Plugins.Video/Bellatrix.Plugins.Video.csproj +++ b/src/Bellatrix.Plugins.Video/Bellatrix.Plugins.Video.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Bellatrix.Web/Bellatrix.Web.csproj b/src/Bellatrix.Web/Bellatrix.Web.csproj index 3f06f552..5cb3d6e7 100644 --- a/src/Bellatrix.Web/Bellatrix.Web.csproj +++ b/src/Bellatrix.Web/Bellatrix.Web.csproj @@ -20,7 +20,7 @@ - + diff --git a/templates/Bellatrix.API.GettingStarted/Bellatrix.API.GettingStarted.csproj b/templates/Bellatrix.API.GettingStarted/Bellatrix.API.GettingStarted.csproj index 6c4efffb..811a7651 100644 --- a/templates/Bellatrix.API.GettingStarted/Bellatrix.API.GettingStarted.csproj +++ b/templates/Bellatrix.API.GettingStarted/Bellatrix.API.GettingStarted.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/templates/Bellatrix.API.Tests/Bellatrix.API.Tests.csproj b/templates/Bellatrix.API.Tests/Bellatrix.API.Tests.csproj index 96733982..51f44cce 100644 --- a/templates/Bellatrix.API.Tests/Bellatrix.API.Tests.csproj +++ b/templates/Bellatrix.API.Tests/Bellatrix.API.Tests.csproj @@ -7,8 +7,8 @@ - - + + all diff --git a/templates/Bellatrix.Desktop.Tests/Bellatrix.Desktop.Tests.csproj b/templates/Bellatrix.Desktop.Tests/Bellatrix.Desktop.Tests.csproj index 3908607e..fd44c9c0 100644 --- a/templates/Bellatrix.Desktop.Tests/Bellatrix.Desktop.Tests.csproj +++ b/templates/Bellatrix.Desktop.Tests/Bellatrix.Desktop.Tests.csproj @@ -5,8 +5,8 @@ - - + + all diff --git a/templates/Bellatrix.Mobile.Tests/Bellatrix.Mobile.Tests.csproj b/templates/Bellatrix.Mobile.Tests/Bellatrix.Mobile.Tests.csproj index e18eebd8..5831fa14 100644 --- a/templates/Bellatrix.Mobile.Tests/Bellatrix.Mobile.Tests.csproj +++ b/templates/Bellatrix.Mobile.Tests/Bellatrix.Mobile.Tests.csproj @@ -8,8 +8,8 @@ - - + + all diff --git a/templates/Bellatrix.Web.Tests/Bellatrix.Web.Tests.csproj b/templates/Bellatrix.Web.Tests/Bellatrix.Web.Tests.csproj index 46851e8c..4625e3dd 100644 --- a/templates/Bellatrix.Web.Tests/Bellatrix.Web.Tests.csproj +++ b/templates/Bellatrix.Web.Tests/Bellatrix.Web.Tests.csproj @@ -6,8 +6,8 @@ - - + + all diff --git a/tests/Bellatrix.API.Tests/Bellatrix.API.Tests.csproj b/tests/Bellatrix.API.Tests/Bellatrix.API.Tests.csproj index 40fb6166..07949e51 100644 --- a/tests/Bellatrix.API.Tests/Bellatrix.API.Tests.csproj +++ b/tests/Bellatrix.API.Tests/Bellatrix.API.Tests.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/tests/Bellatrix.API.tests/Bellatrix.API.Tests.csproj b/tests/Bellatrix.API.tests/Bellatrix.API.Tests.csproj index 40fb6166..07949e51 100644 --- a/tests/Bellatrix.API.tests/Bellatrix.API.Tests.csproj +++ b/tests/Bellatrix.API.tests/Bellatrix.API.Tests.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/tests/Bellatrix.Desktop.Tests/Bellatrix.Desktop.Tests.csproj b/tests/Bellatrix.Desktop.Tests/Bellatrix.Desktop.Tests.csproj index cd47a621..2296bbde 100644 --- a/tests/Bellatrix.Desktop.Tests/Bellatrix.Desktop.Tests.csproj +++ b/tests/Bellatrix.Desktop.Tests/Bellatrix.Desktop.Tests.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/tests/Bellatrix.Desktop.tests/Bellatrix.Desktop.Tests.csproj b/tests/Bellatrix.Desktop.tests/Bellatrix.Desktop.Tests.csproj index cd47a621..2296bbde 100644 --- a/tests/Bellatrix.Desktop.tests/Bellatrix.Desktop.Tests.csproj +++ b/tests/Bellatrix.Desktop.tests/Bellatrix.Desktop.Tests.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/tests/Bellatrix.Mobile.Android.Tests/Bellatrix.Mobile.Android.Tests.csproj b/tests/Bellatrix.Mobile.Android.Tests/Bellatrix.Mobile.Android.Tests.csproj index 487d22aa..7ba1697e 100644 --- a/tests/Bellatrix.Mobile.Android.Tests/Bellatrix.Mobile.Android.Tests.csproj +++ b/tests/Bellatrix.Mobile.Android.Tests/Bellatrix.Mobile.Android.Tests.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/tests/Bellatrix.Mobile.Android.tests/Bellatrix.Mobile.Android.Tests.csproj b/tests/Bellatrix.Mobile.Android.tests/Bellatrix.Mobile.Android.Tests.csproj index 487d22aa..7ba1697e 100644 --- a/tests/Bellatrix.Mobile.Android.tests/Bellatrix.Mobile.Android.Tests.csproj +++ b/tests/Bellatrix.Mobile.Android.tests/Bellatrix.Mobile.Android.Tests.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/tests/Bellatrix.Mobile.IOS.Tests/Bellatrix.Mobile.IOS.Tests.csproj b/tests/Bellatrix.Mobile.IOS.Tests/Bellatrix.Mobile.IOS.Tests.csproj index 11f172d0..46eaf33f 100644 --- a/tests/Bellatrix.Mobile.IOS.Tests/Bellatrix.Mobile.IOS.Tests.csproj +++ b/tests/Bellatrix.Mobile.IOS.Tests/Bellatrix.Mobile.IOS.Tests.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/tests/Bellatrix.Mobile.IOS.tests/Bellatrix.Mobile.IOS.Tests.csproj b/tests/Bellatrix.Mobile.IOS.tests/Bellatrix.Mobile.IOS.Tests.csproj index 11f172d0..46eaf33f 100644 --- a/tests/Bellatrix.Mobile.IOS.tests/Bellatrix.Mobile.IOS.Tests.csproj +++ b/tests/Bellatrix.Mobile.IOS.tests/Bellatrix.Mobile.IOS.Tests.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/tests/Bellatrix.Web.Tests/Bellatrix.Web.Tests.csproj b/tests/Bellatrix.Web.Tests/Bellatrix.Web.Tests.csproj index fe0c128c..1b46d9e4 100644 --- a/tests/Bellatrix.Web.Tests/Bellatrix.Web.Tests.csproj +++ b/tests/Bellatrix.Web.Tests/Bellatrix.Web.Tests.csproj @@ -1,6 +1,5 @@  - @@ -14,8 +13,8 @@ - - + + @@ -350,4 +349,4 @@ - \ No newline at end of file + diff --git a/tests/Bellatrix.Web.tests/Bellatrix.Web.Tests.csproj b/tests/Bellatrix.Web.tests/Bellatrix.Web.Tests.csproj index dd8b3b05..1b46d9e4 100644 --- a/tests/Bellatrix.Web.tests/Bellatrix.Web.Tests.csproj +++ b/tests/Bellatrix.Web.tests/Bellatrix.Web.Tests.csproj @@ -13,8 +13,8 @@ - - + + From e11091a9218ee962e07be9c5b3aece3afb33ce70 Mon Sep 17 00:00:00 2001 From: MiriamKyoseva <133047546+MiriamKyoseva@users.noreply.github.com> Date: Fri, 8 Mar 2024 13:15:46 +0200 Subject: [PATCH 02/75] added playwright module --- .../Bellatrix.Playwright.csproj | 24 + src/Bellatrix.Playwright/Usings.cs | 6 + .../WebPluginsConfiguration.cs | 227 + .../assertions/StyleAssertions.cs | 180 + .../components/Container.cs | 29 + src/Bellatrix.Playwright/components/Frame.cs | 19 + .../components/GridDataItem.cs | 18 + src/Bellatrix.Playwright/components/Screen.cs | 35 + .../components/SpecialElements.cs | 23 + .../components/Viewport.cs | 36 + .../components/advanced/Color.cs | 59 + .../AnchorControlDataHandler.cs | 34 + .../Base/IControlDataHandler.cs | 10 + .../Base/IEditableControlDataHandler.cs | 21 + .../Base/IReadonlyControlDataHandler.cs | 22 + .../ButtonControlDataHandler.cs | 43 + .../CheckboxControlDataHandler.cs | 76 + .../ColorControlDataHandler.cs | 22 + .../DateControlDataHandler.cs | 36 + .../DateTimeLocalControlDataHandler.cs | 36 + .../DivControlDataHandler.cs | 22 + .../EmailControlDataHandler.cs | 29 + .../ImageControlDataHandler.cs | 22 + .../LabelControlDataHandler.cs | 22 + .../MonthControlDataHandler.cs | 37 + .../NumberControlDataHandler.cs | 24 + .../OutputControlDataHandler.cs | 22 + .../PasswordControlDataHandler.cs | 30 + .../PhoneControlDataHandler.cs | 30 + .../RadioButtonControlDataHandler.cs | 52 + .../RangeControlDataHandler.cs | 37 + .../ResetControlDataHandler.cs | 22 + .../SearchControlDataHandler.cs | 30 + .../SelectControlDataHandler.cs | 35 + .../SpanControlDataHandler.cs | 22 + .../TextAreaControlDataHandler.cs | 27 + .../TextFieldControlDataHandler.cs | 29 + .../TimeControlDataHandler.cs | 37 + .../UrlControlDataHandler.cs | 37 + .../WeekControlDataHandler.cs | 32 + .../components/advanced/Date.cs | 90 + .../components/advanced/DateTimeLocal.cs | 68 + .../components/advanced/Email.cs | 71 + .../components/advanced/Month.cs | 84 + .../components/advanced/Number.cs | 71 + .../components/advanced/Output.cs | 41 + .../components/advanced/Password.cs | 71 + .../components/advanced/Phone.cs | 71 + .../components/advanced/Progress.cs | 32 + .../components/advanced/Range.cs | 68 + .../components/advanced/Search.cs | 71 + .../TableComponents/Grid/ControlColumnData.cs | 37 + .../ControlColumnDataCollectionExtensions.cs | 31 + .../Grid/Extensions/GridExtensions.cs | 82 + .../Grid/Extensions/HtmlNodeExtensions.cs | 25 + .../TableComponents/Grid/FooterService.cs | 167 + .../advanced/TableComponents/Grid/Grid.cs | 533 +++ .../advanced/TableComponents/Grid/GridCell.cs | 112 + .../advanced/TableComponents/Grid/GridRow.cs | 134 + .../Grid/HeaderNamesService.cs | 259 + .../advanced/TableComponents/HeaderInfo.cs | 27 + .../TableComponents/HeaderNameAttribute.cs | 28 + .../TableComponents/HeaderRowIndex.cs | 30 + .../advanced/TableComponents/IHeaderInfo.cs | 21 + .../TableComponents/SelectColumnAttribute.cs | 17 + .../advanced/TableComponents/Table/Table.cs | 300 ++ .../TableComponents/Table/TableCell.cs | 40 + .../TableComponents/Table/TableExtensions.cs | 78 + .../TableComponents/Table/TableFooter.cs | 94 + .../TableComponents/Table/TableRow.cs | 112 + .../TableComponents/TableHeaderRow.cs | 27 + .../advanced/TableComponents/TableService.cs | 96 + .../components/advanced/Time.cs | 68 + .../components/advanced/Url.cs | 71 + .../components/advanced/Week.cs | 85 + .../angular/AngularClientSideScripts.cs | 280 ++ .../components/angular/ComponentExtensions.cs | 31 + .../components/common/Anchor.cs | 55 + .../components/common/Button.cs | 48 + .../components/common/CheckBox.cs | 63 + .../components/common/Div.cs | 38 + .../components/common/Headline.cs | 35 + .../components/common/Image.cs | 61 + .../components/common/InputFile.cs | 50 + .../components/common/Label.cs | 41 + .../components/common/Option.cs | 36 + .../components/common/RadioButton.cs | 52 + .../components/common/Reset.cs | 48 + .../components/common/Select.cs | 536 +++ .../components/common/Span.cs | 38 + .../components/common/TextArea.cs | 81 + .../components/common/TextField.cs | 72 + .../core/Component.DefaultActions.cs | 235 + .../components/core/Component.cs | 335 ++ .../core/ComponentList/ComponentsList.cs | 197 + .../ComponentList/ComponentsListExtensions.cs | 35 + .../components/core/CompositeComponent.cs | 30 + .../eventhandlers/AnchorEventHandlers.cs | 37 + .../eventhandlers/ButtonEventHandlers.cs | 37 + .../eventhandlers/CheckboxEventHandlers.cs | 57 + .../eventhandlers/ColorEventHandlers.cs | 45 + .../eventhandlers/ComponentEventHandlers.cs | 104 + .../eventhandlers/DateEventHandlers.cs | 45 + .../DateTimeLocalEventHandlers.cs | 45 + .../eventhandlers/DivEventHandlers.cs | 33 + .../eventhandlers/EmailEventHandlers.cs | 45 + .../eventhandlers/HeadingEventHandlers.cs | 33 + .../eventhandlers/ImageEventHandlers.cs | 33 + .../eventhandlers/InputFileEventHandlers.cs | 41 + .../eventhandlers/LabelEventHandlers.cs | 33 + .../eventhandlers/MonthEventHandlers.cs | 45 + .../eventhandlers/NumberEventHandlers.cs | 45 + .../eventhandlers/OutputEventHandlers.cs | 33 + .../eventhandlers/PasswordEventHandlers.cs | 45 + .../eventhandlers/PhoneEventHandlers.cs | 45 + .../eventhandlers/RadioButtonEventHandlers.cs | 37 + .../eventhandlers/RangeEventHandlers.cs | 45 + .../eventhandlers/ResetEventHandlers.cs | 37 + .../eventhandlers/SearchEventHandlers.cs | 45 + .../eventhandlers/SelectEventHandlers.cs | 45 + .../eventhandlers/SpanEventHandlers.cs | 33 + .../eventhandlers/TextAreaEventHandlers.cs | 45 + .../eventhandlers/TextFieldEventHandlers.cs | 45 + .../eventhandlers/TimeEventHandlers.cs | 45 + .../eventhandlers/UrlEventHandlers.cs | 45 + .../eventhandlers/WeekEventHandlers.cs | 45 + .../EventHandlers/IControlEventHandlers.cs | 20 + .../contracts/IComponent.cs | 27 + .../contracts/IComponentAccept.cs | 19 + .../contracts/IComponentAlt.cs | 19 + .../contracts/IComponentAutoComplete.cs | 19 + .../contracts/IComponentChecked.cs | 19 + .../contracts/IComponentColor.cs | 19 + .../contracts/IComponentCols.cs | 19 + .../contracts/IComponentCssClass.cs | 19 + .../contracts/IComponentDate.cs | 19 + .../contracts/IComponentDisabled.cs | 19 + .../contracts/IComponentEmail.cs | 19 + .../contracts/IComponentFor.cs | 19 + .../contracts/IComponentHeight.cs | 19 + .../contracts/IComponentHref.cs | 19 + .../contracts/IComponentInnerHtml.cs | 19 + .../contracts/IComponentInnerText.cs | 19 + .../contracts/IComponentList.cs | 19 + .../contracts/IComponentLongDesc.cs | 19 + .../contracts/IComponentMax.cs | 19 + .../contracts/IComponentMaxLength.cs | 19 + .../contracts/IComponentMaxText.cs | 19 + .../contracts/IComponentMin.cs | 19 + .../contracts/IComponentMinLength.cs | 19 + .../contracts/IComponentMinText.cs | 19 + .../contracts/IComponentMonth.cs | 19 + .../contracts/IComponentMultiple.cs | 19 + .../contracts/IComponentNumber.cs | 19 + .../contracts/IComponentPassword.cs | 19 + .../contracts/IComponentPhone.cs | 19 + .../contracts/IComponentPlaceholder.cs | 19 + .../contracts/IComponentRange.cs | 19 + .../contracts/IComponentReadonly.cs | 19 + .../contracts/IComponentRel.cs | 19 + .../contracts/IComponentRequired.cs | 19 + .../contracts/IComponentRows.cs | 19 + .../contracts/IComponentSearch.cs | 19 + .../contracts/IComponentSelected.cs | 19 + .../contracts/IComponentSize.cs | 19 + .../contracts/IComponentSizes.cs | 19 + .../contracts/IComponentSpellCheck.cs | 19 + .../contracts/IComponentSrc.cs | 19 + .../contracts/IComponentSrcSet.cs | 19 + .../contracts/IComponentStep.cs | 19 + .../contracts/IComponentTarget.cs | 19 + .../contracts/IComponentText.cs | 19 + .../contracts/IComponentTime.cs | 19 + .../contracts/IComponentUrl.cs | 19 + .../contracts/IComponentValue.cs | 19 + .../contracts/IComponentVisible.cs | 19 + .../contracts/IComponentWeek.cs | 19 + .../contracts/IComponentWidth.cs | 19 + .../contracts/IComponentWrap.cs | 19 + src/Bellatrix.Playwright/contracts/IPage.cs | 21 + .../contracts/IWebLayoutComponent.cs | 24 + .../enums/BrowserChoice.cs | 31 + .../enums/DialogButton.cs | 27 + .../enums/ExecutionEngineType.cs | 21 + .../enums/ExecutionType.cs | 25 + src/Bellatrix.Playwright/enums/Lifecycle.cs | 22 + .../enums/ToastNotificationType.cs | 22 + .../BDDLoggingCheckboxEventHandlers.cs | 24 + .../BDDLoggingColorEventHandlers.cs | 22 + .../BDDLogging/BDDLoggingDateEventHandlers.cs | 22 + .../BDDLoggingDateTimeLocalEventHandlers.cs | 22 + .../BDDLoggingElementEventHandlers.cs | 28 + .../BDDLoggingEmailEventHandlers.cs | 22 + .../BDDLoggingInputFileEventHandlers.cs | 22 + .../BDDLoggingMonthEventHandlers.cs | 22 + .../BDDLoggingNumberEventHandlers.cs | 22 + .../BDDLoggingPasswordEventHandlers.cs | 22 + .../BDDLoggingPhoneEventHandlers.cs | 22 + .../BDDLoggingRangeEventHandlers.cs | 22 + .../BDDLoggingSearchEventHandlers.cs | 22 + .../BDDLoggingSelectEventHandlers.cs | 22 + .../BDDLoggingTextAreaEventHandlers.cs | 22 + .../BDDLoggingTextFieldEventHandlers.cs | 22 + .../BDDLogging/BDDLoggingTimeEventHandlers.cs | 22 + .../BDDLogging/BDDLoggingUrlEventHandlers.cs | 22 + .../BDDLoggingValidateExtensionsService.cs | 231 + .../BDDLogging/BDDLoggingWeekEventHandlers.cs | 22 + .../BugReportingCheckboxEventHandlers.cs | 24 + .../BugReportingColorEventHandlers.cs | 22 + .../BugReportingDateEventHandlers.cs | 22 + .../BugReportingDateTimeLocalEventHandlers.cs | 22 + .../BugReportingElementEventHandlers.cs | 28 + .../BugReportingEmailEventHandlers.cs | 22 + .../BugReportingInputFileEventHandlers.cs | 22 + .../BugReportingNumberEventHandlers.cs | 22 + .../BugReportingPasswordEventHandlers.cs | 22 + .../BugReportingPhoneEventHandlers.cs | 22 + .../BugReportingRangeEventHandlers.cs | 22 + .../BugReportingSearchEventHandlers.cs | 22 + .../BugReportingSelectEventHandlers.cs | 22 + .../BugReportingTextAreaEventHandlers.cs | 22 + .../BugReportingTextFieldEventHandlers.cs | 22 + .../BugReportingTimeEventHandlers.cs | 22 + .../BugReportingUrlEventHandlers.cs | 22 + ...eportingValidateExtensionsEventHandlers.cs | 237 + .../BugReportingWeekEventHandlers.cs | 22 + .../DynamicTestCasesCheckboxEventHandlers.cs | 24 + .../DynamicTestCasesColorEventHandlers.cs | 22 + .../DynamicTestCasesDateEventHandlers.cs | 22 + ...amicTestCasesDateTimeLocalEventHandlers.cs | 22 + .../DynamicTestCasesElementEventHandlers.cs | 28 + .../DynamicTestCasesEmailEventHandlers.cs | 22 + .../DynamicTestCasesInputFileEventHandlers.cs | 22 + .../DynamicTestCasesMonthEventHandlers.cs | 22 + .../DynamicTestCasesNumberEventHandlers.cs | 22 + .../DynamicTestCasesPasswordEventHandlers.cs | 22 + .../DynamicTestCasesPhoneEventHandlers.cs | 22 + .../DynamicTestCasesRangeEventHandlers.cs | 22 + .../DynamicTestCasesSearchEventHandlers.cs | 22 + .../DynamicTestCasesSelectEventHandlers.cs | 22 + .../DynamicTestCasesTextAreaEventHandlers.cs | 22 + .../DynamicTestCasesTextFieldEventHandlers.cs | 22 + .../DynamicTestCasesTimeEventHandlers.cs | 22 + .../DynamicTestCasesUrlEventHandlers.cs | 22 + ...estCasesValidateExtensionsEventHandlers.cs | 238 + .../DynamicTestCasesWeekEventHandlers.cs | 22 + .../Extensions/BddLoggingExtensions.cs | 38 + .../HighlightComponentEventHandlers.cs | 23 + .../ValidateExtensionsEventHandlers.cs | 554 +++ .../events/ComponentActionEventArgs.cs | 27 + ...NotFulfillingValidateConditionEventArgs.cs | 23 + ...mentNotFulfillingWaitConditionEventArgs.cs | 23 + .../events/ExceptionEventArgs.cs | 23 + .../events/NativeElementActionEventArgs.cs | 21 + .../events/UrlNavigatedEventArgs.cs | 23 + .../events/UrlNotNavigatedEventArgs.cs | 23 + .../ComponentPropertyValidateException.cs | 38 + .../extensions/LinqExtensions.cs | 31 + .../ComponentCreateExtensions.cs | 103 + .../ComponentRepositoryExtensions.cs | 104 + .../findstrategies/Find.cs | 21 + .../FindAttributeContainingStrategy.cs | 39 + .../FindClassContainingStrategy.cs | 37 + .../findstrategies/FindClassStrategy.cs | 37 + .../findstrategies/FindCssStrategy.cs | 37 + .../FindIdContainingStrategy.cs | 37 + .../FindIdEndingWithStrategy.cs | 38 + .../findstrategies/FindIdStrategy.cs | 37 + .../FindInnerTextContainsStrategy.cs | 36 + .../FindLinkTextContainsStrategy.cs | 37 + .../findstrategies/FindLinkTextStrategy.cs | 37 + .../FindNameEndingWithStrategy.cs | 38 + .../findstrategies/FindNameStrategy.cs | 37 + .../findstrategies/FindStrategy.cs | 29 + .../FindStrategyCreateExtensions.cs | 35 + .../findstrategies/FindStrategyFactory.cs | 45 + .../findstrategies/FindTagStrategy.cs | 37 + .../FindValueContainingStrategy.cs | 37 + .../findstrategies/FindXpathStrategy.cs | 37 + .../helpers/INavigationHelper.cs | 21 + .../infrastructure/App.cs | 163 + .../infrastructure/mstest/WebTest.cs | 81 + .../infrastructure/nunit/WebTest.cs | 77 + .../lighthouse/ComparingOperators.cs | 24 + .../lighthouse/FinishValidationBuilder.cs | 41 + .../LighthouseAssertFailedException.cs | 34 + .../lighthouse/LighthouseReportEventArgs.cs | 34 + .../lighthouse/LighthouseService.cs | 216 + .../lighthouse/LighthouseSettings.cs | 22 + .../MSTestLighthouseReportsWorkflowPlugin.cs | 63 + .../MetricPreciseValidationBuilder.cs | 85 + .../NUnitLighthouseReportsWorkflowPlugin.cs | 63 + .../lighthouse/PerformanceReport.cs | 4165 +++++++++++++++++ .../pageobjects/AssertedNavigatablePage.cs | 75 + .../pageobjects/AssertedPage.cs | 25 + .../pageobjects/NavigatablePage.cs | 27 + src/Bellatrix.Playwright/pageobjects/Page.cs | 32 + .../pageobjects/WebPage.cs | 75 + .../pageobjects/WebSection.cs | 20 + .../plugins/JavaScriptErrorsPlugin.cs | 50 + .../plugins/LogLifecyclePlugin.cs | 25 + .../analyzation/AnalyzedTestException.cs | 38 + .../Contracts/IExceptionAnalysationHandler.cs | 23 + .../Contracts/IExceptionAnalyser.cs | 30 + .../plugins/analyzation/ExceptionAnalyser.cs | 67 + .../Handlers/CustomHtmlExceptionHandler.cs | 31 + .../Handlers/HtmlSourceExceptionHandler.cs | 42 + .../Handlers/UrlExceptionHandler.cs | 42 + .../execution/Attributes/BrowserAttribute.cs | 134 + .../execution/BrowserLifecyclePlugin.cs | 281 ++ .../execution/ChildContainerExtension.cs | 27 + .../Enums/BrowserStackConsoleLogType.cs | 23 + .../plugins/execution/Enums/OS.cs | 21 + .../screenshots/FullPageScreenshotEngine.cs | 27 + .../plugins/screenshots/ScreenshotEngine.cs | 33 + .../VisiblePageScreenshotEngine.cs | 27 + .../WebScreenshotPluginConfiguration.cs | 37 + .../proxy/ProxyService.cs | 214 + .../services/BrowserService.cs | 272 ++ .../services/ComponentCreateService.cs | 17 + .../services/ComponentRepository.cs | 99 + .../services/ComponentWaitService.cs | 56 + .../services/CookiesService.cs | 83 + .../services/DevToolsService.cs | 241 + .../services/DialogService.cs | 51 + .../services/DisposeBrowserService.cs | 86 + .../services/IWebElementFinderService.cs | 23 + .../services/InteractionsService.cs | 283 ++ .../services/JavaScriptService.cs | 103 + .../services/NativeElementFinderService.cs | 53 + .../services/NavigationHelper.cs | 51 + .../services/NavigationService.cs | 132 + .../services/ProcessCleanupService.cs | 103 + .../services/TestExecutionEngine.cs | 46 + .../services/WebService.cs | 17 + .../services/WindowsSizeResolver.cs | 117 + .../services/WrappedBrowserCreateService.cs | 477 ++ .../services/browser/ConsoleMessageStorage.cs | 12 + .../services/browser/WrappedBrowser.cs | 49 + .../settings/BrowserConfiguration.cs | 78 + .../settings/ContextSettings.cs | 6 + .../settings/DesktopWindowSize.cs | 24 + .../settings/ExecutionSettings.cs | 61 + .../settings/MobileWindowSize.cs | 24 + .../settings/TabletWindowSize.cs | 24 + .../settings/TimeoutSettings.cs | 35 + .../settings/WebSettings.cs | 31 + .../extensions/TimeoutSettingsExtensions.cs | 24 + .../utilities/ConditionsWaitService.cs | 42 + .../utilities/ControlDataHandlerResolver.cs | 37 + .../utilities/ElementHighlighter.cs | 71 + src/Bellatrix.Playwright/utilities/Email.cs | 34 + .../utilities/EmailService.cs | 63 + .../utilities/UrlDeterminer.cs | 34 + .../ValdiateControlExtensions.Accept.cs | 38 + .../ValdiateControlExtensions.GetRange.cs | 30 + .../ValdiateControlExtensions.GetText.cs | 54 + .../ValidateControlExtensions.AccessKey.cs | 37 + .../ValidateControlExtensions.Alt.cs | 38 + .../ValidateControlExtensions.Cols.cs | 30 + .../ValidateControlExtensions.For.cs | 37 + .../ValidateControlExtensions.GetColor.cs | 30 + .../ValidateControlExtensions.GetCssClass.cs | 46 + .../ValidateControlExtensions.GetDate.cs | 30 + .../ValidateControlExtensions.GetDir.cs | 37 + .../ValidateControlExtensions.GetEmail.cs | 30 + .../ValidateControlExtensions.GetLang.cs | 37 + .../ValidateControlExtensions.GetMonth.cs | 30 + .../ValidateControlExtensions.GetNumber.cs | 30 + .../ValidateControlExtensions.GetPassword.cs | 30 + .../ValidateControlExtensions.GetPhone.cs | 30 + .../ValidateControlExtensions.GetSearch.cs | 30 + .../ValidateControlExtensions.GetStyle.cs | 53 + .../ValidateControlExtensions.GetTabIndex.cs | 37 + .../ValidateControlExtensions.GetTime.cs | 30 + .../ValidateControlExtensions.GetTitle.cs | 45 + .../ValidateControlExtensions.GetUrl.cs | 30 + .../ValidateControlExtensions.GetVisible.cs | 38 + .../ValidateControlExtensions.GetWeek.cs | 30 + .../ValidateControlExtensions.Height.cs | 38 + .../ValidateControlExtensions.Href.cs | 38 + .../ValidateControlExtensions.InnerHtml.cs | 45 + .../ValidateControlExtensions.InnerText.cs | 45 + ...alidateControlExtensions.IsAutoComplete.cs | 38 + .../ValidateControlExtensions.IsChecked.cs | 38 + .../ValidateControlExtensions.IsDisabled.cs | 38 + .../ValidateControlExtensions.IsMultiple.cs | 38 + .../ValidateControlExtensions.IsReadonly.cs | 38 + .../ValidateControlExtensions.IsRequired.cs | 38 + .../ValidateControlExtensions.IsSelected.cs | 38 + .../ValidateControlExtensions.List.cs | 38 + .../ValidateControlExtensions.LongDesc.cs | 38 + .../ValidateControlExtensions.Max.cs | 38 + .../ValidateControlExtensions.MaxLenght.cs | 38 + .../ValidateControlExtensions.MaxText.cs | 38 + .../ValidateControlExtensions.Min.cs | 38 + .../ValidateControlExtensions.MinLenght.cs | 38 + .../ValidateControlExtensions.MinText.cs | 38 + .../ValidateControlExtensions.Placeholder.cs | 38 + .../ValidateControlExtensions.Rel.cs | 38 + .../ValidateControlExtensions.Rows.cs | 30 + .../ValidateControlExtensions.Size.cs | 38 + .../ValidateControlExtensions.Sizes.cs | 38 + .../ValidateControlExtensions.SpellCheck.cs | 38 + .../ValidateControlExtensions.Src.cs | 46 + .../ValidateControlExtensions.SrcSet.cs | 38 + .../ValidateControlExtensions.Step.cs | 38 + .../ValidateControlExtensions.Target.cs | 38 + .../ValidateControlExtensions.Value.cs | 46 + .../ValidateControlExtensions.Width.cs | 38 + .../ValidateControlExtensions.Wrap.cs | 38 + .../validators/ValidateControlExtensions.cs | 41 + .../waitstrategies/Wait.cs | 21 + .../WaitNotBeVisibleStrategy.cs | 37 + .../waitstrategies/WaitNotToExistStrategy.cs | 38 + .../waitstrategies/WaitStrategy.cs | 64 + .../WaitStrategyComponentsExtensions.cs | 99 + .../waitstrategies/WaitStrategyFactory.cs | 33 + .../WaitToBeClickableStrategy.cs | 40 + .../WaitToBeDisabledStrategy.cs | 36 + .../waitstrategies/WaitToBeVisibleStrategy.cs | 36 + .../waitstrategies/WaitToExistStrategy.cs | 36 + .../waitstrategies/WaitToHasStyleStrategy.cs | 39 + .../WaitToHaveContentStrategy.cs | 39 + .../WaitToHaveInnerTextStrategy.cs | 39 + .../WaitToNotHaveInnerTextStrategy.cs | 39 + 426 files changed, 25580 insertions(+) create mode 100644 src/Bellatrix.Playwright/Bellatrix.Playwright.csproj create mode 100644 src/Bellatrix.Playwright/Usings.cs create mode 100644 src/Bellatrix.Playwright/WebPluginsConfiguration.cs create mode 100644 src/Bellatrix.Playwright/assertions/StyleAssertions.cs create mode 100644 src/Bellatrix.Playwright/components/Container.cs create mode 100644 src/Bellatrix.Playwright/components/Frame.cs create mode 100644 src/Bellatrix.Playwright/components/GridDataItem.cs create mode 100644 src/Bellatrix.Playwright/components/Screen.cs create mode 100644 src/Bellatrix.Playwright/components/SpecialElements.cs create mode 100644 src/Bellatrix.Playwright/components/Viewport.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Color.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/AnchorControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IEditableControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IReadonlyControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/ButtonControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/CheckboxControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/ColorControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/DateControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/DateTimeLocalControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/DivControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/EmailControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/ImageControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/LabelControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/MonthControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/NumberControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/OutputControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/PasswordControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/PhoneControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/RadioButtonControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/RangeControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/ResetControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/SearchControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/SelectControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/SpanControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/TextAreaControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/TextFieldControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/TimeControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/UrlControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/WeekControlDataHandler.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Date.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/DateTimeLocal.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Email.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Month.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Number.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Output.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Password.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Phone.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Progress.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Range.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Search.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Grid/ControlColumnData.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Grid/Extensions/ControlColumnDataCollectionExtensions.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Grid/Extensions/GridExtensions.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Grid/Extensions/HtmlNodeExtensions.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Grid/FooterService.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Grid/Grid.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Grid/GridCell.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Grid/GridRow.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Grid/HeaderNamesService.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/HeaderInfo.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/HeaderNameAttribute.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/HeaderRowIndex.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/IHeaderInfo.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/SelectColumnAttribute.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Table/Table.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Table/TableCell.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Table/TableExtensions.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Table/TableFooter.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/Table/TableRow.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/TableHeaderRow.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/TableComponents/TableService.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Time.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Url.cs create mode 100644 src/Bellatrix.Playwright/components/advanced/Week.cs create mode 100644 src/Bellatrix.Playwright/components/angular/AngularClientSideScripts.cs create mode 100644 src/Bellatrix.Playwright/components/angular/ComponentExtensions.cs create mode 100644 src/Bellatrix.Playwright/components/common/Anchor.cs create mode 100644 src/Bellatrix.Playwright/components/common/Button.cs create mode 100644 src/Bellatrix.Playwright/components/common/CheckBox.cs create mode 100644 src/Bellatrix.Playwright/components/common/Div.cs create mode 100644 src/Bellatrix.Playwright/components/common/Headline.cs create mode 100644 src/Bellatrix.Playwright/components/common/Image.cs create mode 100644 src/Bellatrix.Playwright/components/common/InputFile.cs create mode 100644 src/Bellatrix.Playwright/components/common/Label.cs create mode 100644 src/Bellatrix.Playwright/components/common/Option.cs create mode 100644 src/Bellatrix.Playwright/components/common/RadioButton.cs create mode 100644 src/Bellatrix.Playwright/components/common/Reset.cs create mode 100644 src/Bellatrix.Playwright/components/common/Select.cs create mode 100644 src/Bellatrix.Playwright/components/common/Span.cs create mode 100644 src/Bellatrix.Playwright/components/common/TextArea.cs create mode 100644 src/Bellatrix.Playwright/components/common/TextField.cs create mode 100644 src/Bellatrix.Playwright/components/core/Component.DefaultActions.cs create mode 100644 src/Bellatrix.Playwright/components/core/Component.cs create mode 100644 src/Bellatrix.Playwright/components/core/ComponentList/ComponentsList.cs create mode 100644 src/Bellatrix.Playwright/components/core/ComponentList/ComponentsListExtensions.cs create mode 100644 src/Bellatrix.Playwright/components/core/CompositeComponent.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/AnchorEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/ButtonEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/CheckboxEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/ColorEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/ComponentEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/DateEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/DateTimeLocalEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/DivEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/EmailEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/HeadingEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/ImageEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/InputFileEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/LabelEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/MonthEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/NumberEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/OutputEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/PasswordEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/PhoneEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/RadioButtonEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/RangeEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/ResetEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/SearchEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/SelectEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/SpanEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/TextAreaEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/TextFieldEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/TimeEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/UrlEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/components/eventhandlers/WeekEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/contracts/EventHandlers/IControlEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponent.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentAccept.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentAlt.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentAutoComplete.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentChecked.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentColor.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentCols.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentCssClass.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentDate.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentDisabled.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentEmail.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentFor.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentHeight.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentHref.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentInnerHtml.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentInnerText.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentList.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentLongDesc.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentMax.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentMaxLength.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentMaxText.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentMin.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentMinLength.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentMinText.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentMonth.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentMultiple.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentNumber.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentPassword.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentPhone.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentPlaceholder.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentRange.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentReadonly.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentRel.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentRequired.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentRows.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentSearch.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentSelected.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentSize.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentSizes.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentSpellCheck.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentSrc.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentSrcSet.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentStep.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentTarget.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentText.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentTime.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentUrl.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentValue.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentVisible.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentWeek.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentWidth.cs create mode 100644 src/Bellatrix.Playwright/contracts/IComponentWrap.cs create mode 100644 src/Bellatrix.Playwright/contracts/IPage.cs create mode 100644 src/Bellatrix.Playwright/contracts/IWebLayoutComponent.cs create mode 100644 src/Bellatrix.Playwright/enums/BrowserChoice.cs create mode 100644 src/Bellatrix.Playwright/enums/DialogButton.cs create mode 100644 src/Bellatrix.Playwright/enums/ExecutionEngineType.cs create mode 100644 src/Bellatrix.Playwright/enums/ExecutionType.cs create mode 100644 src/Bellatrix.Playwright/enums/Lifecycle.cs create mode 100644 src/Bellatrix.Playwright/enums/ToastNotificationType.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingCheckboxEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingColorEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingDateEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingDateTimeLocalEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingElementEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingEmailEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingInputFileEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingMonthEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingNumberEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingPasswordEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingPhoneEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingRangeEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingSearchEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingSelectEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingTextAreaEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingTextFieldEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingTimeEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingUrlEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingValidateExtensionsService.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BDDLogging/BDDLoggingWeekEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingCheckboxEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingColorEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingDateEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingDateTimeLocalEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingElementEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingEmailEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingInputFileEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingNumberEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingPasswordEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingPhoneEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingRangeEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingSearchEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingSelectEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingTextAreaEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingTextFieldEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingTimeEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingUrlEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingValidateExtensionsEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/BugReporting/BugReportingWeekEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesCheckboxEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesColorEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesDateEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesDateTimeLocalEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesElementEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesEmailEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesInputFileEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesMonthEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesNumberEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesPasswordEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesPhoneEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesRangeEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesSearchEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesSelectEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesTextAreaEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesTextFieldEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesTimeEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesUrlEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesValidateExtensionsEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/DynamicTestCases/DynamicTestCasesWeekEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/Extensions/BddLoggingExtensions.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/HighlightComponentEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/eventhandlers/ValidateExtensionsEventHandlers.cs create mode 100644 src/Bellatrix.Playwright/events/ComponentActionEventArgs.cs create mode 100644 src/Bellatrix.Playwright/events/ElementNotFulfillingValidateConditionEventArgs.cs create mode 100644 src/Bellatrix.Playwright/events/ElementNotFulfillingWaitConditionEventArgs.cs create mode 100644 src/Bellatrix.Playwright/events/ExceptionEventArgs.cs create mode 100644 src/Bellatrix.Playwright/events/NativeElementActionEventArgs.cs create mode 100644 src/Bellatrix.Playwright/events/UrlNavigatedEventArgs.cs create mode 100644 src/Bellatrix.Playwright/events/UrlNotNavigatedEventArgs.cs create mode 100644 src/Bellatrix.Playwright/exceptions/ComponentPropertyValidateException.cs create mode 100644 src/Bellatrix.Playwright/extensions/LinqExtensions.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/ComponentCreateExtensions.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/ComponentRepositoryExtensions.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/Find.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindAttributeContainingStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindClassContainingStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindClassStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindCssStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindIdContainingStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindIdEndingWithStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindIdStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindInnerTextContainsStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindLinkTextContainsStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindLinkTextStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindNameEndingWithStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindNameStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindStrategyCreateExtensions.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindStrategyFactory.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindTagStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindValueContainingStrategy.cs create mode 100644 src/Bellatrix.Playwright/findstrategies/FindXpathStrategy.cs create mode 100644 src/Bellatrix.Playwright/helpers/INavigationHelper.cs create mode 100644 src/Bellatrix.Playwright/infrastructure/App.cs create mode 100644 src/Bellatrix.Playwright/infrastructure/mstest/WebTest.cs create mode 100644 src/Bellatrix.Playwright/infrastructure/nunit/WebTest.cs create mode 100644 src/Bellatrix.Playwright/lighthouse/ComparingOperators.cs create mode 100644 src/Bellatrix.Playwright/lighthouse/FinishValidationBuilder.cs create mode 100644 src/Bellatrix.Playwright/lighthouse/LighthouseAssertFailedException.cs create mode 100644 src/Bellatrix.Playwright/lighthouse/LighthouseReportEventArgs.cs create mode 100644 src/Bellatrix.Playwright/lighthouse/LighthouseService.cs create mode 100644 src/Bellatrix.Playwright/lighthouse/LighthouseSettings.cs create mode 100644 src/Bellatrix.Playwright/lighthouse/MSTestLighthouseReportsWorkflowPlugin.cs create mode 100644 src/Bellatrix.Playwright/lighthouse/MetricPreciseValidationBuilder.cs create mode 100644 src/Bellatrix.Playwright/lighthouse/NUnitLighthouseReportsWorkflowPlugin.cs create mode 100644 src/Bellatrix.Playwright/lighthouse/PerformanceReport.cs create mode 100644 src/Bellatrix.Playwright/pageobjects/AssertedNavigatablePage.cs create mode 100644 src/Bellatrix.Playwright/pageobjects/AssertedPage.cs create mode 100644 src/Bellatrix.Playwright/pageobjects/NavigatablePage.cs create mode 100644 src/Bellatrix.Playwright/pageobjects/Page.cs create mode 100644 src/Bellatrix.Playwright/pageobjects/WebPage.cs create mode 100644 src/Bellatrix.Playwright/pageobjects/WebSection.cs create mode 100644 src/Bellatrix.Playwright/plugins/JavaScriptErrorsPlugin.cs create mode 100644 src/Bellatrix.Playwright/plugins/LogLifecyclePlugin.cs create mode 100644 src/Bellatrix.Playwright/plugins/analyzation/AnalyzedTestException.cs create mode 100644 src/Bellatrix.Playwright/plugins/analyzation/Contracts/IExceptionAnalysationHandler.cs create mode 100644 src/Bellatrix.Playwright/plugins/analyzation/Contracts/IExceptionAnalyser.cs create mode 100644 src/Bellatrix.Playwright/plugins/analyzation/ExceptionAnalyser.cs create mode 100644 src/Bellatrix.Playwright/plugins/analyzation/Handlers/CustomHtmlExceptionHandler.cs create mode 100644 src/Bellatrix.Playwright/plugins/analyzation/Handlers/HtmlSourceExceptionHandler.cs create mode 100644 src/Bellatrix.Playwright/plugins/analyzation/Handlers/UrlExceptionHandler.cs create mode 100644 src/Bellatrix.Playwright/plugins/execution/Attributes/BrowserAttribute.cs create mode 100644 src/Bellatrix.Playwright/plugins/execution/BrowserLifecyclePlugin.cs create mode 100644 src/Bellatrix.Playwright/plugins/execution/ChildContainerExtension.cs create mode 100644 src/Bellatrix.Playwright/plugins/execution/Enums/BrowserStackConsoleLogType.cs create mode 100644 src/Bellatrix.Playwright/plugins/execution/Enums/OS.cs create mode 100644 src/Bellatrix.Playwright/plugins/screenshots/FullPageScreenshotEngine.cs create mode 100644 src/Bellatrix.Playwright/plugins/screenshots/ScreenshotEngine.cs create mode 100644 src/Bellatrix.Playwright/plugins/screenshots/VisiblePageScreenshotEngine.cs create mode 100644 src/Bellatrix.Playwright/plugins/screenshots/WebScreenshotPluginConfiguration.cs create mode 100644 src/Bellatrix.Playwright/proxy/ProxyService.cs create mode 100644 src/Bellatrix.Playwright/services/BrowserService.cs create mode 100644 src/Bellatrix.Playwright/services/ComponentCreateService.cs create mode 100644 src/Bellatrix.Playwright/services/ComponentRepository.cs create mode 100644 src/Bellatrix.Playwright/services/ComponentWaitService.cs create mode 100644 src/Bellatrix.Playwright/services/CookiesService.cs create mode 100644 src/Bellatrix.Playwright/services/DevToolsService.cs create mode 100644 src/Bellatrix.Playwright/services/DialogService.cs create mode 100644 src/Bellatrix.Playwright/services/DisposeBrowserService.cs create mode 100644 src/Bellatrix.Playwright/services/IWebElementFinderService.cs create mode 100644 src/Bellatrix.Playwright/services/InteractionsService.cs create mode 100644 src/Bellatrix.Playwright/services/JavaScriptService.cs create mode 100644 src/Bellatrix.Playwright/services/NativeElementFinderService.cs create mode 100644 src/Bellatrix.Playwright/services/NavigationHelper.cs create mode 100644 src/Bellatrix.Playwright/services/NavigationService.cs create mode 100644 src/Bellatrix.Playwright/services/ProcessCleanupService.cs create mode 100644 src/Bellatrix.Playwright/services/TestExecutionEngine.cs create mode 100644 src/Bellatrix.Playwright/services/WebService.cs create mode 100644 src/Bellatrix.Playwright/services/WindowsSizeResolver.cs create mode 100644 src/Bellatrix.Playwright/services/WrappedBrowserCreateService.cs create mode 100644 src/Bellatrix.Playwright/services/browser/ConsoleMessageStorage.cs create mode 100644 src/Bellatrix.Playwright/services/browser/WrappedBrowser.cs create mode 100644 src/Bellatrix.Playwright/settings/BrowserConfiguration.cs create mode 100644 src/Bellatrix.Playwright/settings/ContextSettings.cs create mode 100644 src/Bellatrix.Playwright/settings/DesktopWindowSize.cs create mode 100644 src/Bellatrix.Playwright/settings/ExecutionSettings.cs create mode 100644 src/Bellatrix.Playwright/settings/MobileWindowSize.cs create mode 100644 src/Bellatrix.Playwright/settings/TabletWindowSize.cs create mode 100644 src/Bellatrix.Playwright/settings/TimeoutSettings.cs create mode 100644 src/Bellatrix.Playwright/settings/WebSettings.cs create mode 100644 src/Bellatrix.Playwright/settings/extensions/TimeoutSettingsExtensions.cs create mode 100644 src/Bellatrix.Playwright/utilities/ConditionsWaitService.cs create mode 100644 src/Bellatrix.Playwright/utilities/ControlDataHandlerResolver.cs create mode 100644 src/Bellatrix.Playwright/utilities/ElementHighlighter.cs create mode 100644 src/Bellatrix.Playwright/utilities/Email.cs create mode 100644 src/Bellatrix.Playwright/utilities/EmailService.cs create mode 100644 src/Bellatrix.Playwright/utilities/UrlDeterminer.cs create mode 100644 src/Bellatrix.Playwright/validators/ValdiateControlExtensions.Accept.cs create mode 100644 src/Bellatrix.Playwright/validators/ValdiateControlExtensions.GetRange.cs create mode 100644 src/Bellatrix.Playwright/validators/ValdiateControlExtensions.GetText.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.AccessKey.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Alt.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Cols.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.For.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetColor.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetCssClass.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetDate.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetDir.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetEmail.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetLang.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetMonth.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetNumber.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetPassword.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetPhone.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetSearch.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetStyle.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetTabIndex.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetTime.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetTitle.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetUrl.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetVisible.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.GetWeek.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Height.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Href.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.InnerHtml.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.InnerText.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.IsAutoComplete.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.IsChecked.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.IsDisabled.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.IsMultiple.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.IsReadonly.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.IsRequired.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.IsSelected.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.List.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.LongDesc.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Max.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.MaxLenght.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.MaxText.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Min.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.MinLenght.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.MinText.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Placeholder.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Rel.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Rows.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Size.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Sizes.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.SpellCheck.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Src.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.SrcSet.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Step.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Target.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Value.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Width.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.Wrap.cs create mode 100644 src/Bellatrix.Playwright/validators/ValidateControlExtensions.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/Wait.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitNotBeVisibleStrategy.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitNotToExistStrategy.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitStrategy.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitStrategyComponentsExtensions.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitStrategyFactory.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitToBeClickableStrategy.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitToBeDisabledStrategy.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitToBeVisibleStrategy.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitToExistStrategy.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitToHasStyleStrategy.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitToHaveContentStrategy.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitToHaveInnerTextStrategy.cs create mode 100644 src/Bellatrix.Playwright/waitstrategies/WaitToNotHaveInnerTextStrategy.cs diff --git a/src/Bellatrix.Playwright/Bellatrix.Playwright.csproj b/src/Bellatrix.Playwright/Bellatrix.Playwright.csproj new file mode 100644 index 00000000..1e2164f6 --- /dev/null +++ b/src/Bellatrix.Playwright/Bellatrix.Playwright.csproj @@ -0,0 +1,24 @@ + + + + DEBUG;STAGE;QA;LOCAL + + + + + + + + + + + + + + + + + + + + diff --git a/src/Bellatrix.Playwright/Usings.cs b/src/Bellatrix.Playwright/Usings.cs new file mode 100644 index 00000000..cabed724 --- /dev/null +++ b/src/Bellatrix.Playwright/Usings.cs @@ -0,0 +1,6 @@ +global using Microsoft.Playwright; +global using static Microsoft.Playwright.Assertions; +global using System; +global using System.Collections.Generic; +global using System.Linq; +global using System.IO; diff --git a/src/Bellatrix.Playwright/WebPluginsConfiguration.cs b/src/Bellatrix.Playwright/WebPluginsConfiguration.cs new file mode 100644 index 00000000..d84ee019 --- /dev/null +++ b/src/Bellatrix.Playwright/WebPluginsConfiguration.cs @@ -0,0 +1,227 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ +using System; +using System.Collections.Generic; +using Bellatrix.GoogleLighthouse.MSTest; +using Bellatrix.GoogleLighthouse.NUnit; +using Bellatrix.Layout; +using Bellatrix.Plugins; +using Bellatrix.Playwright.Controls.Advanced.ControlDataHandlers; +using Bellatrix.Playwright.Controls.EventHandlers; +using Bellatrix.Playwright.EventHandlers.DynamicTestCases; +using Bellatrix.Playwright.Extensions.Controls.Controls.EventHandlers; +using Bellatrix.Playwright.Plugins.Browser; +using Bellatrix.Playwright.Settings; + +namespace Bellatrix.Playwright; + +public static class WebPluginsConfiguration +{ + public static void AddBrowserLifecycle() + { + ServicesCollection.Current.RegisterType(Guid.NewGuid().ToString()); + } + + public static void AddLogExecutionLifecycle() + { + ServicesCollection.Current.RegisterType(Guid.NewGuid().ToString()); + } + + public static void AddJavaScriptErrorsPlugin() + { + ServicesCollection.Current.RegisterType(Guid.NewGuid().ToString()); + } + + public static void AddControlDataHandlers() + { + // Editable Control DataHandlers - need to be registered both as readonly and editable + ServicesCollection.Current.RegisterType, DateControlDataHandler>(); + ServicesCollection.Current.RegisterType, DateTimeLocalControlDataHandler>(); + ServicesCollection.Current.RegisterType, EmailControlDataHandler>(); + ServicesCollection.Current.RegisterType, MonthControlDataHandler>(); + ServicesCollection.Current.RegisterType, PasswordControlDataHandler>(); + ServicesCollection.Current.RegisterType, PhoneControlDataHandler>(); + ServicesCollection.Current.RegisterType, RangeControlDataHandler>(); + ServicesCollection.Current.RegisterType, SearchControlDataHandler>(); + ServicesCollection.Current.RegisterType, TimeControlDataHandler>(); + ServicesCollection.Current.RegisterType, UrlControlDataHandler>(); + ServicesCollection.Current.RegisterType, WeekControlDataHandler>(); + ServicesCollection.Current.RegisterType, CheckBoxControlDataHandler>(); + ServicesCollection.Current.RegisterType, RadioButtonControlDataHandler>(); + ServicesCollection.Current.RegisterType, SelectControlDataHandler>(); + ServicesCollection.Current.RegisterType, TextAreaControlDataHandler>(); + ServicesCollection.Current.RegisterType, TextFieldControlDataHandler>(); + + // Readonly Control DataHandlers - need to be registered only as readonly + ServicesCollection.Current.RegisterType, NumberControlDataHandler>(); + ServicesCollection.Current.RegisterType, OutputControlDataHandler>(); + ServicesCollection.Current.RegisterType, AnchorControlDataHandler>(); + ServicesCollection.Current.RegisterType, ButtonControlDataHandler>(); + ServicesCollection.Current.RegisterType, DivControlDataHandler>(); + ServicesCollection.Current.RegisterType, ImageControlDataHandler>(); + ServicesCollection.Current.RegisterType, LabelControlDataHandler>(); + ServicesCollection.Current.RegisterType, ResetControlDataHandler>(); + ServicesCollection.Current.RegisterType, SpanControlDataHandler>(); + ServicesCollection.Current.RegisterType, ColorControlDataHandler>(); + } + + public static void AddMSTestGoogleLighthouse() + { + ServicesCollection.Current.RegisterType(Guid.NewGuid().ToString()); + } + + public static void AddNUnitGoogleLighthouse() + { + ServicesCollection.Current.RegisterType(Guid.NewGuid().ToString()); + } + + public static void AddValidateExtensionsBddLogging() + { + var bddLoggingValidateExtensions = new BDDLoggingValidateExtensionsService(); + bddLoggingValidateExtensions.SubscribeToAll(); + } + + public static void AddValidateExtensionsDynamicTestCases() + { + var dynamicTestCasesValidateExtensions = new DynamicTestCasesValidateExtensionsEventHandlers(); + dynamicTestCasesValidateExtensions.SubscribeToAll(); + } + + public static void AddValidateExtensionsBugReporting() + { + var bugReportingValidateExtensions = new BugReportingValidateExtensionsEventHandlers(); + bugReportingValidateExtensions.SubscribeToAll(); + } + + public static void AddLayoutAssertionExtensionsBddLogging() + { + var bddLoggingLayoutAssertionsExtensions = new BDDLoggingAssertionExtensionsService(); + bddLoggingLayoutAssertionsExtensions.SubscribeToAll(); + } + + public static void AddLayoutAssertionExtensionsDynamicTestCases() + { + var dynamicTestCasesLayoutAssertionsExtensions = new DynamicTestCasesAssertionExtensions(); + dynamicTestCasesLayoutAssertionsExtensions.SubscribeToAll(); + } + + public static void AddLayoutAssertionExtensionsBugReporting() + { + var bugReportingLayoutAssertionsExtensions = new BugReportingAssertionExtensions(); + bugReportingLayoutAssertionsExtensions.SubscribeToAll(); + } + + public static void AddElementsBddLogging() + { + var elementEventHandlers = new List() + { + new BDDLoggingTextFieldEventHandlers(), + new BDDLoggingDateEventHandlers(), + new BDDLoggingColorEventHandlers(), + new BDDLoggingCheckboxEventHandlers(), + new BDDLoggingDateTimeLocalEventHandlers(), + new BDDLoggingElementEventHandlers(), + new BDDLoggingEmailEventHandlers(), + new BDDLoggingInputFileEventHandlers(), + new BDDLoggingMonthEventHandlers(), + new BDDLoggingNumberEventHandlers(), + new BDDLoggingPasswordEventHandlers(), + new BDDLoggingPhoneEventHandlers(), + new BDDLoggingRangeEventHandlers(), + new BDDLoggingSearchEventHandlers(), + new BDDLoggingSelectEventHandlers(), + new BDDLoggingTextAreaEventHandlers(), + new BDDLoggingTimeEventHandlers(), + new BDDLoggingUrlEventHandlers(), + new BDDLoggingWeekEventHandlers(), + }; + foreach (var elementEventHandler in elementEventHandlers) + { + elementEventHandler.SubscribeToAll(); + } + } + + public static void AddDynamicTestCases() + { + var elementEventHandlers = new List() + { + new DynamicTestCasesTextFieldEventHandlers(), + new DynamicTestCasesDateEventHandlers(), + new DynamicTestCasesColorEventHandlers(), + new DynamicTestCasesCheckboxEventHandlers(), + new DynamicTestCasesDateTimeLocalEventHandlers(), + new DynamicTestCasesElementEventHandlers(), + new DynamicTestCasesEmailEventHandlers(), + new DynamicTestCasesInputFileEventHandlers(), + new DynamicTestCasesMonthEventHandlers(), + new DynamicTestCasesNumberEventHandlers(), + new DynamicTestCasesPasswordEventHandlers(), + new DynamicTestCasesPhoneEventHandlers(), + new DynamicTestCasesRangeEventHandlers(), + new DynamicTestCasesSearchEventHandlers(), + new DynamicTestCasesSelectEventHandlers(), + new DynamicTestCasesTextAreaEventHandlers(), + new DynamicTestCasesTimeEventHandlers(), + new DynamicTestCasesUrlEventHandlers(), + new DynamicTestCasesWeekEventHandlers(), + }; + foreach (var elementEventHandler in elementEventHandlers) + { + elementEventHandler.SubscribeToAll(); + } + } + + public static void AddBugReporting() + { + var elementEventHandlers = new List() + { + new BugReportingTextFieldEventHandlers(), + new BugReportingDateEventHandlers(), + new BugReportingColorEventHandlers(), + new BugReportingCheckboxEventHandlers(), + new BugReportingDateTimeLocalEventHandlers(), + new BugReportingElementEventHandlers(), + new BugReportingEmailEventHandlers(), + new BugReportingInputFileEventHandlers(), + new BugReportingNumberEventHandlers(), + new BugReportingPasswordEventHandlers(), + new BugReportingPhoneEventHandlers(), + new BugReportingRangeEventHandlers(), + new BugReportingSearchEventHandlers(), + new BugReportingSelectEventHandlers(), + new BugReportingTextAreaEventHandlers(), + new BugReportingTimeEventHandlers(), + new BugReportingUrlEventHandlers(), + new BugReportingWeekEventHandlers(), + }; + foreach (var elementEventHandler in elementEventHandlers) + { + elementEventHandler.SubscribeToAll(); + } + } + + public static void AddHighlightComponents() + { + if (ConfigurationService.GetSection() == null) + { + throw new ArgumentException("Could not load web settings section from testFrameworkSettings.json"); + } + + if (ConfigurationService.GetSection().ShouldHighlightElements) + { + var highlightComponentEventHandler = new HighlightComponentEventHandlers(); + highlightComponentEventHandler.SubscribeToAll(); + } + } +} \ No newline at end of file diff --git a/src/Bellatrix.Playwright/assertions/StyleAssertions.cs b/src/Bellatrix.Playwright/assertions/StyleAssertions.cs new file mode 100644 index 00000000..2de5cbbe --- /dev/null +++ b/src/Bellatrix.Playwright/assertions/StyleAssertions.cs @@ -0,0 +1,180 @@ +// +// Copyright 2021 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ +using Bellatrix.Assertions; +using System.Text.RegularExpressions; + +namespace Bellatrix.Playwright.Assertions +{ + public static class StyleAssertions + { + public static void AssertBackgroundColor(this Component element, string expectedBackgroundColor) + { + var actualColor = element.GetCssValue("background-color"); + Assert.AreEqual(expectedBackgroundColor, actualColor); + } + + public static void AssertBorderColor(this Component element, string expectedBorderColor) + { + Assert.AreEqual(expectedBorderColor, element.GetCssValue("border-color")); + } + + public static void AssertColor(this Component element, string expectedColor) + { + Assert.AreEqual(expectedColor, element.GetCssValue("color")); + } + + public static void AssertFontFamily(this Component element, string expectedFontFamily) + { + Assert.AreEqual(expectedFontFamily, element.GetCssValue("font-family")); + } + + public static void AssertFontWeight(this Component element, string expectedFontWeight) + { + Assert.AreEqual(expectedFontWeight, element.GetCssValue("font-weight")); + } + + public static void AssertFontSize(this Component element, string expectedFontSize) + { + var elementCss = element.GetCssValue("font-size"); + + Assert.AreEqual(ExtractDoubleValue(expectedFontSize), ExtractDoubleValue(elementCss), delta: 1); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedFontSize)); + } + + public static void AssertTextAlign(this Component element, string expectedTextAlign) + { + Assert.AreEqual(expectedTextAlign, element.GetCssValue("text-align")); + } + + public static void AssertVerticalAlign(this Component element, string expectedVerticalAlign) + { + Assert.AreEqual(expectedVerticalAlign, element.GetCssValue("vertical-align")); + } + + public static void AssertLineHeight(this Component element, string expectedLineHeight) + { + var elementCss = element.GetCssValue("line-height"); + + Assert.AreEqual(ExtractDoubleValue(expectedLineHeight), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedLineHeight)); + } + + public static void AssertLetterSpacing(this Component element, string expectedLetterSpacing) + { + var elementCss = element.GetCssValue("letter-spacing"); + + Assert.AreEqual(ExtractDoubleValue(expectedLetterSpacing), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedLetterSpacing)); + } + + public static void AssertMarginTop(this Component element, string expectedMarginTop) + { + var elementCss = element.GetCssValue("margin-top"); + + Assert.AreEqual(ExtractDoubleValue(expectedMarginTop), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedMarginTop)); + } + + public static void AssertMarginBottom(this Component element, string expectedMarginBottom) + { + var elementCss = element.GetCssValue("margin-bottom"); + + Assert.AreEqual(ExtractDoubleValue(expectedMarginBottom), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedMarginBottom)); + } + + public static void AssertMarginLeft(this Component element, string expectedMarginLeft) + { + var elementCss = element.GetCssValue("margin-left"); + + Assert.AreEqual(ExtractDoubleValue(expectedMarginLeft), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedMarginLeft)); + } + + public static void AssertMarginRight(this Component element, string expectedMarginRight) + { + var elementCss = element.GetCssValue("margin-right"); + + Assert.AreEqual(ExtractDoubleValue(expectedMarginRight), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedMarginRight)); + } + + public static void AssertPaddingTop(this Component element, string expectedPaddingTop) + { + var elementCss = element.GetCssValue("padding-top"); + + Assert.AreEqual(ExtractDoubleValue(expectedPaddingTop), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedPaddingTop)); + } + + public static void AssertPaddingBottom(this Component element, string expectedPaddingBottom) + { + var elementCss = element.GetCssValue("padding-bottom"); + + Assert.AreEqual(ExtractDoubleValue(expectedPaddingBottom), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedPaddingBottom)); + } + + public static void AssertPaddingLeft(this Component element, string expectedPaddingLeft) + { + var elementCss = element.GetCssValue("padding-left"); + + Assert.AreEqual(ExtractDoubleValue(expectedPaddingLeft), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedPaddingLeft)); + } + + public static void AssertPaddingRight(this Component element, string expectedPaddingRight) + { + var elementCss = element.GetCssValue("padding-right"); + + Assert.AreEqual(ExtractDoubleValue(expectedPaddingRight), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedPaddingRight)); + } + + public static void AssertPosition(this Component element, string expectedPosition) + { + Assert.AreEqual(expectedPosition, element.GetCssValue("position")); + } + + public static void AssertHeight(this Component element, string expectedHeight) + { + var elementCss = element.GetCssValue("height"); + + Assert.AreEqual(ExtractDoubleValue(expectedHeight), ExtractDoubleValue(elementCss), delta: 5); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedHeight)); + } + + public static void AssertWidth(this Component element, string expectedWidth) + { + var elementCss = element.GetCssValue("width"); + + Assert.AreEqual(ExtractDoubleValue(expectedWidth), ExtractDoubleValue(elementCss), delta: 30); + Assert.AreEqual(ExtractMeasureUnit(elementCss), ExtractMeasureUnit(expectedWidth)); + } + + private static string ExtractMeasureUnit(string stringCssValue) + { + return stringCssValue.Substring(stringCssValue.IndexOf(stringCssValue.FirstOrDefault(x => Char.IsLetter(x)))); + } + + private static double ExtractDoubleValue(string stringCssValue) + { + var regex = "([\\+\\-]?[0-9\\.]+)(%|px|rem|pt|em|in|cm|mm|ex|pc|vw)?"; + + string doubleCssValue = Regex.Matches(stringCssValue, regex).FirstOrDefault().Groups[1].Value; + + return Convert.ToDouble(doubleCssValue); + } + } +} \ No newline at end of file diff --git a/src/Bellatrix.Playwright/components/Container.cs b/src/Bellatrix.Playwright/components/Container.cs new file mode 100644 index 00000000..1bc0e82b --- /dev/null +++ b/src/Bellatrix.Playwright/components/Container.cs @@ -0,0 +1,29 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ +using System.Diagnostics; + +namespace Bellatrix.Playwright.Controls; + +public class Container : Component +{ + public new Action Hover { get; set; } + + public new Action Focus { get; set; } + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + public Func InnerText { get; set; } + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + public Func InnerHtml { get; set; } +} \ No newline at end of file diff --git a/src/Bellatrix.Playwright/components/Frame.cs b/src/Bellatrix.Playwright/components/Frame.cs new file mode 100644 index 00000000..febb41d6 --- /dev/null +++ b/src/Bellatrix.Playwright/components/Frame.cs @@ -0,0 +1,19 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ +namespace Bellatrix.Playwright; + +public class Frame : Component +{ + public string Name => GetAttribute("name"); +} \ No newline at end of file diff --git a/src/Bellatrix.Playwright/components/GridDataItem.cs b/src/Bellatrix.Playwright/components/GridDataItem.cs new file mode 100644 index 00000000..33f590f7 --- /dev/null +++ b/src/Bellatrix.Playwright/components/GridDataItem.cs @@ -0,0 +1,18 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ +namespace Bellatrix.Playwright; + +public class GridDataItem : Component +{ +} \ No newline at end of file diff --git a/src/Bellatrix.Playwright/components/Screen.cs b/src/Bellatrix.Playwright/components/Screen.cs new file mode 100644 index 00000000..f21d748f --- /dev/null +++ b/src/Bellatrix.Playwright/components/Screen.cs @@ -0,0 +1,35 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ +using System.Drawing; +using Bellatrix.Layout; +using Bellatrix.Playwright.Services; + +namespace Bellatrix.Playwright; + +internal class Screen : ILayoutComponent +{ + internal Screen() + { + var browserService = ServicesCollection.Current.Resolve(); + Location = new Point(0, 0); + var nativeSize = browserService.WrappedBrowser.CurrentPage.ViewportSize; + Size = new(nativeSize.Width, nativeSize.Height); + } + + public Point Location { get; } + + public Size Size { get; } + + public string ComponentName => "Screen"; +} diff --git a/src/Bellatrix.Playwright/components/SpecialElements.cs b/src/Bellatrix.Playwright/components/SpecialElements.cs new file mode 100644 index 00000000..562cdf7d --- /dev/null +++ b/src/Bellatrix.Playwright/components/SpecialElements.cs @@ -0,0 +1,23 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ +using Bellatrix.Layout; + +namespace Bellatrix.Playwright; + +public static class SpecialElements +{ + public static ILayoutComponent Viewport => new Viewport(); + + public static ILayoutComponent Screen => new Screen(); +} diff --git a/src/Bellatrix.Playwright/components/Viewport.cs b/src/Bellatrix.Playwright/components/Viewport.cs new file mode 100644 index 00000000..5f304688 --- /dev/null +++ b/src/Bellatrix.Playwright/components/Viewport.cs @@ -0,0 +1,36 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ +using System.Drawing; +using Bellatrix.Layout; +using Bellatrix.Playwright.Services; + +namespace Bellatrix.Playwright; + +internal class Viewport : ILayoutComponent +{ + internal Viewport() + { + var javaScriptService = ServicesCollection.Current.Resolve(); + Location = new Point(0, 0); + var viewportWidth = int.Parse(javaScriptService.Execute("Math.max(document.documentElement.clientWidth, window.innerWidth || 0);").ToString()); + var viewportHeight = int.Parse(javaScriptService.Execute("Math.max(document.documentElement.clientHeight, window.innerHeight || 0);").ToString()); + Size = new Size(viewportWidth, viewportHeight); + } + + public Point Location { get; } + + public Size Size { get; } + + public string ComponentName => "Viewport"; +} diff --git a/src/Bellatrix.Playwright/components/advanced/Color.cs b/src/Bellatrix.Playwright/components/advanced/Color.cs new file mode 100644 index 00000000..19e9ead7 --- /dev/null +++ b/src/Bellatrix.Playwright/components/advanced/Color.cs @@ -0,0 +1,59 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ +using System; +using System.Diagnostics; +using Bellatrix.Playwright.Contracts; +using Bellatrix.Playwright.Events; + +namespace Bellatrix.Playwright; + +public class Color : Component, IComponentDisabled, IComponentValue, IComponentColor, IComponentList, IComponentAutoComplete, IComponentRequired +{ + public static event EventHandler Hovering; + public static event EventHandler Hovered; + public static event EventHandler SettingColor; + public static event EventHandler ColorSet; + + public override Type ComponentType => GetType(); + + public virtual void Hover() + { + Hover(Hovering, Hovered); + } + + public virtual string GetColor() + { + return DefaultGetValue(); + } + + public virtual void SetColor(string value) + { + SetValue(SettingColor, ColorSet, value); + } + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + public virtual bool IsDisabled => GetDisabledAttribute(); + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + public virtual bool IsAutoComplete => GetAutoCompleteAttribute(); + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + public virtual bool IsRequired => GetRequiredAttribute(); + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + public virtual string Value => DefaultGetValue(); + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + public virtual string List => GetList(); +} \ No newline at end of file diff --git a/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/AnchorControlDataHandler.cs b/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/AnchorControlDataHandler.cs new file mode 100644 index 00000000..610956ab --- /dev/null +++ b/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/AnchorControlDataHandler.cs @@ -0,0 +1,34 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ + +using System; + +namespace Bellatrix.Playwright.Controls.Advanced.ControlDataHandlers; + +public class AnchorControlDataHandler : IReadonlyControlDataHandler +{ + public dynamic GetData(Anchor element) + { + try + { + return element.InnerText.Trim(); + } + catch (TimeoutException) + { + return null; + } + } + + public void ValidateValueIs(Anchor element, string expectedValue) => element.ValidateInnerTextIs(expectedValue); +} \ No newline at end of file diff --git a/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IControlDataHandler.cs b/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IControlDataHandler.cs new file mode 100644 index 00000000..042dcdd5 --- /dev/null +++ b/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IControlDataHandler.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Bellatrix.Playwright.Controls.Advanced.ControlDataHandlers; + +public interface IControlDataHandler + where TComponent : class +{ +} diff --git a/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IEditableControlDataHandler.cs b/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IEditableControlDataHandler.cs new file mode 100644 index 00000000..d7d53f98 --- /dev/null +++ b/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IEditableControlDataHandler.cs @@ -0,0 +1,21 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ + +namespace Bellatrix.Playwright.Controls.Advanced.ControlDataHandlers; + +public interface IEditableControlDataHandler : IReadonlyControlDataHandler + where TComponent : Component +{ + void SetData(TComponent element, string data); +} \ No newline at end of file diff --git a/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IReadonlyControlDataHandler.cs b/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IReadonlyControlDataHandler.cs new file mode 100644 index 00000000..069a04ab --- /dev/null +++ b/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/Base/IReadonlyControlDataHandler.cs @@ -0,0 +1,22 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ + +namespace Bellatrix.Playwright.Controls.Advanced.ControlDataHandlers; + +public interface IReadonlyControlDataHandler : IControlDataHandler +where TComponent : Component +{ + dynamic GetData(TComponent element); + void ValidateValueIs(TComponent element, string expectedValue); +} \ No newline at end of file diff --git a/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/ButtonControlDataHandler.cs b/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/ButtonControlDataHandler.cs new file mode 100644 index 00000000..c9579b62 --- /dev/null +++ b/src/Bellatrix.Playwright/components/advanced/ComponentsDataHandlers/ButtonControlDataHandler.cs @@ -0,0 +1,43 @@ +// +// Copyright 2022 Automate The Planet Ltd. +// Licensed under the Apache License, Version 2.0 (the "License"); +// You may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Anton Angelov +// https://bellatrix.solutions/ + +using Bellatrix.Assertions; + +namespace Bellatrix.Playwright.Controls.Advanced.ControlDataHandlers; + +public class ButtonControlDataHandler : IReadonlyControlDataHandler