diff --git a/testing/PIMS.Tests.Automation/Data/PIMS_Testing_Data.xlsx b/testing/PIMS.Tests.Automation/Data/PIMS_Testing_Data.xlsx index edb514215f..72e783e349 100644 Binary files a/testing/PIMS.Tests.Automation/Data/PIMS_Testing_Data.xlsx and b/testing/PIMS.Tests.Automation/Data/PIMS_Testing_Data.xlsx differ diff --git a/testing/PIMS.Tests.Automation/Features/Leases.feature b/testing/PIMS.Tests.Automation/Features/Leases.feature index 92676a4c41..0f714bd284 100644 --- a/testing/PIMS.Tests.Automation/Features/Leases.feature +++ b/testing/PIMS.Tests.Automation/Features/Leases.feature @@ -9,12 +9,11 @@ Scenario: 01._Lease_and_License_File_Details And I update a Lease's Details from row number 2 Then A new lease is created successfully -Scenario: 02._Leases_Properties_and_Surplus_Declaration +Scenario: 02._Leases_Properties Given I create a new minimum Lease from row number 3 When I add Properties to the Lease Details And I update a Lease's Properties from row number 4 - #And I verify the Surplus section - #Then A new lease is created successfully + Then A new lease is created successfully Scenario: 03._Leases_Approval_Consultations Given I create a new minimum Lease from row number 20 diff --git a/testing/PIMS.Tests.Automation/Features/Leases.feature.cs b/testing/PIMS.Tests.Automation/Features/Leases.feature.cs index 0de3dfd006..970ad6a888 100644 --- a/testing/PIMS.Tests.Automation/Features/Leases.feature.cs +++ b/testing/PIMS.Tests.Automation/Features/Leases.feature.cs @@ -172,15 +172,15 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa await this.ScenarioCleanupAsync(); } - [global::Xunit.SkippableFactAttribute(DisplayName="02._Leases_Properties_and_Surplus_Declaration")] + [global::Xunit.SkippableFactAttribute(DisplayName="02._Leases_Properties")] [global::Xunit.TraitAttribute("FeatureTitle", "Leases and Licenses")] - [global::Xunit.TraitAttribute("Description", "02._Leases_Properties_and_Surplus_Declaration")] - public async global::System.Threading.Tasks.Task _02__Leases_Properties_And_Surplus_Declaration() + [global::Xunit.TraitAttribute("Description", "02._Leases_Properties")] + public async global::System.Threading.Tasks.Task _02__Leases_Properties() { string[] tagsOfScenario = ((string[])(null)); global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("02._Leases_Properties_and_Surplus_Declaration", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("02._Leases_Properties", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; #line 12 @@ -201,6 +201,9 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa #line hidden #line 15 await testRunner.AndAsync("I update a Lease\'s Properties from row number 4", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 16 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } await this.ScenarioCleanupAsync(); @@ -217,7 +220,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("03._Leases_Approval_Consultations", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 19 +#line 18 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -227,16 +230,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 20 +#line 19 await testRunner.GivenAsync("I create a new minimum Lease from row number 20", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 21 +#line 20 await testRunner.WhenAsync("I insert new consultations to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 22 +#line 21 await testRunner.AndAsync("I update a Lease\'s consultation from row number 21", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 23 +#line 22 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -254,7 +257,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("04._Lease_Checklist_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 25 +#line 24 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -264,13 +267,13 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 26 +#line 25 await testRunner.GivenAsync("I create a new minimum Lease from row number 22", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 27 +#line 26 await testRunner.WhenAsync("I insert Checklist information to a Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 28 +#line 27 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -288,7 +291,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("05-1._Lease_and_License_Payees_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 30 +#line 29 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -298,16 +301,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 31 +#line 30 await testRunner.GivenAsync("I create a new minimum Lease from row number 5", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 32 +#line 31 await testRunner.WhenAsync("I add Tenants or Payees to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 33 +#line 32 await testRunner.AndAsync("I update a Lease\'s Tenants from row number 31", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 34 +#line 33 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -325,7 +328,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("05-2._Lease_and_License_Tenants_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 36 +#line 35 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -335,16 +338,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 37 +#line 36 await testRunner.GivenAsync("I create a new minimum Lease from row number 6", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 38 +#line 37 await testRunner.WhenAsync("I add Tenants or Payees to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 39 +#line 38 await testRunner.AndAsync("I update a Lease\'s Tenants from row number 7", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 40 +#line 39 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -362,7 +365,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("07._Lease_and_License_Insurance_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 42 +#line 41 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -372,16 +375,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 43 +#line 42 await testRunner.GivenAsync("I create a new minimum Lease from row number 25", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 44 +#line 43 await testRunner.WhenAsync("I add Insurance to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 45 +#line 44 await testRunner.AndAsync("I update a Lease\'s Insurance from row number 26", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 46 +#line 45 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -399,7 +402,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("08._Lease_and_License_Deposits_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 48 +#line 47 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -409,16 +412,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 49 +#line 48 await testRunner.GivenAsync("I create a new minimum Lease from row number 27", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 50 +#line 49 await testRunner.WhenAsync("I add Deposits to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 51 +#line 50 await testRunner.AndAsync("I update a Lease\'s Deposits from row number 28", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 52 +#line 51 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -436,7 +439,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("09._Lease_and_License_Periods_and_Payments_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 54 +#line 53 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -446,16 +449,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 55 +#line 54 await testRunner.GivenAsync("I create a new minimum Lease from row number 29", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 56 +#line 55 await testRunner.WhenAsync("I add Periods and Payments to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 57 +#line 56 await testRunner.AndAsync("I update a Lease\'s Payments from row number 30", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 58 +#line 57 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -473,7 +476,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("10._Lease_Compensation_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 60 +#line 59 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -483,25 +486,25 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 61 +#line 60 await testRunner.GivenAsync("I create a new minimum Lease from row number 8", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 62 +#line 61 await testRunner.WhenAsync("I add additional Information to the Lease Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 63 +#line 62 await testRunner.AndAsync("I add Properties to the Lease Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 64 +#line 63 await testRunner.AndAsync("I add Tenants or Payees to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 65 +#line 64 await testRunner.AndAsync("I create Compensation Requisition within a Lease or Licence", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 66 +#line 65 await testRunner.AndAsync("I update Compensation Requisition within a Lease from row number 9", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 67 +#line 66 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -519,7 +522,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("11._Lease_and_License_Documents_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 69 +#line 68 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -529,16 +532,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 70 +#line 69 await testRunner.GivenAsync("I create a new minimum Lease from row number 32", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 71 +#line 70 await testRunner.WhenAsync("I create Digital Documents for a \"Lease\" from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 72 +#line 71 await testRunner.AndAsync("I edit a Digital Document for a \"Lease\" from row number 5", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 73 +#line 72 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -556,7 +559,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("12._Lease_and_License_Notes_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 75 +#line 74 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -566,16 +569,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 76 +#line 75 await testRunner.GivenAsync("I create a new minimum Lease from row number 19", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 77 +#line 76 await testRunner.WhenAsync("I create a new Note on the Notes Tab from row number 5", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 78 +#line 77 await testRunner.AndAsync("I edit a Note on the Notes Tab from row number 2", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 79 +#line 78 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -593,7 +596,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("13._Lease_and_License_from_Inventory_Search_Control", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 81 +#line 80 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -603,10 +606,10 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 82 +#line 81 await testRunner.GivenAsync("I create a new Lease through a Property Pin from row number 33", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 83 +#line 82 await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -624,7 +627,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("14._Lease_and_License_List_View", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 85 +#line 84 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -634,10 +637,10 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 86 +#line 85 await testRunner.GivenAsync("I search for an existing Lease or License from row number 2", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 87 +#line 86 await testRunner.ThenAsync("Expected Lease File Content is displayed on Leases Table", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -655,7 +658,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("15._Lease_and_Licence_Error_Message_Payee", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 89 +#line 88 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -665,22 +668,22 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 90 +#line 89 await testRunner.GivenAsync("I create a new minimum Lease from row number 18", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 91 +#line 90 await testRunner.WhenAsync("I add additional Information to the Lease Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 92 +#line 91 await testRunner.AndAsync("I add Tenants or Payees to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 93 +#line 92 await testRunner.AndAsync("I create Compensation Requisition within a Lease or Licence", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 94 +#line 93 await testRunner.AndAsync("I delete a payee from lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 95 +#line 94 await testRunner.ThenAsync("Payee cannot be deleted", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } diff --git a/testing/PIMS.Tests.Automation/Features/Properties.feature b/testing/PIMS.Tests.Automation/Features/Properties.feature index 8cdae3f4a4..a864c96032 100644 --- a/testing/PIMS.Tests.Automation/Features/Properties.feature +++ b/testing/PIMS.Tests.Automation/Features/Properties.feature @@ -29,7 +29,6 @@ Scenario: 03._Property_Management_Tab Scenario: 04._Property_Documents_Tab Given I review a Property's Information from row number 3 When I create Digital Documents for a "Property" from row number 1 - When I create Digital Documents for a "Property" from row number 1 And I edit a Digital Document for a "Property" from row number 16 Then A Property Information is saved successfully @@ -51,7 +50,7 @@ Scenario: 07._Verify_Digital_Documents_on_Related_Documents When I create Digital Documents for a "Property" from row number 16 And I create a Management File from row number 5 to check common data And I add Properties to the Management File - Then The related documents appeared as expected + Then Property Management Tab has been updated successfully Scenario: 08._Properties_List Given I search for a Property in the Properties List by different filters from row number 29 diff --git a/testing/PIMS.Tests.Automation/Features/Properties.feature.cs b/testing/PIMS.Tests.Automation/Features/Properties.feature.cs index 00fc106cae..d001f8a37a 100644 --- a/testing/PIMS.Tests.Automation/Features/Properties.feature.cs +++ b/testing/PIMS.Tests.Automation/Features/Properties.feature.cs @@ -308,12 +308,9 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa await testRunner.WhenAsync("I create Digital Documents for a \"Property\" from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden #line 32 - await testRunner.WhenAsync("I create Digital Documents for a \"Property\" from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 33 await testRunner.AndAsync("I edit a Digital Document for a \"Property\" from row number 16", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 34 +#line 33 await testRunner.ThenAsync("A Property Information is saved successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -331,7 +328,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("05._Property_Notes_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 36 +#line 35 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -341,16 +338,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 37 +#line 36 await testRunner.GivenAsync("I review a Property\'s Information from row number 3", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 38 +#line 37 await testRunner.WhenAsync("I create a new Note on the Notes Tab from row number 13", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 39 +#line 38 await testRunner.AndAsync("I edit a Note on the Notes Tab for a \"Property\" from row number 14", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 40 +#line 39 await testRunner.ThenAsync("A Property Information is saved successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -368,7 +365,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("06._Property_Management_Activity_Digital_Documents", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 42 +#line 41 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -378,19 +375,19 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 43 +#line 42 await testRunner.GivenAsync("I search for a property in the inventory by PID from row number 23", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 44 +#line 43 await testRunner.WhenAsync("I insert activities to the Property Management Tab from row number 4", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 45 +#line 44 await testRunner.AndAsync("I create Digital Documents for a Property Management row number 11", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 46 +#line 45 await testRunner.AndAsync("I delete all activities from the Property Management Tab", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 47 +#line 46 await testRunner.ThenAsync("Property Management Tab has been updated successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -408,7 +405,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("07._Verify_Digital_Documents_on_Related_Documents", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 49 +#line 48 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -418,20 +415,20 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 50 +#line 49 await testRunner.GivenAsync("I search for a property in the inventory by PID from row number 37", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 51 +#line 50 await testRunner.WhenAsync("I create Digital Documents for a \"Property\" from row number 16", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 52 +#line 51 await testRunner.AndAsync("I create a Management File from row number 5 to check common data", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 53 +#line 52 await testRunner.AndAsync("I add Properties to the Management File", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 54 - await testRunner.ThenAsync("The related documents appeared as expected", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line 53 + await testRunner.ThenAsync("Property Management Tab has been updated successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } await this.ScenarioCleanupAsync(); @@ -448,7 +445,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("08._Properties_List", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 56 +#line 55 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -458,11 +455,11 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 57 +#line 56 await testRunner.GivenAsync("I search for a Property in the Properties List by different filters from row numb" + "er 29", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 58 +#line 57 await testRunner.ThenAsync("Properties filters works successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -480,7 +477,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("09._Non-Inventory_Property_Information", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 60 +#line 59 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -490,10 +487,10 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 61 +#line 60 await testRunner.GivenAsync("I search for a non MOTI property from row number 6", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 62 +#line 61 await testRunner.ThenAsync("Non-Inventory property renders correctly", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -511,7 +508,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("10._Invalid_Property_Not_Found", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 64 +#line 63 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -521,10 +518,10 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 65 +#line 64 await testRunner.GivenAsync("I search for an Invalid Property from row number 10", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 66 +#line 65 await testRunner.ThenAsync("No Properties were found", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -542,7 +539,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("11._Map_Features", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 68 +#line 67 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -552,10 +549,10 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 69 +#line 68 await testRunner.GivenAsync("I verify the Maps Layers", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 70 +#line 69 await testRunner.ThenAsync("Map Features rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -583,7 +580,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("12._Property_Management_Lease_Active_Indicator", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 72 +#line 71 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -593,19 +590,19 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 73 +#line 72 await testRunner.GivenAsync(string.Format("I create a new minimum Lease from row number {0}", rowNumber), ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 74 +#line 73 await testRunner.WhenAsync("I add additional Information to the Lease Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 75 +#line 74 await testRunner.AndAsync("I add Properties to the Lease Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 76 +#line 75 await testRunner.AndAsync("I search for a Property in the Properties List by PID from row number 33", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 77 +#line 76 await testRunner.ThenAsync(string.Format("Expected Active Lease status is displayed as \"{0}\" successfully", activeLeaseStatus), ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -623,7 +620,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("13._Strata_Properties_Tabs", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 89 +#line 88 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -633,13 +630,13 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 90 +#line 89 await testRunner.GivenAsync("I search for a property by Plan Number from row number 39", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 91 +#line 90 await testRunner.WhenAsync("I verify the MultiProperty Tabs", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 92 +#line 91 await testRunner.ThenAsync("Multiproperty property rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -657,7 +654,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("14._Property_Hwy_and_Other_Tabs", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 94 +#line 93 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -667,16 +664,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 95 +#line 94 await testRunner.GivenAsync("I search for a property by Plan Number from row number 40", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 96 +#line 95 await testRunner.WhenAsync("I verify the Highway Tab", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 97 +#line 96 await testRunner.AndAsync("I verify the Other Tab", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 98 +#line 97 await testRunner.ThenAsync("Property Tabs rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } @@ -694,7 +691,7 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("15._Property_PMBC_and_Crown_Tabs", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); string[] tagsOfRule = ((string[])(null)); global::Reqnroll.RuleInfo ruleInfo = null; -#line 100 +#line 99 this.ScenarioInitialize(scenarioInfo, ruleInfo); #line hidden if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) @@ -704,16 +701,16 @@ public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, globa else { await this.ScenarioStartAsync(); -#line 101 +#line 100 await testRunner.GivenAsync("I search for a property by PID from row number 41", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); #line hidden -#line 102 +#line 101 await testRunner.WhenAsync("I verify the PMBC Tab", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); #line hidden -#line 103 +#line 102 await testRunner.AndAsync("I verify the Crown Tab", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); #line hidden -#line 104 +#line 103 await testRunner.ThenAsync("Property Tabs rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); #line hidden } diff --git a/testing/PIMS.Tests.Automation/Features/RegressionTesting.feature b/testing/PIMS.Tests.Automation/Features/RegressionTesting.feature new file mode 100644 index 0000000000..b34130095d --- /dev/null +++ b/testing/PIMS.Tests.Automation/Features/RegressionTesting.feature @@ -0,0 +1,228 @@ +@RegressionTesting +Feature: RegressionTesting + +A short summary of the feature + +Scenario: 01._Help_Desk_Section + Given I review the Help Desk Section + Then Help Desk rendered successfully + +Scenario: 02._User_Management_List_View + Given I enter to the User Management List View + Then User Management rendered successfully + +Scenario: 03._CDOGS_Templates + Given I create a CDOGS template + Then CDOGS rendered successfully + +Scenario: 04._Financial_Codes_List_View + Given I search for an existing Financial Code from row number 1 + Then Financial Codes rendered successfully + +Scenario: 05._Acquisition_File_Details + Given I create a new Acquisition File from row number 1 + When I add additional information to the Acquisition File Details + And I update the File details from an existing Acquisition File from row number 2 + Then A new Acquisition file is created successfully + +Scenario: 06._Acquisition_File_Property_Takes + Given I create a new Acquisition File from row number 5 + When I add Properties to the Acquisition File + And I create Takes within Acquisition File's Properties + And I update Takes within Acquisition File's Properties from row number 6 + Then A new Acquisition file is created successfully + +Scenario: 07._Acquisition_File_Agreements_Tab + Given I create a new Acquisition File from row number 10 + When I create Agreements within an Acquisition File + And I update an Agreement within an Acquisition File from row number 11 + Then A new Acquisition file is created successfully + +Scenario: 08._Acquisition_File_Stakeholders_Tab + Given I create a new Acquisition File from row number 12 + When I add Properties to the Acquisition File + And I create Stakeholders within an Acquisition File + Then A new Acquisition file is created successfully + +Scenario: 09._Acquisition_File_Compensation_Tab + Given I create a new Acquisition File from row number 13 + When I add additional information to the Acquisition File Details + And I add Properties to the Acquisition File + And I create Stakeholders within an Acquisition File + And I create Compensation Requisition within an Acquisition File + And I update Compensation Requisition within an Acquisition File from row number 14 + Then A new Acquisition file is created successfully + +Scenario: 10._Acquisition_File_Expropriation_Tab + Given I create a new Acquisition File from row number 15 + When I add additional information to the Acquisition File Details + And I add Properties to the Acquisition File + And I create Stakeholders within an Acquisition File + And I create Expropriations within an Acquisition File + And I update Expropriation within an Acquisition File from row number 16 + Then A new Acquisition file is created successfully + +Scenario: 11._Acquisition_File_from_Land_Parcel + Given I create an Acquisition File from a pin on map from row number 17 + Then A new Acquisition file is created successfully + +Scenario: 12._Acquisition_Files_List_View + Given I search for an existing Acquisition File from row number 2 + Then Expected Acquisition File Content is displayed on Acquisition File Table + +Scenario: 13._Acquisition_File_Subfiles-Subfile_Details + Given I create a new Acquisition File from row number 22 + When I add additional information to the Acquisition File Details + And I create a new Sub-file from row number 23 + Then A new Acquisition file is created successfully + +Scenario: 14._Lease_and_License_File_Details + Given I create a new minimum Lease from row number 1 + When I add additional Information to the Lease Details + And I update a Lease's Details from row number 2 + Then A new lease is created successfully + +Scenario: 15._Leases_Properties + Given I create a new minimum Lease from row number 3 + When I add Properties to the Lease Details + And I update a Lease's Properties from row number 4 + Then A new lease is created successfully + +Scenario: 16._Leases_Approval_Consultations + Given I create a new minimum Lease from row number 20 + When I insert new consultations to the Lease + And I update a Lease's consultation from row number 21 + Then A new lease is created successfully + +Scenario: 17._Lease_Checklist_Tab + Given I create a new minimum Lease from row number 22 + When I insert Checklist information to a Lease + Then A new lease is created successfully + +Scenario: 18._Lease_and_License_Tenants_Tab + Given I create a new minimum Lease from row number 6 + When I add Tenants or Payees to the Lease + And I update a Lease's Tenants from row number 7 + Then A new lease is created successfully + +Scenario: 19._Lease_and_License_Insurance_Tab + Given I create a new minimum Lease from row number 25 + When I add Insurance to the Lease + And I update a Lease's Insurance from row number 26 + Then A new lease is created successfully + +Scenario: 20._Lease_and_License_Deposits_Tab + Given I create a new minimum Lease from row number 27 + When I add Deposits to the Lease + And I update a Lease's Deposits from row number 28 + Then A new lease is created successfully + +Scenario: 21._Lease_and_License_Periods_and_Payments_Tab + Given I create a new minimum Lease from row number 29 + When I add Periods and Payments to the Lease + And I update a Lease's Payments from row number 30 + Then A new lease is created successfully + +Scenario: 22._Lease_and_License_Documents_Tab + Given I create a new minimum Lease from row number 32 + When I create Digital Documents for a "Lease" from row number 1 + And I edit a Digital Document for a "Lease" from row number 5 + Then A new lease is created successfully + +Scenario: 23._Lease_and_License_from_Inventory_Search_Control + Given I create a new Lease through a Property Pin from row number 33 + Then A new lease is created successfully + +Scenario: 24._Lease_and_License_List_View + Given I search for an existing Lease or License from row number 2 + Then Expected Lease File Content is displayed on Leases Table + +Scenario: 25._Research_File_Details + Given I create a basic Research File from row number 1 + When I add additional details to Research File + And I update a Research File Details from row number 4 + Then A new Research File is created successfully + +Scenario: 26._Research_File_Notes + Given I create a basic Research File from row number 1 + When I create a new Note on the Notes Tab from row number 1 + And I edit a Note on the Notes Tab from row number 2 + Then A new Research File is created successfully + +Scenario: 27._Research_File_from_Search + Given I create a Research File from a search on map and from row number 6 + Then A new Research File is created successfully + +Scenario: 28._Research_File_List_View + Given I search for Research Files from row number 4 + Then Research File Properties remain unchanged + +Scenario: 29._Disposition_File_Details + Given I create a new Disposition File from row number 2 + When I add additional information to the Disposition File Details + And I update the File details from an existing Disposition File from row number 3 + Then A new Disposition file is created successfully + +Scenario: 30._Disposition_Offers_and_Sale_Tab + Given I create a new Disposition File from row number 8 + When I create Appraisal, Assessment, Offers and Sales Details within a Disposition File + And I update Appraisal, Assessment and Offers section within Disposition File from row number 9 + Then A new Disposition file is created successfully + +Scenario: 31._Disposition_File_from_Parcel + Given I create a Disposition File from a pin on map from row number 12 + Then A new Disposition file is created successfully + +Scenario: 32._Disposition_Files_List_View + Given I search for an existing Disposition File from row number 3 + Then Expected Disposition File Content is displayed on Disposition File List View + +Scenario: 33._Organization_Contacts + Given I create a new Organization Contact from row number 1 + When I update an existing Organization Contact from row number 2 + And I search for an existing contact from type "Organization" row number 1 + Then Expected Content is displayed on Contacts Table from contact type "Organization" + +Scenario: 34._Individual_Contacts + Given I create a new Individual Contact from row number 1 + When I update an existing Individual Contact from row number 2 + And I search for an existing contact from type "Individual" row number 1 + Then Expected Content is displayed on Contacts Table from contact type "Individual" + +Scenario: 35._Contacts_List_View + Given I verify the Contacts List View from row number 1 + Then Expected Content is displayed on Contacts Table from contact type "Organization" + + Scenario: 36._Properties_List + Given I search for a Property in the Properties List by different filters from row number 29 + Then Properties filters works successfully + +Scenario: 37._Non-Inventory_Property_Information + Given I search for a non MOTI property from row number 6 + Then Non-Inventory property renders correctly + +Scenario: 38._Invalid_Property_Not_Found + Given I search for an Invalid Property from row number 10 + Then No Properties were found + +Scenario: 39._Map_Features + Given I verify the Maps Layers + Then Map Features rendered successfully + +Scenario: 40._Strata_Properties_Tabs + Given I search for a property by Plan Number from row number 39 + When I verify the MultiProperty Tabs + Then Multiproperty property rendered successfully + +Scenario: 41._Property_Hwy_and_Other_Tabs + Given I search for a property by Plan Number from row number 40 + When I verify the Highway Tab + And I verify the Other Tab + Then Property Tabs rendered successfully + +Scenario: 42._Property_PMBC_and_Crown_Tabs + Given I search for a property by PID from row number 41 + When I verify the PMBC Tab + And I verify the Crown Tab + Then Property Tabs rendered successfully + diff --git a/testing/PIMS.Tests.Automation/Features/RegressionTesting.feature.cs b/testing/PIMS.Tests.Automation/Features/RegressionTesting.feature.cs new file mode 100644 index 0000000000..289f88ccba --- /dev/null +++ b/testing/PIMS.Tests.Automation/Features/RegressionTesting.feature.cs @@ -0,0 +1,1626 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by Reqnroll (https://reqnroll.net/). +// Reqnroll Version:3.0.0.0 +// Reqnroll Generator Version:3.0.0.0 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ +#region Designer generated code +#pragma warning disable +using Reqnroll; +namespace PIMS.Tests.Automation.Features +{ + + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::Xunit.TraitAttribute("Category", "RegressionTesting")] + public partial class RegressionTestingFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime + { + + private global::Reqnroll.ITestRunner testRunner; + + private static string[] featureTags = new string[] { + "RegressionTesting"}; + + private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features", "RegressionTesting", "A short summary of the feature", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); + + private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; + +#line 1 "RegressionTesting.feature" +#line hidden + + public RegressionTestingFeature(RegressionTestingFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) + { + this._testOutputHelper = testOutputHelper; + } + + public static async global::System.Threading.Tasks.Task FeatureSetupAsync() + { + } + + public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() + { + await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); + } + + public async global::System.Threading.Tasks.Task TestInitializeAsync() + { + testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); + try + { + if (((testRunner.FeatureContext != null) + && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) + { + await testRunner.OnFeatureEndAsync(); + } + } + finally + { + if (((testRunner.FeatureContext != null) + && testRunner.FeatureContext.BeforeFeatureHookFailed)) + { + throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); + } + if ((testRunner.FeatureContext == null)) + { + await testRunner.OnFeatureStartAsync(featureInfo); + } + } + } + + public async global::System.Threading.Tasks.Task TestTearDownAsync() + { + if ((testRunner == null)) + { + return; + } + try + { + await testRunner.OnScenarioEndAsync(); + } + finally + { + global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); + testRunner = null; + } + } + + public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) + { + testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); + testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); + } + + public async global::System.Threading.Tasks.Task ScenarioStartAsync() + { + await testRunner.OnScenarioStartAsync(); + } + + public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() + { + await testRunner.CollectScenarioErrorsAsync(); + } + + private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() + { + return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages("Features/RegressionTesting.feature.ndjson", 44); + } + + async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() + { + try + { + await this.TestInitializeAsync(); + } + catch (System.Exception e1) + { + try + { + ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); + } + catch (System.Exception e2) + { + throw new System.AggregateException("Test initialization failed", e1, e2); + } + throw; + } + } + + async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() + { + await this.TestTearDownAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="01._Help_Desk_Section")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "01._Help_Desk_Section")] + public async global::System.Threading.Tasks.Task _01__Help_Desk_Section() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "0"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("01._Help_Desk_Section", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 6 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 7 + await testRunner.GivenAsync("I review the Help Desk Section", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 8 + await testRunner.ThenAsync("Help Desk rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="02._User_Management_List_View")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "02._User_Management_List_View")] + public async global::System.Threading.Tasks.Task _02__User_Management_List_View() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "1"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("02._User_Management_List_View", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 10 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 11 + await testRunner.GivenAsync("I enter to the User Management List View", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 12 + await testRunner.ThenAsync("User Management rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="03._CDOGS_Templates")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "03._CDOGS_Templates")] + public async global::System.Threading.Tasks.Task _03__CDOGS_Templates() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "2"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("03._CDOGS_Templates", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 14 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 15 + await testRunner.GivenAsync("I create a CDOGS template", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 16 + await testRunner.ThenAsync("CDOGS rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="04._Financial_Codes_List_View")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "04._Financial_Codes_List_View")] + public async global::System.Threading.Tasks.Task _04__Financial_Codes_List_View() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "3"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("04._Financial_Codes_List_View", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 18 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 19 + await testRunner.GivenAsync("I search for an existing Financial Code from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 20 + await testRunner.ThenAsync("Financial Codes rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="05._Acquisition_File_Details")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "05._Acquisition_File_Details")] + public async global::System.Threading.Tasks.Task _05__Acquisition_File_Details() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "4"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("05._Acquisition_File_Details", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 22 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 23 + await testRunner.GivenAsync("I create a new Acquisition File from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 24 + await testRunner.WhenAsync("I add additional information to the Acquisition File Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 25 + await testRunner.AndAsync("I update the File details from an existing Acquisition File from row number 2", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 26 + await testRunner.ThenAsync("A new Acquisition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="06._Acquisition_File_Property_Takes")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "06._Acquisition_File_Property_Takes")] + public async global::System.Threading.Tasks.Task _06__Acquisition_File_Property_Takes() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "5"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("06._Acquisition_File_Property_Takes", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 28 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 29 + await testRunner.GivenAsync("I create a new Acquisition File from row number 5", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 30 + await testRunner.WhenAsync("I add Properties to the Acquisition File", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 31 + await testRunner.AndAsync("I create Takes within Acquisition File\'s Properties", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 32 + await testRunner.AndAsync("I update Takes within Acquisition File\'s Properties from row number 6", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 33 + await testRunner.ThenAsync("A new Acquisition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="07._Acquisition_File_Agreements_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "07._Acquisition_File_Agreements_Tab")] + public async global::System.Threading.Tasks.Task _07__Acquisition_File_Agreements_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "6"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("07._Acquisition_File_Agreements_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 35 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 36 + await testRunner.GivenAsync("I create a new Acquisition File from row number 10", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 37 + await testRunner.WhenAsync("I create Agreements within an Acquisition File", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 38 + await testRunner.AndAsync("I update an Agreement within an Acquisition File from row number 11", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 39 + await testRunner.ThenAsync("A new Acquisition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="08._Acquisition_File_Stakeholders_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "08._Acquisition_File_Stakeholders_Tab")] + public async global::System.Threading.Tasks.Task _08__Acquisition_File_Stakeholders_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "7"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("08._Acquisition_File_Stakeholders_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 41 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 42 + await testRunner.GivenAsync("I create a new Acquisition File from row number 12", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 43 + await testRunner.WhenAsync("I add Properties to the Acquisition File", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 44 + await testRunner.AndAsync("I create Stakeholders within an Acquisition File", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 45 + await testRunner.ThenAsync("A new Acquisition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="09._Acquisition_File_Compensation_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "09._Acquisition_File_Compensation_Tab")] + public async global::System.Threading.Tasks.Task _09__Acquisition_File_Compensation_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "8"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("09._Acquisition_File_Compensation_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 47 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 48 + await testRunner.GivenAsync("I create a new Acquisition File from row number 13", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 49 + await testRunner.WhenAsync("I add additional information to the Acquisition File Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 50 + await testRunner.AndAsync("I add Properties to the Acquisition File", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 51 + await testRunner.AndAsync("I create Stakeholders within an Acquisition File", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 52 + await testRunner.AndAsync("I create Compensation Requisition within an Acquisition File", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 53 + await testRunner.AndAsync("I update Compensation Requisition within an Acquisition File from row number 14", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 54 + await testRunner.ThenAsync("A new Acquisition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="10._Acquisition_File_Expropriation_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "10._Acquisition_File_Expropriation_Tab")] + public async global::System.Threading.Tasks.Task _10__Acquisition_File_Expropriation_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "9"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("10._Acquisition_File_Expropriation_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 56 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 57 + await testRunner.GivenAsync("I create a new Acquisition File from row number 15", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 58 + await testRunner.WhenAsync("I add additional information to the Acquisition File Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 59 + await testRunner.AndAsync("I add Properties to the Acquisition File", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 60 + await testRunner.AndAsync("I create Stakeholders within an Acquisition File", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 61 + await testRunner.AndAsync("I create Expropriations within an Acquisition File", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 62 + await testRunner.AndAsync("I update Expropriation within an Acquisition File from row number 16", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 63 + await testRunner.ThenAsync("A new Acquisition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="11._Acquisition_File_from_Land_Parcel")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "11._Acquisition_File_from_Land_Parcel")] + public async global::System.Threading.Tasks.Task _11__Acquisition_File_From_Land_Parcel() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "10"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("11._Acquisition_File_from_Land_Parcel", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 65 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 66 + await testRunner.GivenAsync("I create an Acquisition File from a pin on map from row number 17", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 67 + await testRunner.ThenAsync("A new Acquisition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="12._Acquisition_Files_List_View")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "12._Acquisition_Files_List_View")] + public async global::System.Threading.Tasks.Task _12__Acquisition_Files_List_View() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "11"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("12._Acquisition_Files_List_View", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 69 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 70 + await testRunner.GivenAsync("I search for an existing Acquisition File from row number 2", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 71 + await testRunner.ThenAsync("Expected Acquisition File Content is displayed on Acquisition File Table", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="13._Acquisition_File_Subfiles-Subfile_Details")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "13._Acquisition_File_Subfiles-Subfile_Details")] + public async global::System.Threading.Tasks.Task _13__Acquisition_File_Subfiles_Subfile_Details() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "12"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("13._Acquisition_File_Subfiles-Subfile_Details", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 73 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 74 + await testRunner.GivenAsync("I create a new Acquisition File from row number 22", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 75 + await testRunner.WhenAsync("I add additional information to the Acquisition File Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 76 + await testRunner.AndAsync("I create a new Sub-file from row number 23", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 77 + await testRunner.ThenAsync("A new Acquisition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="14._Lease_and_License_File_Details")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "14._Lease_and_License_File_Details")] + public async global::System.Threading.Tasks.Task _14__Lease_And_License_File_Details() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "13"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("14._Lease_and_License_File_Details", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 79 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 80 + await testRunner.GivenAsync("I create a new minimum Lease from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 81 + await testRunner.WhenAsync("I add additional Information to the Lease Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 82 + await testRunner.AndAsync("I update a Lease\'s Details from row number 2", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 83 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="15._Leases_Properties")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "15._Leases_Properties")] + public async global::System.Threading.Tasks.Task _15__Leases_Properties() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "14"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("15._Leases_Properties", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 85 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 86 + await testRunner.GivenAsync("I create a new minimum Lease from row number 3", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 87 + await testRunner.WhenAsync("I add Properties to the Lease Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 88 + await testRunner.AndAsync("I update a Lease\'s Properties from row number 4", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 89 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="16._Leases_Approval_Consultations")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "16._Leases_Approval_Consultations")] + public async global::System.Threading.Tasks.Task _16__Leases_Approval_Consultations() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "15"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("16._Leases_Approval_Consultations", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 91 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 92 + await testRunner.GivenAsync("I create a new minimum Lease from row number 20", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 93 + await testRunner.WhenAsync("I insert new consultations to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 94 + await testRunner.AndAsync("I update a Lease\'s consultation from row number 21", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 95 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="17._Lease_Checklist_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "17._Lease_Checklist_Tab")] + public async global::System.Threading.Tasks.Task _17__Lease_Checklist_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "16"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("17._Lease_Checklist_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 97 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 98 + await testRunner.GivenAsync("I create a new minimum Lease from row number 22", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 99 + await testRunner.WhenAsync("I insert Checklist information to a Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 100 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="18._Lease_and_License_Tenants_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "18._Lease_and_License_Tenants_Tab")] + public async global::System.Threading.Tasks.Task _18__Lease_And_License_Tenants_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "17"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("18._Lease_and_License_Tenants_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 102 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 103 + await testRunner.GivenAsync("I create a new minimum Lease from row number 6", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 104 + await testRunner.WhenAsync("I add Tenants or Payees to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 105 + await testRunner.AndAsync("I update a Lease\'s Tenants from row number 7", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 106 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="19._Lease_and_License_Insurance_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "19._Lease_and_License_Insurance_Tab")] + public async global::System.Threading.Tasks.Task _19__Lease_And_License_Insurance_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "18"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("19._Lease_and_License_Insurance_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 108 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 109 + await testRunner.GivenAsync("I create a new minimum Lease from row number 25", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 110 + await testRunner.WhenAsync("I add Insurance to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 111 + await testRunner.AndAsync("I update a Lease\'s Insurance from row number 26", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 112 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="20._Lease_and_License_Deposits_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "20._Lease_and_License_Deposits_Tab")] + public async global::System.Threading.Tasks.Task _20__Lease_And_License_Deposits_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "19"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("20._Lease_and_License_Deposits_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 114 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 115 + await testRunner.GivenAsync("I create a new minimum Lease from row number 27", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 116 + await testRunner.WhenAsync("I add Deposits to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 117 + await testRunner.AndAsync("I update a Lease\'s Deposits from row number 28", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 118 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="21._Lease_and_License_Periods_and_Payments_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "21._Lease_and_License_Periods_and_Payments_Tab")] + public async global::System.Threading.Tasks.Task _21__Lease_And_License_Periods_And_Payments_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "20"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("21._Lease_and_License_Periods_and_Payments_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 120 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 121 + await testRunner.GivenAsync("I create a new minimum Lease from row number 29", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 122 + await testRunner.WhenAsync("I add Periods and Payments to the Lease", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 123 + await testRunner.AndAsync("I update a Lease\'s Payments from row number 30", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 124 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="22._Lease_and_License_Documents_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "22._Lease_and_License_Documents_Tab")] + public async global::System.Threading.Tasks.Task _22__Lease_And_License_Documents_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "21"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("22._Lease_and_License_Documents_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 126 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 127 + await testRunner.GivenAsync("I create a new minimum Lease from row number 32", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 128 + await testRunner.WhenAsync("I create Digital Documents for a \"Lease\" from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 129 + await testRunner.AndAsync("I edit a Digital Document for a \"Lease\" from row number 5", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 130 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="23._Lease_and_License_from_Inventory_Search_Control")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "23._Lease_and_License_from_Inventory_Search_Control")] + public async global::System.Threading.Tasks.Task _23__Lease_And_License_From_Inventory_Search_Control() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "22"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("23._Lease_and_License_from_Inventory_Search_Control", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 132 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 133 + await testRunner.GivenAsync("I create a new Lease through a Property Pin from row number 33", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 134 + await testRunner.ThenAsync("A new lease is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="24._Lease_and_License_List_View")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "24._Lease_and_License_List_View")] + public async global::System.Threading.Tasks.Task _24__Lease_And_License_List_View() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "23"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("24._Lease_and_License_List_View", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 136 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 137 + await testRunner.GivenAsync("I search for an existing Lease or License from row number 2", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 138 + await testRunner.ThenAsync("Expected Lease File Content is displayed on Leases Table", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="25._Research_File_Details")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "25._Research_File_Details")] + public async global::System.Threading.Tasks.Task _25__Research_File_Details() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "24"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("25._Research_File_Details", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 140 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 141 + await testRunner.GivenAsync("I create a basic Research File from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 142 + await testRunner.WhenAsync("I add additional details to Research File", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 143 + await testRunner.AndAsync("I update a Research File Details from row number 4", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 144 + await testRunner.ThenAsync("A new Research File is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="26._Research_File_Notes")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "26._Research_File_Notes")] + public async global::System.Threading.Tasks.Task _26__Research_File_Notes() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "25"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("26._Research_File_Notes", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 146 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 147 + await testRunner.GivenAsync("I create a basic Research File from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 148 + await testRunner.WhenAsync("I create a new Note on the Notes Tab from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 149 + await testRunner.AndAsync("I edit a Note on the Notes Tab from row number 2", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 150 + await testRunner.ThenAsync("A new Research File is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="27._Research_File_from_Search")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "27._Research_File_from_Search")] + public async global::System.Threading.Tasks.Task _27__Research_File_From_Search() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "26"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("27._Research_File_from_Search", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 152 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 153 + await testRunner.GivenAsync("I create a Research File from a search on map and from row number 6", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 154 + await testRunner.ThenAsync("A new Research File is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="28._Research_File_List_View")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "28._Research_File_List_View")] + public async global::System.Threading.Tasks.Task _28__Research_File_List_View() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "27"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("28._Research_File_List_View", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 156 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 157 + await testRunner.GivenAsync("I search for Research Files from row number 4", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 158 + await testRunner.ThenAsync("Research File Properties remain unchanged", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="29._Disposition_File_Details")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "29._Disposition_File_Details")] + public async global::System.Threading.Tasks.Task _29__Disposition_File_Details() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "28"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("29._Disposition_File_Details", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 160 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 161 + await testRunner.GivenAsync("I create a new Disposition File from row number 2", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 162 + await testRunner.WhenAsync("I add additional information to the Disposition File Details", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 163 + await testRunner.AndAsync("I update the File details from an existing Disposition File from row number 3", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 164 + await testRunner.ThenAsync("A new Disposition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="30._Disposition_Offers_and_Sale_Tab")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "30._Disposition_Offers_and_Sale_Tab")] + public async global::System.Threading.Tasks.Task _30__Disposition_Offers_And_Sale_Tab() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "29"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("30._Disposition_Offers_and_Sale_Tab", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 166 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 167 + await testRunner.GivenAsync("I create a new Disposition File from row number 8", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 168 + await testRunner.WhenAsync("I create Appraisal, Assessment, Offers and Sales Details within a Disposition Fil" + + "e", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 169 + await testRunner.AndAsync("I update Appraisal, Assessment and Offers section within Disposition File from ro" + + "w number 9", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 170 + await testRunner.ThenAsync("A new Disposition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="31._Disposition_File_from_Parcel")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "31._Disposition_File_from_Parcel")] + public async global::System.Threading.Tasks.Task _31__Disposition_File_From_Parcel() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "30"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("31._Disposition_File_from_Parcel", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 172 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 173 + await testRunner.GivenAsync("I create a Disposition File from a pin on map from row number 12", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 174 + await testRunner.ThenAsync("A new Disposition file is created successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="32._Disposition_Files_List_View")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "32._Disposition_Files_List_View")] + public async global::System.Threading.Tasks.Task _32__Disposition_Files_List_View() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "31"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("32._Disposition_Files_List_View", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 176 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 177 + await testRunner.GivenAsync("I search for an existing Disposition File from row number 3", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 178 + await testRunner.ThenAsync("Expected Disposition File Content is displayed on Disposition File List View", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="33._Organization_Contacts")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "33._Organization_Contacts")] + public async global::System.Threading.Tasks.Task _33__Organization_Contacts() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "32"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("33._Organization_Contacts", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 180 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 181 + await testRunner.GivenAsync("I create a new Organization Contact from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 182 + await testRunner.WhenAsync("I update an existing Organization Contact from row number 2", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 183 + await testRunner.AndAsync("I search for an existing contact from type \"Organization\" row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 184 + await testRunner.ThenAsync("Expected Content is displayed on Contacts Table from contact type \"Organization\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="34._Individual_Contacts")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "34._Individual_Contacts")] + public async global::System.Threading.Tasks.Task _34__Individual_Contacts() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "33"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("34._Individual_Contacts", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 186 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 187 + await testRunner.GivenAsync("I create a new Individual Contact from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 188 + await testRunner.WhenAsync("I update an existing Individual Contact from row number 2", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 189 + await testRunner.AndAsync("I search for an existing contact from type \"Individual\" row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 190 + await testRunner.ThenAsync("Expected Content is displayed on Contacts Table from contact type \"Individual\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="35._Contacts_List_View")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "35._Contacts_List_View")] + public async global::System.Threading.Tasks.Task _35__Contacts_List_View() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "34"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("35._Contacts_List_View", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 192 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 193 + await testRunner.GivenAsync("I verify the Contacts List View from row number 1", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 194 + await testRunner.ThenAsync("Expected Content is displayed on Contacts Table from contact type \"Organization\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="36._Properties_List")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "36._Properties_List")] + public async global::System.Threading.Tasks.Task _36__Properties_List() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "35"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("36._Properties_List", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 196 + this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 197 + await testRunner.GivenAsync("I search for a Property in the Properties List by different filters from row numb" + + "er 29", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 198 + await testRunner.ThenAsync("Properties filters works successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="37._Non-Inventory_Property_Information")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "37._Non-Inventory_Property_Information")] + public async global::System.Threading.Tasks.Task _37__Non_Inventory_Property_Information() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "36"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("37._Non-Inventory_Property_Information", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 200 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 201 + await testRunner.GivenAsync("I search for a non MOTI property from row number 6", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 202 + await testRunner.ThenAsync("Non-Inventory property renders correctly", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="38._Invalid_Property_Not_Found")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "38._Invalid_Property_Not_Found")] + public async global::System.Threading.Tasks.Task _38__Invalid_Property_Not_Found() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "37"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("38._Invalid_Property_Not_Found", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 204 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 205 + await testRunner.GivenAsync("I search for an Invalid Property from row number 10", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 206 + await testRunner.ThenAsync("No Properties were found", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="39._Map_Features")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "39._Map_Features")] + public async global::System.Threading.Tasks.Task _39__Map_Features() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "38"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("39._Map_Features", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 208 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 209 + await testRunner.GivenAsync("I verify the Maps Layers", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 210 + await testRunner.ThenAsync("Map Features rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="40._Strata_Properties_Tabs")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "40._Strata_Properties_Tabs")] + public async global::System.Threading.Tasks.Task _40__Strata_Properties_Tabs() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "39"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("40._Strata_Properties_Tabs", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 212 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 213 + await testRunner.GivenAsync("I search for a property by Plan Number from row number 39", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 214 + await testRunner.WhenAsync("I verify the MultiProperty Tabs", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 215 + await testRunner.ThenAsync("Multiproperty property rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="41._Property_Hwy_and_Other_Tabs")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "41._Property_Hwy_and_Other_Tabs")] + public async global::System.Threading.Tasks.Task _41__Property_Hwy_And_Other_Tabs() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "40"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("41._Property_Hwy_and_Other_Tabs", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 217 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 218 + await testRunner.GivenAsync("I search for a property by Plan Number from row number 40", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 219 + await testRunner.WhenAsync("I verify the Highway Tab", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 220 + await testRunner.AndAsync("I verify the Other Tab", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 221 + await testRunner.ThenAsync("Property Tabs rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::Xunit.SkippableFactAttribute(DisplayName="42._Property_PMBC_and_Crown_Tabs")] + [global::Xunit.TraitAttribute("FeatureTitle", "RegressionTesting")] + [global::Xunit.TraitAttribute("Description", "42._Property_PMBC_and_Crown_Tabs")] + public async global::System.Threading.Tasks.Task _42__Property_PMBC_And_Crown_Tabs() + { + string[] tagsOfScenario = ((string[])(null)); + global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); + string pickleIndex = "41"; + global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("42._Property_PMBC_and_Crown_Tabs", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); + string[] tagsOfRule = ((string[])(null)); + global::Reqnroll.RuleInfo ruleInfo = null; +#line 223 +this.ScenarioInitialize(scenarioInfo, ruleInfo); +#line hidden + if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) + { + await testRunner.SkipScenarioAsync(); + } + else + { + await this.ScenarioStartAsync(); +#line 224 + await testRunner.GivenAsync("I search for a property by PID from row number 41", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); +#line hidden +#line 225 + await testRunner.WhenAsync("I verify the PMBC Tab", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); +#line hidden +#line 226 + await testRunner.AndAsync("I verify the Crown Tab", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); +#line hidden +#line 227 + await testRunner.ThenAsync("Property Tabs rendered successfully", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); +#line hidden + } + await this.ScenarioCleanupAsync(); + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class FixtureData : object, global::Xunit.IAsyncLifetime + { + + async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() + { + await RegressionTestingFeature.FeatureSetupAsync(); + } + + async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() + { + await RegressionTestingFeature.FeatureTearDownAsync(); + } + } + } +} +#pragma warning restore +#endregion diff --git a/testing/PIMS.Tests.Automation/PIMS.Tests.Automation.csproj b/testing/PIMS.Tests.Automation/PIMS.Tests.Automation.csproj index 7072b629b0..171576c484 100644 --- a/testing/PIMS.Tests.Automation/PIMS.Tests.Automation.csproj +++ b/testing/PIMS.Tests.Automation/PIMS.Tests.Automation.csproj @@ -22,13 +22,13 @@ - + - - - + + + - + diff --git a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionChecklist.cs b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionChecklist.cs index 8d7d797e90..c1d9caea2a 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionChecklist.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionChecklist.cs @@ -190,7 +190,7 @@ public void EditChecklistButton() public void VerifyChecklistInitViewForm() { - Wait(); + WaitUntilVisible(checklistFileInitiationTitle); AssertTrueIsDisplayed(checklistFileInitiationTitle); AssertTrueIsDisplayed(checklistPreAcquisitionTitleLabel); @@ -521,112 +521,111 @@ public void VerifyChecklistViewForm(AcquisitionFileChecklist checklist) public void UpdateChecklist(AcquisitionFileChecklist checklist) { - Wait(); + WaitUntilVisible(checklistFileInitiationItem1Select); if(checklist.FileInitiationSelect1 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem1Select, checklist.FileInitiationSelect1); + ChooseSelectOption(checklistFileInitiationItem1Select, checklist.FileInitiationSelect1); if (checklist.FileInitiationSelect2 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem2Select, checklist.FileInitiationSelect2); + ChooseSelectOption(checklistFileInitiationItem2Select, checklist.FileInitiationSelect2); if (checklist.FileInitiationSelect3 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem3Select, checklist.FileInitiationSelect3); + ChooseSelectOption(checklistFileInitiationItem3Select, checklist.FileInitiationSelect3); if (checklist.FileInitiationSelect4 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem4Select, checklist.FileInitiationSelect4); + ChooseSelectOption(checklistFileInitiationItem4Select, checklist.FileInitiationSelect4); if (checklist.FileInitiationSelect5 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem5Select, checklist.FileInitiationSelect5); + ChooseSelectOption(checklistFileInitiationItem5Select, checklist.FileInitiationSelect5); if (checklist.ActiveFileManagementSelect1 != "") - ChooseSpecificSelectOption(checklistActiveFileItem1Select, checklist.ActiveFileManagementSelect1); + ChooseSelectOption(checklistActiveFileItem1Select, checklist.ActiveFileManagementSelect1); if (checklist.ActiveFileManagementSelect2 != "") - ChooseSpecificSelectOption(checklistActiveFileItem2Select, checklist.ActiveFileManagementSelect2); + ChooseSelectOption(checklistActiveFileItem2Select, checklist.ActiveFileManagementSelect2); if (checklist.ActiveFileManagementSelect3 != "") - ChooseSpecificSelectOption(checklistActiveFileItem3Select, checklist.ActiveFileManagementSelect3); + ChooseSelectOption(checklistActiveFileItem3Select, checklist.ActiveFileManagementSelect3); if (checklist.ActiveFileManagementSelect4 != "") - ChooseSpecificSelectOption(checklistActiveFileItem4Select, checklist.ActiveFileManagementSelect4); + ChooseSelectOption(checklistActiveFileItem4Select, checklist.ActiveFileManagementSelect4); if (checklist.ActiveFileManagementSelect5 != "") - ChooseSpecificSelectOption(checklistActiveFileItem5Select, checklist.ActiveFileManagementSelect5); + ChooseSelectOption(checklistActiveFileItem5Select, checklist.ActiveFileManagementSelect5); if (checklist.ActiveFileManagementSelect6 != "") - ChooseSpecificSelectOption(checklistActiveFileItem6Select, checklist.ActiveFileManagementSelect6); + ChooseSelectOption(checklistActiveFileItem6Select, checklist.ActiveFileManagementSelect6); if (checklist.ActiveFileManagementSelect7 != "") - ChooseSpecificSelectOption(checklistActiveFileItem7Select, checklist.ActiveFileManagementSelect7); + ChooseSelectOption(checklistActiveFileItem7Select, checklist.ActiveFileManagementSelect7); if (checklist.ActiveFileManagementSelect8 != "") - ChooseSpecificSelectOption(checklistActiveFileItem8Select, checklist.ActiveFileManagementSelect8); + ChooseSelectOption(checklistActiveFileItem8Select, checklist.ActiveFileManagementSelect8); if (checklist.ActiveFileManagementSelect9 != "") - ChooseSpecificSelectOption(checklistActiveFileItem9Select, checklist.ActiveFileManagementSelect9); + ChooseSelectOption(checklistActiveFileItem9Select, checklist.ActiveFileManagementSelect9); if (checklist.ActiveFileManagementSelect10 != "") - ChooseSpecificSelectOption(checklistActiveFileItem10Select, checklist.ActiveFileManagementSelect10); + ChooseSelectOption(checklistActiveFileItem10Select, checklist.ActiveFileManagementSelect10); if (checklist.ActiveFileManagementSelect11 != "") - ChooseSpecificSelectOption(checklistActiveFileItem11Select, checklist.ActiveFileManagementSelect11); + ChooseSelectOption(checklistActiveFileItem11Select, checklist.ActiveFileManagementSelect11); if (checklist.ActiveFileManagementSelect12 != "") - ChooseSpecificSelectOption(checklistActiveFileItem12Select, checklist.ActiveFileManagementSelect12); + ChooseSelectOption(checklistActiveFileItem12Select, checklist.ActiveFileManagementSelect12); if (checklist.ActiveFileManagementSelect13 != "") - ChooseSpecificSelectOption(checklistActiveFileItem13Select, checklist.ActiveFileManagementSelect13); + ChooseSelectOption(checklistActiveFileItem13Select, checklist.ActiveFileManagementSelect13); if (checklist.ActiveFileManagementSelect14 != "") - ChooseSpecificSelectOption(checklistActiveFileItem14Select, checklist.ActiveFileManagementSelect14); + ChooseSelectOption(checklistActiveFileItem14Select, checklist.ActiveFileManagementSelect14); if (checklist.ActiveFileManagementSelect15 != "") - ChooseSpecificSelectOption(checklistActiveFileItem15Select, checklist.ActiveFileManagementSelect15); + ChooseSelectOption(checklistActiveFileItem15Select, checklist.ActiveFileManagementSelect15); if (checklist.ActiveFileManagementSelect16 != "") - ChooseSpecificSelectOption(checklistActiveFileItem16Select, checklist.ActiveFileManagementSelect16); + ChooseSelectOption(checklistActiveFileItem16Select, checklist.ActiveFileManagementSelect16); if (checklist.ActiveFileManagementSelect17 != "") - ChooseSpecificSelectOption(checklistActiveFileItem17Select, checklist.ActiveFileManagementSelect17); + ChooseSelectOption(checklistActiveFileItem17Select, checklist.ActiveFileManagementSelect17); if (checklist.CrownLandSelect1 != "") - ChooseSpecificSelectOption(checklistCrownLandItem1Select, checklist.CrownLandSelect1); + ChooseSelectOption(checklistCrownLandItem1Select, checklist.CrownLandSelect1); if (checklist.CrownLandSelect2 != "") - ChooseSpecificSelectOption(checklistCrownLandItem2Select, checklist.CrownLandSelect2); + ChooseSelectOption(checklistCrownLandItem2Select, checklist.CrownLandSelect2); if (checklist.CrownLandSelect3 != "") - ChooseSpecificSelectOption(checklistCrownLandItem3Select, checklist.CrownLandSelect3); + ChooseSelectOption(checklistCrownLandItem3Select, checklist.CrownLandSelect3); if (checklist.Section3AgreementSelect1 != "") - ChooseSpecificSelectOption(checklistSec3Item1Select, checklist.Section3AgreementSelect1); + ChooseSelectOption(checklistSec3Item1Select, checklist.Section3AgreementSelect1); if (checklist.Section3AgreementSelect2 != "") - ChooseSpecificSelectOption(checklistSec3Item2Select, checklist.Section3AgreementSelect2); + ChooseSelectOption(checklistSec3Item2Select, checklist.Section3AgreementSelect2); if (checklist.Section3AgreementSelect3 != "") - ChooseSpecificSelectOption(checklistSec3Item3Select, checklist.Section3AgreementSelect3); + ChooseSelectOption(checklistSec3Item3Select, checklist.Section3AgreementSelect3); if (checklist.Section3AgreementSelect4 != "") - ChooseSpecificSelectOption(checklistSec3Item4Select, checklist.Section3AgreementSelect4); + ChooseSelectOption(checklistSec3Item4Select, checklist.Section3AgreementSelect4); if (checklist.Section3AgreementSelect5 != "") - ChooseSpecificSelectOption(checklistSec3Item5Select, checklist.Section3AgreementSelect5); + ChooseSelectOption(checklistSec3Item5Select, checklist.Section3AgreementSelect5); if (checklist.Section3AgreementSelect6 != "") - ChooseSpecificSelectOption(checklistSec3Item6Select, checklist.Section3AgreementSelect6); + ChooseSelectOption(checklistSec3Item6Select, checklist.Section3AgreementSelect6); if (checklist.Section3AgreementSelect7 != "") - ChooseSpecificSelectOption(checklistSec3Item7Select, checklist.Section3AgreementSelect7); + ChooseSelectOption(checklistSec3Item7Select, checklist.Section3AgreementSelect7); if (checklist.Section3AgreementSelect8 != "") - ChooseSpecificSelectOption(checklistSec3Item8Select, checklist.Section3AgreementSelect8); + ChooseSelectOption(checklistSec3Item8Select, checklist.Section3AgreementSelect8); if (checklist.Section3AgreementSelect9 != "") - ChooseSpecificSelectOption(checklistSec3Item9Select, checklist.Section3AgreementSelect9); + ChooseSelectOption(checklistSec3Item9Select, checklist.Section3AgreementSelect9); if (checklist.Section6ExpropriationSelect1 != "") - ChooseSpecificSelectOption(checklistSec6Item1Select, checklist.Section6ExpropriationSelect1); + ChooseSelectOption(checklistSec6Item1Select, checklist.Section6ExpropriationSelect1); if (checklist.Section6ExpropriationSelect2 != "") - ChooseSpecificSelectOption(checklistSec6Item2Select, checklist.Section6ExpropriationSelect2); + ChooseSelectOption(checklistSec6Item2Select, checklist.Section6ExpropriationSelect2); if (checklist.Section6ExpropriationSelect3 != "") - ChooseSpecificSelectOption(checklistSec6Item3Select, checklist.Section6ExpropriationSelect3); + ChooseSelectOption(checklistSec6Item3Select, checklist.Section6ExpropriationSelect3); if (checklist.Section6ExpropriationSelect4 != "") - ChooseSpecificSelectOption(checklistSec6Item4Select, checklist.Section6ExpropriationSelect4); + ChooseSelectOption(checklistSec6Item4Select, checklist.Section6ExpropriationSelect4); if (checklist.Section6ExpropriationSelect5 != "") - ChooseSpecificSelectOption(checklistSec6Item5Select, checklist.Section6ExpropriationSelect5); + ChooseSelectOption(checklistSec6Item5Select, checklist.Section6ExpropriationSelect5); if (checklist.Section6ExpropriationSelect6 != "") - ChooseSpecificSelectOption(checklistSec6Item6Select, checklist.Section6ExpropriationSelect6); + ChooseSelectOption(checklistSec6Item6Select, checklist.Section6ExpropriationSelect6); if (checklist.Section6ExpropriationSelect7 != "") - ChooseSpecificSelectOption(checklistSec6Item7Select, checklist.Section6ExpropriationSelect7); + ChooseSelectOption(checklistSec6Item7Select, checklist.Section6ExpropriationSelect7); if (checklist.Section6ExpropriationSelect8 != "") - ChooseSpecificSelectOption(checklistSec6Item8Select, checklist.Section6ExpropriationSelect8); + ChooseSelectOption(checklistSec6Item8Select, checklist.Section6ExpropriationSelect8); if (checklist.Section6ExpropriationSelect9 != "") - ChooseSpecificSelectOption(checklistSec6Item9Select, checklist.Section6ExpropriationSelect9); + ChooseSelectOption(checklistSec6Item9Select, checklist.Section6ExpropriationSelect9); if (checklist.Section6ExpropriationSelect10 != "") - ChooseSpecificSelectOption(checklistSec6Item10Select, checklist.Section6ExpropriationSelect10); + ChooseSelectOption(checklistSec6Item10Select, checklist.Section6ExpropriationSelect10); if (checklist.Section6ExpropriationSelect11 != "") - ChooseSpecificSelectOption(checklistSec6Item11Select, checklist.Section6ExpropriationSelect11); + ChooseSelectOption(checklistSec6Item11Select, checklist.Section6ExpropriationSelect11); if (checklist.Section6ExpropriationSelect12 != "") - ChooseSpecificSelectOption(checklistSec6Item12Select, checklist.Section6ExpropriationSelect12); + ChooseSelectOption(checklistSec6Item12Select, checklist.Section6ExpropriationSelect12); if (checklist.AcquisitionCompletionSelect1 != "") - ChooseSpecificSelectOption(checklistAcqCompletionItem1Select, checklist.AcquisitionCompletionSelect1); + ChooseSelectOption(checklistAcqCompletionItem1Select, checklist.AcquisitionCompletionSelect1); } public void SaveAcquisitionFileChecklist() { - Wait(); ButtonElement("Save"); AssertTrueIsDisplayed(checklistEditBttn); diff --git a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionDetails.cs b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionDetails.cs index 5dfc72afca..b7b7c7fe82 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionDetails.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionDetails.cs @@ -55,13 +55,11 @@ public class AcquisitionDetails : PageObjectBase private readonly By acquisitionFileStatusesSubtitle = By.XPath("//div[contains(text(),'Progress Statuses')]/parent::div/parent::h2"); private readonly By acquisitionFileStatusesFileProgressLabel = By.XPath("//label[contains(text(),'File progress(es)')]"); - private readonly By acquisitionFileStatusesFileProgressContent = By.CssSelector("div[data-testid='prg-file-progress-status'] span[class='chip false disableSelection']"); private readonly By acquisitionFileStatusesFileAppraisalLabel = By.XPath("//label[contains(text(),'Appraisal')]"); private readonly By acquisitionFileStatusesFileAppraisalContent = By.XPath("//label[contains(text(),'Appraisal')]/parent::div/following-sibling::div"); private readonly By acquisitionFileStatusesFileLegalSurveyLabel = By.XPath("//label[contains(text(),'Legal survey')]"); private readonly By acquisitionFileStatusesFileLegalSurveyContent = By.XPath("//label[contains(text(),'Legal survey')]/parent::div/following-sibling::div"); private readonly By acquisitionFileStatusesFileTypeTakingLabel = By.XPath("//label[contains(text(),'Type of taking')]"); - private readonly By acquisitionFileStatusesFileTypeTakingContent = By.CssSelector("div[data-testid='prg-taking-type-status'] span[class='chip false disableSelection']"); private readonly By acquisitionFileStatusesFileExpropriationRiskLabel = By.XPath("//label[contains(text(),'Expropriation risk')]"); private readonly By acquisitionFileStatusesFileExpropriationRiskContent = By.XPath("//label[contains(text(),'Expropriation risk')]/parent::div/following-sibling::div"); @@ -80,7 +78,6 @@ public class AcquisitionDetails : PageObjectBase private readonly By acquisitionFileDetailsNameContent = By.XPath("//label[contains(text(),'Acquisition file name')]/parent::div/following-sibling::div"); private readonly By acquisitionFileHistoricalNumberLabel = By.XPath("//label[contains(text(),'Historical file number')]"); private readonly By acquisitionFileHistoricalNumberTooltip = By.XPath("//label[contains(text(),'Historical file number')]/span/span[@data-testid='tooltip-icon-section-field-tooltip']"); - private readonly By acquisitionFileHistoricalNumberContent = By.XPath("//label[contains(text(),'Historical file number')]/parent::div/following-sibling::div"); private readonly By acquisitionFileDetailsPhysicalFileLabel = By.XPath("//label[contains(text(),'Physical file status')]"); private readonly By acquisitionFileDetailsPhysicalFileContent = By.XPath("//label[contains(text(),'Physical file status')]/parent::div/following-sibling::div"); private readonly By acquisitionFileDetailsPhysicalFileDetailsLabel = By.XPath("//label[contains(text(),'Physical file details')]"); @@ -99,7 +96,8 @@ public class AcquisitionDetails : PageObjectBase private readonly By acquisitionFileSubinterestSubtitle = By.XPath("//div[contains(text(),'Sub-Interest Information')]"); private readonly By acquisitionFileOwnerRepresentativeLabel = By.XPath("//label[contains(text(),'Owner representative')]"); - private readonly By acquisitionFileOwnerCommentLabel = By.XPath("//label[contains(text(),'Comment')]"); + private readonly By acquisitionFileOwnerCommentLabel = By.XPath("//div[text()='Owners']/parent::div/parent::h2/following-sibling::div/div/div/label[text()='Comment']"); + private readonly By acquistionFileOwnerViewCommentLabel = By.XPath("//div[text()='Owner Information']/parent::div/parent::h2/following-sibling::div/div/div/label[text()='Comment']"); //Acquisition File Main Form Input Elements private readonly By acquisitionFileEditButton = By.CssSelector("button[title='Edit acquisition file']"); @@ -113,12 +111,12 @@ public class AcquisitionDetails : PageObjectBase private readonly By acquisitionFileStatusesFileProgressCreateLabel = By.XPath("//label[contains(text(),'File progress')]"); private readonly By acquisitionFileStatusesFileProgressSelect = By.Id("multiselect-progressStatuses_input"); private readonly By acquisitionFileStatusesDeleteBttns = By.CssSelector("div[id='multiselect-progressStatuses'] i[class='custom-close']"); - private readonly By acquisitionFileStatusesOptions = By.XPath("//input[@id='multiselect-progressStatuses_input']/parent::div/following-sibling::div/ul[@class='optionContainer']"); + private readonly By acquisitionFileStatusesOptions = By.XPath("//input[@id='multiselect-progressStatuses_input']/parent::div/following-sibling::div[contains(@class,'optionListContainer')]"); private readonly By acquisitionFileStatusesAppraisalSelect = By.Id("input-appraisalStatusType"); private readonly By acquisitionFileStatusesLegalSurveySelect = By.Id("input-legalSurveyStatusType"); private readonly By acquisitionFileStatusesTypeTakingSelect = By.Id("multiselect-takingStatuses_input"); private readonly By acquisitionFileTypeTakingDeleteBttns = By.CssSelector("div[id='multiselect-takingStatuses'] i[class='custom-close']"); - private readonly By acquisitionFileTypeTakingOptions = By.XPath("//input[@id='multiselect-takingStatuses_input']/parent::div/following-sibling::div/ul[@class='optionContainer']"); + private readonly By acquisitionFileTypeTakingOptions = By.XPath("//input[@id='multiselect-takingStatuses_input']/parent::div/following-sibling::div[contains(@class,'optionListContainer')]"); private readonly By acquisitionFileStatusesExpropriationRiskSelect = By.Id("input-expropiationRiskStatusType"); private readonly By acquisitionFileAssignedDateInput = By.Id("datepicker-assignedDate"); @@ -150,8 +148,8 @@ public class AcquisitionDetails : PageObjectBase private readonly By acquisitionFileOwnerRepresentativeButton = By.XPath("//label[contains(text(),'Owner representative')]/parent::div/following-sibling::div/div/div/div/button[@title='Select Contact']"); private readonly By acquisitionFileOwnerRepresentativeContent = By.XPath("//label[contains(text(),'Owner representative')]/parent::div/following-sibling::div/a/span"); private readonly By acquisitionFileOwnerCommentTextArea = By.Id("input-ownerRepresentative.comment"); + private readonly By acquisitionFileUpdateOwnerCommentTextArea = By.Id("input-ownerRepresentatives.0.comment"); private readonly By acquisitionFileOwnerCommentContent = By.XPath("//label[contains(text(),'Comment')]/parent::div/following-sibling::div"); - private readonly By acquisitionFileOwnerCommentEditTextArea = By.Id("input-ownerRepresentatives.0.comment"); private readonly By acquisitionFileMainFormDiv = By.XPath("//h1[contains(text(),'Create Acquisition File')]/parent::div/parent::div/parent::div/parent::div"); private readonly By acquisitionFileNoticeClaimSubtitle = By.XPath("//h2/div/div[contains(text(),'Notice of Claim')]"); @@ -192,18 +190,18 @@ public AcquisitionDetails(IWebDriver webDriver) : base(webDriver) public void NavigateToCreateNewAcquisitionFile() { - Wait(); + WaitUntilClickable(menuAcquisitionButton); FocusAndClick(menuAcquisitionButton); - Wait(); + WaitUntilClickable(createAcquisitionFileButton); FocusAndClick(createAcquisitionFileButton); } public void NavigateToFileSummary() { - Wait(); + WaitUntilClickable(acquisitionFileSummaryBttn); if (webDriver.FindElements(acquisitionFileSummaryBttn).Count() > 0) - FocusAndClick(acquisitionFileSummaryBttn); + SafeClick(acquisitionFileSummaryBttn); } public void NavigateToFileDetailsTab() @@ -220,12 +218,12 @@ public void NavigateToSubfilesTab() public void CreateMinimumAcquisitionFile(AcquisitionFile acquisition) { - Wait(); + WaitUntilVisible(acquisitionFileNameInput); webDriver.FindElement(acquisitionFileNameInput).SendKeys(acquisition.AcquisitionFileName); webDriver.FindElement(acquisitionFileDetailsTypeSelect); - ChooseSpecificSelectOption(acquisitionFileDetailsTypeSelect, acquisition.AcquisitionType); - ChooseSpecificSelectOption(acquisitionFileDetailsRegionSelect, acquisition.AcquisitionMOTIRegion); + ChooseSelectOption(acquisitionFileDetailsTypeSelect, acquisition.AcquisitionType); + ChooseSelectOption(acquisitionFileDetailsRegionSelect, acquisition.AcquisitionMOTIRegion); } public void EditAcquisitionFileBttn() @@ -246,7 +244,7 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio if (acquisition.AcquisitionStatus != "" && acquisitionType == "Main") { WaitUntilClickable(acquisitionFileStatusSelect); - ChooseSpecificSelectOption(acquisitionFileStatusSelect, acquisition.AcquisitionStatus); + ChooseSelectOption(acquisitionFileStatusSelect, acquisition.AcquisitionStatus); } //PROJECT @@ -254,7 +252,7 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio { WaitUntilVisible(acquisitionFileProjectInput); - if(webDriver.FindElements(acquisitionFileProjectDelete).Count >= 1) + if (webDriver.FindElements(acquisitionFileProjectDelete).Count >= 1) webDriver.FindElement(acquisitionFileProjectDelete).Click(); webDriver.FindElement(acquisitionFileProjectInput).SendKeys(acquisition.AcquisitionProject); @@ -270,14 +268,14 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio WaitUntilClickable(acquisitionFileProjectProductSelect); webDriver.FindElement(acquisitionFileProjectProductSelect).Click(); - Wait(2000); - ChooseSpecificSelectOption(acquisitionFileProjectProductSelect, acquisition.AcquisitionProjProductCode + " " + acquisition.AcquisitionProjProduct); + WaitUntilClickable(acquisitionFileProjectProductSelect); + ChooseSelectOption(acquisitionFileProjectProductSelect, acquisition.AcquisitionProjProductCode + " " + acquisition.AcquisitionProjProduct); } if (acquisition.AcquisitionProjFunding != "") { WaitUntilClickable(acquisitionFileProjectFundingInput); - ChooseSpecificSelectOption(acquisitionFileProjectFundingInput, acquisition.AcquisitionProjFunding); + ChooseSelectOption(acquisitionFileProjectFundingInput, acquisition.AcquisitionProjFunding); } if (webDriver.FindElements(acquisitionFileProjectOtherFundingLabel).Count > 0 && acquisition.AcquisitionFundingOther != "") @@ -291,7 +289,7 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio //Delete File Progress statuses previously selected if any if (webDriver.FindElements(acquisitionFileStatusesDeleteBttns).Count > 0) { - Wait(); + WaitUntilClickable(acquisitionFileStatusesFileProgressSelect); FocusAndClick(acquisitionFileStatusesFileProgressSelect); while (webDriver.FindElements(acquisitionFileStatusesDeleteBttns).Count > 0) { @@ -304,29 +302,19 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio if (acquisition.AcquisitionFileProgressStatuses.First() != "") { foreach (string status in acquisition.AcquisitionFileProgressStatuses) - { - Wait(2000); - webDriver.FindElement(acquisitionFileStatusesFileProgressCreateLabel).Click(); - FocusAndClick(acquisitionFileStatusesFileProgressSelect); - - WaitUntilClickable(acquisitionFileStatusesOptions); - ChooseMultiSelectSpecificOption(acquisitionFileStatusesOptions, status); - webDriver.FindElement(acquisitionFileStatusesFileProgressCreateLabel).Click(); - } - - webDriver.FindElement(acquisitionFileStatusesFileProgressCreateLabel).Click(); + ChooseMultiSelectOption(acquisitionFileStatusesFileProgressSelect, acquisitionFileStatusesOptions, acquisitionFileStatusesFileProgressCreateLabel, status); } - if(acquisition.AcquisitionAppraisalStatus != "") - ChooseSpecificSelectOption(acquisitionFileStatusesAppraisalSelect, acquisition.AcquisitionAppraisalStatus); + if (acquisition.AcquisitionAppraisalStatus != "") + ChooseSelectOption(acquisitionFileStatusesAppraisalSelect, acquisition.AcquisitionAppraisalStatus); - if(acquisition.AcquisitionLegalSurveyStatus != "") - ChooseSpecificSelectOption(acquisitionFileStatusesLegalSurveySelect, acquisition.AcquisitionLegalSurveyStatus); + if (acquisition.AcquisitionLegalSurveyStatus != "") + ChooseSelectOption(acquisitionFileStatusesLegalSurveySelect, acquisition.AcquisitionLegalSurveyStatus); //Delete Type of Taking statuses previously selected if any if (webDriver.FindElements(acquisitionFileTypeTakingDeleteBttns).Count > 0) { - Wait(); + WaitUntilClickable(acquisitionFileStatusesTypeTakingSelect); FocusAndClick(acquisitionFileStatusesTypeTakingSelect); while (webDriver.FindElements(acquisitionFileTypeTakingDeleteBttns).Count > 0) { @@ -338,22 +326,12 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio if (acquisition.AcquisitionTypeTakingStatuses.First() != "") { - foreach (string status in acquisition.AcquisitionTypeTakingStatuses) - { - Wait(2000); - webDriver.FindElement(acquisitionFileStatusesFileTypeTakingLabel).Click(); - FocusAndClick(acquisitionFileStatusesTypeTakingSelect); - - WaitUntilClickable(acquisitionFileTypeTakingOptions); - ChooseMultiSelectSpecificOption(acquisitionFileTypeTakingOptions, status); - webDriver.FindElement(acquisitionFileStatusesFileTypeTakingLabel).Click(); - } - - webDriver.FindElement(acquisitionFileStatusesFileTypeTakingLabel).Click(); + foreach (string status in acquisition.AcquisitionTypeTakingStatuses) + ChooseMultiSelectOption(acquisitionFileStatusesTypeTakingSelect, acquisitionFileTypeTakingOptions, acquisitionFileStatusesFileTypeTakingLabel, status); } if (acquisition.AcquisitionExpropriationRiskStatus != "") - ChooseSpecificSelectOption(acquisitionFileStatusesExpropriationRiskSelect, acquisition.AcquisitionExpropriationRiskStatus); + ChooseSelectOption(acquisitionFileStatusesExpropriationRiskSelect, acquisition.AcquisitionExpropriationRiskStatus); //SCHEDULE if (acquisition.AcquisitionAssignedDate != "") @@ -404,22 +382,22 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio } if (acquisition.PhysicalFileStatus != "") - ChooseSpecificSelectOption(acquisitionFilePhysicalStatusSelect, acquisition.PhysicalFileStatus); + ChooseSelectOption(acquisitionFilePhysicalStatusSelect, acquisition.PhysicalFileStatus); if (acquisition.PhysicalFileDetails != "") { ClearInput(acquisitionFilePhysicalDetailsInput); webDriver.FindElement(acquisitionFilePhysicalDetailsInput).SendKeys(acquisition.PhysicalFileDetails); } - + if (acquisition.AcquisitionType != "") { WaitUntilClickable(acquisitionFileDetailsTypeSelect); - ChooseSpecificSelectOption(acquisitionFileDetailsTypeSelect, acquisition.AcquisitionType); + ChooseSelectOption(acquisitionFileDetailsTypeSelect, acquisition.AcquisitionType); } if (acquisition.AcquisitionSubfileInterest != "" && acquisitionType == "Subfile") - ChooseSpecificSelectOption(acquisitionFileDetailsSubfileInterestSelect, acquisition.AcquisitionSubfileInterest); + ChooseSelectOption(acquisitionFileDetailsSubfileInterestSelect, acquisition.AcquisitionSubfileInterest); if (acquisition.AcquisitionSubfileInterestOther != "" && acquisitionType == "Subfile") { @@ -430,7 +408,7 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio if (acquisition.AcquisitionMOTIRegion != "") { WaitUntilClickable(acquisitionFileDetailsRegionSelect); - ChooseSpecificSelectOption(acquisitionFileDetailsRegionSelect, acquisition.AcquisitionMOTIRegion); + ChooseSelectOption(acquisitionFileDetailsRegionSelect, acquisition.AcquisitionMOTIRegion); } //TEAM @@ -441,7 +419,7 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio for (var i = 0; i < acquisition.AcquisitionTeam.Count; i++) sharedTeams.AddTeamMembers(acquisition.AcquisitionTeam[i]); - + } //OWNERS @@ -463,14 +441,14 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio if (acquisition.OwnerRepresentative != "" && acquisitionType == "Main") { - Wait(); + WaitUntilClickable(acquisitionFileOwnerRepresentativeButton); webDriver.FindElement(acquisitionFileOwnerRepresentativeButton).Click(); sharedSelectContact.SelectContact(acquisition.OwnerRepresentative, ""); } if (acquisition.OwnerSolicitor != "" && acquisitionType == "Subfile") { - Wait(); + WaitUntilClickable(acquisitionSubfileOwnerSolicitorButton); webDriver.FindElement(acquisitionSubfileOwnerSolicitorButton).Click(); sharedSelectContact.SelectContact(acquisition.OwnerSolicitor, ""); } @@ -485,19 +463,18 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio if (acquisition.OwnerComment != "") { Wait(); - - if (webDriver.FindElements(acquisitionFileOwnerCommentEditTextArea).Count > 0) + if (webDriver.FindElements(acquisitionFileOwnerCommentTextArea).Count > 0) { - ClearInput(acquisitionFileOwnerCommentEditTextArea); - webDriver.FindElement(acquisitionFileOwnerCommentEditTextArea).SendKeys(acquisition.OwnerComment); + ClearInput(acquisitionFileOwnerCommentTextArea); + webDriver.FindElement(acquisitionFileOwnerCommentTextArea).SendKeys(acquisition.OwnerComment); } else { - ClearInput(acquisitionFileOwnerCommentTextArea); - webDriver.FindElement(acquisitionFileOwnerCommentTextArea).SendKeys(acquisition.OwnerComment); + ClearInput(acquisitionFileUpdateOwnerCommentTextArea); + webDriver.FindElement(acquisitionFileUpdateOwnerCommentTextArea).SendKeys(acquisition.OwnerComment); } } - + //NOTICE OF CLAIMS AssertTrueIsDisplayed(acquisitionFileNoticeClaimSubtitle); @@ -520,7 +497,6 @@ public void UpdateAcquisitionFile(AcquisitionFile acquisition, string acquisitio public void SaveAcquisitionFileDetails() { - Wait(); ButtonElement("Save"); Wait(); @@ -532,7 +508,6 @@ public void SaveAcquisitionFileDetails() Assert.Contains("The selected Ministry region is different from that associated to one or more selected properties", sharedModals.ModalContent()); Assert.Contains("Do you want to proceed?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - Wait(); } else if (sharedModals.ModalContent().Contains("The selected property already exists in the system's inventory.")) @@ -541,8 +516,7 @@ public void SaveAcquisitionFileDetails() Assert.Contains("The selected property already exists in the system's inventory. However, the record is missing spatial details.", sharedModals.ModalContent()); Assert.Contains("To add the property, the spatial details for this property will need to be updated. The system will attempt to update the property record with spatial information from the current selection.", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - - Wait(); + Wait(); } else if (sharedModals.ModalContent().Contains("This change will be reflected on other related entities - generated documents, sub-files, etc.")) { @@ -550,22 +524,24 @@ public void SaveAcquisitionFileDetails() Assert.Contains("This change will be reflected on other related entities - generated documents, sub-files, etc.", sharedModals.ModalContent()); Assert.Contains("Do you want to proceed?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - Wait(); } else if (sharedModals.ModalHeader().Contains("Error")) { return; } + else + { + sharedModals.ModalClickOKBttn(); + } } } public void SaveAcquisitionFileDetailsWithExpectedErrors() { - Wait(5000); ButtonElement("Save"); - Wait(); + WaitUntilVisible(acquisitionFileConfirmationModal); while (webDriver.FindElements(acquisitionFileConfirmationModal).Count() > 0) { if (sharedModals.ModalHeader().Contains("Error")) @@ -577,7 +553,6 @@ public void SaveAcquisitionFileDetailsWithExpectedErrors() public void CancelAcquisitionFile() { - Wait(); ButtonElement("Cancel"); sharedModals.CancelActionModal(); @@ -585,7 +560,7 @@ public void CancelAcquisitionFile() public string GetAcquisitionFileCode() { - Wait(4000); + WaitUntilVisible(acquisitionFileHeaderCodeContent); var totalFileName = webDriver.FindElement(acquisitionFileHeaderCodeContent).Text; return Regex.Match(totalFileName, "^[^ ]+").Value; @@ -593,7 +568,7 @@ public string GetAcquisitionFileCode() public string GetLinkedFilesCode() { - Wait(); + WaitUntilVisible(acquisitionSubfileCreateTableLinkedFilesCode); return webDriver.FindElement(acquisitionSubfileCreateTableLinkedFilesCode).Text; } @@ -604,7 +579,7 @@ public int IsCreateAcquisitionFileFormVisible() public void VerifyAcquisitionFileView(AcquisitionFile acquisition, string acquisitionType) { - Wait(); + WaitUntilVisible(acquisitionFileHeaderCodeLabel); //Header AssertTrueIsDisplayed(acquisitionFileHeaderCodeLabel); @@ -802,7 +777,10 @@ public void VerifyAcquisitionFileView(AcquisitionFile acquisition, string acquis AssertTrueContentEquals(acquisitionSubfileOwnerRepresentativeContent, acquisition.OwnerRepresentative); if (acquisition.OwnerComment != "") + { + AssertTrueIsDisplayed(acquistionFileOwnerViewCommentLabel); AssertTrueContentEquals(acquisitionFileOwnerCommentContent, acquisition.OwnerComment); + } //NOTICE OF CLAIMS AssertTrueIsDisplayed(acquisitionFileNoticeClaimSubtitle); @@ -820,7 +798,7 @@ public void VerifyAcquisitionFileView(AcquisitionFile acquisition, string acquis public void VerifyAcquisitionFileCreate(string acquisitionType) { - Wait(5000); + WaitUntilVisible(acquisitionFileProjectFundingInput); //if (acquisitionType == "Main") // AssertTrueIsDisplayed(acquisitionFileTitle); @@ -897,6 +875,7 @@ public void VerifyAcquisitionFileCreate(string acquisitionType) AssertTrueIsDisplayed(acquisitionSubfileOwnerRepresentativeLabel); AssertTrueIsDisplayed(acquisitionSubfileOwnerRepresentativeButton); } + AssertTrueIsDisplayed(acquisitionFileOwnerCommentLabel); AssertTrueIsDisplayed(acquisitionFileOwnerCommentTextArea); //Notice of Claims @@ -950,12 +929,11 @@ public void VerifyErrorCannotCompleteInProgressTakes() private void AddOwners(AcquisitionOwner owner, int ownerIndex) { WaitUntilClickable(acquisitionFileAddOwnerLink); - FocusAndClick(acquisitionFileAddOwnerLink); + SafeClick(acquisitionFileAddOwnerLink); - Wait(); if (owner.OwnerContactType.Equals("Individual")) { - FocusAndClick(By.CssSelector("input[data-testid='radio-owners["+ ownerIndex +"].isorganization-individual']")); + SafeClick(By.CssSelector("input[data-testid='radio-owners["+ ownerIndex +"].isorganization-individual']")); if (owner.OwnerGivenNames != "") webDriver.FindElement(By.Id("input-owners["+ ownerIndex +"].givenName")).SendKeys(owner.OwnerGivenNames); @@ -966,7 +944,7 @@ private void AddOwners(AcquisitionOwner owner, int ownerIndex) } else { - FocusAndClick(By.CssSelector("input[data-testid='radio-owners["+ ownerIndex +"].isorganization-corporation']")); + SafeClick(By.CssSelector("input[data-testid='radio-owners["+ ownerIndex +"].isorganization-corporation']")); if (owner.OwnerCorporationName != "") webDriver.FindElement(By.Id("input-owners["+ ownerIndex +"].lastNameAndCorpName")).SendKeys(owner.OwnerCorporationName); @@ -994,7 +972,7 @@ private void AddOwners(AcquisitionOwner owner, int ownerIndex) webDriver.FindElement(By.Id("input-owners["+ ownerIndex +"].address.streetAddress3")).SendKeys(owner.OwnerMailAddress.AddressLine3); } if (owner.OwnerMailAddress.Country != "") - ChooseSpecificSelectOption(By.Id("input-owners["+ ownerIndex +"].address.countryId"), owner.OwnerMailAddress.Country); + ChooseSelectOption(By.Id("input-owners["+ ownerIndex +"].address.countryId"), owner.OwnerMailAddress.Country); if (owner.OwnerMailAddress.City != "") webDriver.FindElement(By.Id("input-owners["+ ownerIndex +"].address.municipality")).SendKeys(owner.OwnerMailAddress.City); if (owner.OwnerMailAddress.Province != "") diff --git a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionExpropriation.cs b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionExpropriation.cs index 9b21ab37a2..cd54ecb8ad 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionExpropriation.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionExpropriation.cs @@ -106,7 +106,7 @@ public AcquisitionExpropriation(IWebDriver webDriver) : base(webDriver) public void NavigateToExpropriationTab() { - Wait(); + WaitUntilClickable(expropriationTab); webDriver.FindElement(expropriationTab).Click(); } @@ -127,9 +127,7 @@ public void AddForm8Button() public void EditNthHistoryDateButton(int index) { WaitUntilSpinnerDisappear(); - - WaitUntilClickable(By.XPath("//div[@data-testid='expropriationHistoryTable']/div[@class='tbody']/div[1]/div/div[4]/div/button[@data-testid='edit-expropriation-event-"+ index +"']")); - webDriver.FindElement(By.XPath("//div[@data-testid='expropriationHistoryTable']/div[@class='tbody']/div[1]/div/div[4]/div/button[@data-testid='edit-expropriation-event-"+ index +"']")).Click(); + SafeClick(By.XPath("//div[@data-testid='expropriationHistoryTable']/div[@class='tbody']/div[1]/div/div[4]/div/button[@data-testid='edit-expropriation-event-"+ index +"']")); } public void DeleteNthHistoryDate(int index) @@ -152,17 +150,13 @@ public void DeleteNthHistoryDate(int index) public void EditNthForm8Button(int index) { WaitUntilSpinnerDisappear(); - - WaitUntilClickable(By.CssSelector("button[data-testid='form8["+ index +"].edit-form8']")); - webDriver.FindElement(By.CssSelector("button[data-testid='form8["+ index +"].edit-form8']")).Click(); + SafeClick(By.CssSelector("button[data-testid='form8["+ index +"].edit-form8']")); } public void DeleteNthForm8(int index) { WaitUntilSpinnerDisappear(); - - WaitUntilClickable(By.CssSelector("button[data-testid='form8["+ index +"].delete-form8']")); - webDriver.FindElement(By.CssSelector("button[data-testid='form8["+ index +"].delete-form8']")).Click(); + SafeClick(By.CssSelector("button[data-testid='form8["+ index +"].delete-form8']")); if (webDriver.FindElements(acquisitionFileConfirmationModal).Count() > 0) { @@ -188,29 +182,26 @@ public void DeleteFirstPayment() public void SaveExpropriation() { - Wait(); ButtonElement("Save"); } public void CancelExpropriation() { - Wait(); ButtonElement("Cancel"); - sharedModals.CancelActionModal(); } public void CancelExpropriationHistoryDate() { - Wait(); + WaitUntilClickable(expropriationHistoryAddEventModalCancelBttn); webDriver.FindElement(expropriationHistoryAddEventModalCancelBttn).Click(); } public void CreateUpdateExpropriationDateHistory(AcquisitionExpropriationDateHistory history) { - Wait(); - ChooseSpecificSelectOption(expropriationHistoryAddEventModalOwnerSelect, history.ExpropriationDateHistoryOwner); - ChooseSpecificSelectOption(expropriationHistoryAddEventModalEventSelect, history.ExpropriationDateHistoryEvent); + WaitUntilClickable(expropriationHistoryAddEventModalOwnerSelect); + ChooseSelectOption(expropriationHistoryAddEventModalOwnerSelect, history.ExpropriationDateHistoryOwner); + ChooseSelectOption(expropriationHistoryAddEventModalEventSelect, history.ExpropriationDateHistoryEvent); if (history.ExpropriationDateHistoryDate != "") { @@ -222,9 +213,9 @@ public void CreateUpdateExpropriationDateHistory(AcquisitionExpropriationDateHis public void CreateForm8(AcquisitionExpropriationForm8 expropriation) { - Wait(); + WaitUntilClickable(form8PayeeSelect); - ChooseSpecificSelectOption(form8PayeeSelect, expropriation.Form8Payee); + ChooseSelectOption(form8PayeeSelect, expropriation.Form8Payee); webDriver.FindElement(form8ExpAuthorityContactBttn).Click(); sharedSelectContact.SelectContact(expropriation.Form8ExpropriationAuthority!, ""); @@ -247,7 +238,7 @@ public void UpdateForm8(AcquisitionExpropriationForm8 expropriation) { WaitUntilSpinnerDisappear(); - ChooseSpecificSelectOption(form8PayeeSelect, expropriation.Form8Payee); + ChooseSelectOption(form8PayeeSelect, expropriation.Form8Payee); webDriver.FindElement(form8ExpAuthorityContactBttn).Click(); sharedSelectContact.SelectContact(expropriation.Form8ExpropriationAuthority, ""); @@ -283,7 +274,7 @@ public int TotalExpropriationCount() public void VerifyExpropriationDateHistoryModalForm() { - Wait(); + WaitUntilVisible(expropriationHistoryAddEventModalHeader); AssertTrueIsDisplayed(expropriationHistoryAddEventModalHeader); AssertTrueIsDisplayed(expropriationHistoryAddEventModalOwnerLabel); @@ -315,7 +306,7 @@ public void VerifyCreatedExpropriationDateHistory(AcquisitionExpropriationDateHi public void VerifySection3InitExpropriationTab() { - Wait(); + WaitUntilClickable(expropriationDateHistoryOpenTable); //Expropriation Date History webDriver.FindElement(expropriationDateHistoryOpenTable).Click(); @@ -338,7 +329,7 @@ public void VerifySection3InitExpropriationTab() public void VerifySection6InitExpropriationTab() { - Wait(); + WaitUntilClickable(expropriationDateHistoryOpenTable); //Expropriation Date History webDriver.FindElement(expropriationDateHistoryOpenTable).Click(); @@ -404,7 +395,7 @@ public void VerifySection6InitExpropriationTab() public void VerifyInitCreateForm8() { - Wait(); + WaitUntilVisible(form8CreateTitle); AssertTrueIsDisplayed(form8CreateTitle); AssertTrueIsDisplayed(form8PayeeLabel); @@ -465,12 +456,12 @@ private void AddPayments(ExpropriationPayment payment, int index) webDriver.FindElement(form8PaymentAddBttn).Click(); WaitUntilVisible(By.Id("input-paymentItems["+ index +"].paymentItemTypeCode")); - ChooseSpecificSelectOption(By.Id("input-paymentItems["+ index +"].paymentItemTypeCode"), payment.ExpPaymentItem); + ChooseSelectOption(By.Id("input-paymentItems["+ index +"].paymentItemTypeCode"), payment.ExpPaymentItem); ClearInput(By.Id("input-paymentItems["+ index +"].pretaxAmount")); webDriver.FindElement(By.Id("input-paymentItems["+ index +"].pretaxAmount")).SendKeys(payment.ExpPaymentAmount); - ChooseSpecificSelectOption(By.Id("input-paymentItems["+ index +"].isGstRequired"), payment.ExpPaymentGSTApplicable); + ChooseSelectOption(By.Id("input-paymentItems["+ index +"].isGstRequired"), payment.ExpPaymentGSTApplicable); if(webDriver.FindElements(By.Id("input-paymentItems["+ index +"].taxAmount")).Count > 0) AssertTrueElementValueEquals(By.Id("input-paymentItems["+ index +"].taxAmount"), TransformCurrencyFormat(payment.ExpPaymentGSTAmount)); diff --git a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionStakeholders.cs b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionStakeholders.cs index af0db9a7bb..6f7a214851 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionStakeholders.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionStakeholders.cs @@ -44,13 +44,13 @@ public AcquisitionStakeholders(IWebDriver webDriver) : base(webDriver) public void NavigateStakeholderTab() { - Wait(2000); + WaitUntilClickable(stakeholderLinkTab); webDriver.FindElement(stakeholderLinkTab).Click(); } public void EditStakeholderInterestsButton() { - Wait(); + WaitUntilClickable(stakeholderInterestsEditBttn); webDriver.FindElement(stakeholderInterestsEditBttn).Click(); } @@ -68,16 +68,14 @@ public void AddNonInterestStakeholderButton() public void SaveAcquisitionFileStakeholder() { - Wait(); ButtonElement("Save"); - Wait(4000); + WaitUntilVisible(stakeholderInterestsEditBttn); AssertTrueIsDisplayed(stakeholderInterestsEditBttn); } public void CancelAcquisitionFileStakeholder() { - Wait(); ButtonElement("Cancel"); sharedModals.CancelActionModal(); @@ -100,14 +98,14 @@ public void CreateInterestsStakeholder(AcquisitionStakeholder interest, int inde //If Primary Contact has to be selected, choose one from the select field Wait(); if (webDriver.FindElements(By.CssSelector("select[id='input-interestHolders."+ index +".primaryContactId']")).Count > 0) - ChooseSpecificSelectOption(By.CssSelector("select[id='input-interestHolders."+ index +".primaryContactId']"), interest.PrimaryContact); + ChooseSelectOption(By.CssSelector("select[id='input-interestHolders."+ index +".primaryContactId']"), interest.PrimaryContact); //Interest Type label AssertTrueIsDisplayed(By.XPath("//select[@id='input-interestHolders."+ index +".propertyInterestTypeCode']/parent::div/parent::div/preceding-sibling::div/label[contains(text(),'Interest type')]")); //Select Interest Type if(interest.InterestType != "") - ChooseSpecificSelectOption(By.Id("input-interestHolders."+ index +".propertyInterestTypeCode"), interest.InterestType); + ChooseSelectOption(By.Id("input-interestHolders."+ index +".propertyInterestTypeCode"), interest.InterestType); //Impacted Properties AssertTrueIsDisplayed(By.XPath("//select[@id='input-interestHolders."+ index +".propertyInterestTypeCode']/parent::div/parent::div/parent::div/following-sibling::div/div/label[contains(text(),'Impacted properties')]")); @@ -127,7 +125,6 @@ public void CreateNonInterestsStakeholder(AcquisitionStakeholder noninterest, in public void DeleteLastInterestHolder() { - Wait(); var lastInterestHoldersIndex = webDriver.FindElements(stakeholderInterestTotalCount).Count -1; EditStakeholderInterestsButton(); @@ -136,7 +133,6 @@ public void DeleteLastInterestHolder() public void DeleteLastNonInterestHolder() { - Wait(); var lastNonInterestHoldersIndex = webDriver.FindElements(stakeholderNonInterestTotalCount).Count -1; EditStakeholderInterestsButton(); @@ -145,7 +141,7 @@ public void DeleteLastNonInterestHolder() public void VerifyStakeholdersInitView() { - Wait(); + WaitUntilVisible(stakeholderInterestsEditBttn); AssertTrueIsDisplayed(stakeholderInterestsEditBttn); AssertTrueIsDisplayed(stakeholderInterestsSubtitle); @@ -172,12 +168,11 @@ public void VerifyStakeholderInitEditForm() public void VerifyInterestStakeholderViewForm(AcquisitionStakeholder interest) { - Wait(); + WaitUntilVisible(stakeholderInterestsSubtitle); AssertTrueIsDisplayed(stakeholderInterestsSubtitle); AssertTrueIsDisplayed(stakeholderInterestsEditBttn); AssertTrueIsDisplayed(stakeholderInterestTable); - Wait(); var lastStakeholder = webDriver.FindElements(stakeholderInterestTotalCount).Count(); AssertTrueContentEquals(By.XPath("//div[contains(text(),'Interests')]/parent::div/parent::h2/following-sibling::div/div[@data-testid='interest-holders-by-property-table']/div[@class='tbody']/div[@class='tr-wrapper']["+ lastStakeholder +"]/div/div[1]/a"), interest.InterestHolder); AssertTrueContentEquals(By.XPath("//div[contains(text(),'Interests')]/parent::div/parent::h2/following-sibling::div/div[@data-testid='interest-holders-by-property-table']/div[@class='tbody']/div[@class='tr-wrapper']["+ lastStakeholder +"]/div/div[2]"), interest.PrimaryContact); @@ -186,7 +181,7 @@ public void VerifyInterestStakeholderViewForm(AcquisitionStakeholder interest) public void VerifyNonInterestStakeholderViewForm(AcquisitionStakeholder interest) { - Wait(); + WaitUntilVisible(stakeholderNonInterestsSubtitle); AssertTrueIsDisplayed(stakeholderNonInterestsSubtitle); AssertTrueIsDisplayed(stakeholderInterestsEditBttn); AssertTrueIsDisplayed(stakeholderNonInterestTable); @@ -198,13 +193,13 @@ public void VerifyNonInterestStakeholderViewForm(AcquisitionStakeholder interest public int TotalInterestHolders() { - Wait(); + WaitUntilVisible(stakeholderInterestTotalCount); return webDriver.FindElements(stakeholderInterestTotalCount).Count(); } public int TotalNonInterestHolders() { - Wait(); + WaitUntilVisible(stakeholderNonInterestTotalCount); return webDriver.FindElements(stakeholderNonInterestTotalCount).Count(); } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionTakes.cs b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionTakes.cs index ac69db6257..c62cbb2caf 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/AcquisitionTakes.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/AcquisitionTakes.cs @@ -94,7 +94,7 @@ public AcquisitionTakes(IWebDriver webDriver) : base(webDriver) public void NavigateTakesTab() { - Wait(); + WaitUntilClickable(takesTabLink); webDriver.FindElement(takesTabLink).Click(); } @@ -110,14 +110,12 @@ public void ClickEditTakesButton(int index) By editButton = By.CssSelector("div[data-testid='take-" + index + "'] button[data-testid='edit-button']"); WaitUntilSpinnerDisappear(); - WaitUntilClickable(editButton); - webDriver.FindElement(editButton).Click(); + SafeClick(editButton); } public void SaveTake() { ButtonElement("Save"); - Wait(); } public void CancelTake() @@ -132,10 +130,10 @@ public void InsertTake(Take take) //Takes Details if (take.TakeType != "") - ChooseSpecificSelectOption(takeTypeSelect, take.TakeType); + ChooseSelectOption(takeTypeSelect, take.TakeType); if (take.TakeStatus != "") - ChooseSpecificSelectOption(takeStatusSelect, take.TakeStatus); + ChooseSelectOption(takeStatusSelect, take.TakeStatus); if (take.TakeCompleteDate != "") { @@ -144,7 +142,7 @@ public void InsertTake(Take take) } if (take.SiteContamination != "") - ChooseSpecificSelectOption(takeSiteContaminationSelect, take.SiteContamination); + ChooseSelectOption(takeSiteContaminationSelect, take.SiteContamination); if (take.TakeDescription != "") { @@ -154,7 +152,7 @@ public void InsertTake(Take take) //Areas //New Highway Dedication - ChooseSpecificRadioButton(takeRightOfWayRadioBttnGroup, take.IsNewHighwayDedication); + ChooseRadioButton(takeRightOfWayRadioBttnGroup, take.IsNewHighwayDedication); Wait(); if (webDriver.FindElements(acquisitionFileConfirmationModal).Count() > 0) @@ -170,16 +168,17 @@ public void InsertTake(Take take) ClearDigitsInput(takeRightOfWaySqMetresInput); webDriver.FindElement(takeRightOfWaySqMetresInput).SendKeys(take.IsNewHighwayDedicationArea); + Wait(); AssertTrueDoublesEquals(takeRightOfWayHectaresInput, TransformSqMtToHectares(take.IsNewHighwayDedicationArea)); AssertTrueDoublesEquals(takeRightOfWaySqFeetInput, TransformSqMtToSqFt(take.IsNewHighwayDedicationArea)); AssertTrueDoublesEquals(takeRightOfWayAcresInput, TransformSqMtToAcres(take.IsNewHighwayDedicationArea)); } //MOTI Inventory - ChooseSpecificRadioButton(takeMOTIInventoryBttnGroup, take.IsMotiInventory); + ChooseRadioButton(takeMOTIInventoryBttnGroup, take.IsMotiInventory); //New Registered Interest in Land - ChooseSpecificRadioButton(takeSRWRadioBttnGroup, take.IsNewInterestLand); + ChooseRadioButton(takeSRWRadioBttnGroup, take.IsNewInterestLand); Wait(); if (webDriver.FindElements(acquisitionFileConfirmationModal).Count() > 0) @@ -205,7 +204,7 @@ public void InsertTake(Take take) } //Land Act Tenure - ChooseSpecificRadioButton(takeLandActRadioBttnGroup, take.IsLandActTenure); + ChooseRadioButton(takeLandActRadioBttnGroup, take.IsLandActTenure); Wait(); if (webDriver.FindElements(acquisitionFileConfirmationModal).Count() > 0) @@ -218,7 +217,7 @@ public void InsertTake(Take take) if (take.IsLandActTenure.Equals("true")) { - ChooseSpecificSelectOption(takeLandActTypeSelect, take.IsLandActTenureDetail); + ChooseSelectOption(takeLandActTypeSelect, take.IsLandActTenureDetail); if (take.IsLandActTenureArea != "") { @@ -239,7 +238,7 @@ public void InsertTake(Take take) } //License to Construct - ChooseSpecificRadioButton(takeLicenseConstructRadioBttnGroup, take.IsLicenseConstruct); + ChooseRadioButton(takeLicenseConstructRadioBttnGroup, take.IsLicenseConstruct); Wait(); if (webDriver.FindElements(acquisitionFileConfirmationModal).Count() > 0) @@ -268,7 +267,7 @@ public void InsertTake(Take take) } //Lease Payable - ChooseSpecificRadioButton(takeLeaseRadioBttnGroup, take.IsLeasePayable); + ChooseRadioButton(takeLeaseRadioBttnGroup, take.IsLeasePayable); Wait(); if (webDriver.FindElements(acquisitionFileConfirmationModal).Count() > 0) @@ -288,7 +287,6 @@ public void InsertTake(Take take) sharedModals.ModalClickOKBttn(); } - Wait(); if (take.IsLeasePayable.Equals("true")) { if (take.IsLeasePayableArea != "") @@ -307,7 +305,7 @@ public void InsertTake(Take take) } //Surplus - ChooseSpecificRadioButton(takeSurplusRadioBttnGroup, take.IsSurplus); + ChooseRadioButton(takeSurplusRadioBttnGroup, take.IsSurplus); Wait(); if (webDriver.FindElements(acquisitionFileConfirmationModal).Count() > 0) @@ -348,7 +346,7 @@ public void DeleteTake(int index) public void VerifyInitTakesView() { - Wait(); + WaitUntilVisible(takesTitle); AssertTrueIsDisplayed(takesTitle); AssertTrueIsDisplayed(takesForThisPropertyCurrentFileLabel); @@ -359,7 +357,7 @@ public void VerifyInitTakesView() public void VerifyInitCreateForm() { - Wait(); + WaitUntilVisible(takeNewSubtitle); AssertTrueIsDisplayed(takeNewSubtitle); AssertTrueIsDisplayed(takeTypeLabel); @@ -394,7 +392,6 @@ public void VerifyInitCreateForm() public void VerifyCreatedTakeViewForm(Take take) { - Wait(4000); var index = 0; //Take Details diff --git a/testing/PIMS.Tests.Automation/PageObjects/CDOGSTemplates.cs b/testing/PIMS.Tests.Automation/PageObjects/CDOGSTemplates.cs index 6069b826f7..5b0d1c223b 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/CDOGSTemplates.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/CDOGSTemplates.cs @@ -47,16 +47,13 @@ public CDOGSTemplates(IWebDriver webDriver) : base(webDriver) public void NavigateAdminTemplates() { - Wait(); - - WaitUntilClickable(adminToolsTemplatesLink); - webDriver.FindElement(adminToolsTemplatesLink).Click(); + SafeClick(adminToolsTemplatesLink); } public void SelectTemplateType(string type) { - Wait(); - ChooseSpecificSelectOption(adminToolsTemplateTypeSelect, type); + WaitUntilClickable(adminToolsTemplateTypeSelect); + ChooseSelectOption(adminToolsTemplateTypeSelect, type); } public void AddNewTemplate() @@ -87,7 +84,7 @@ public void VerifyCDOGSListView() public void Delete1stTemplate() { - Wait(); + WaitUntilClickable(CDOGSTableResults1stDeleteBttn); webDriver.FindElement(CDOGSTableResults1stDeleteBttn).Click(); WaitUntilVisible(documentDeleteHeader); @@ -101,7 +98,7 @@ public void Delete1stTemplate() public void VerifyTemplateExistence() { - Wait(); + WaitUntilVisible(CDOGSTableResults1stDeleteBttn); if (webDriver.FindElements(CDOGSTableResults1stDeleteBttn).Count == 1) Delete1stTemplate(); } diff --git a/testing/PIMS.Tests.Automation/PageObjects/Contacts.cs b/testing/PIMS.Tests.Automation/PageObjects/Contacts.cs index d05f0fbbb2..e6f3b046fe 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/Contacts.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/Contacts.cs @@ -185,24 +185,24 @@ public Contacts(IWebDriver webDriver) : base(webDriver) //Navigates to Create a new Contact public void NavigateToCreateNewContact() { - Wait(); + WaitUntilClickable(menuContactsLink); FocusAndClick(menuContactsLink); - Wait(); + WaitUntilClickable(createContactLink); FocusAndClick(createContactLink); } //Create new Contact Button public void CreateNewContactBttn() { - Wait(); + WaitUntilClickable(createContactButton); FocusAndClick(createContactButton); } //Creates Individual Contact with all fields public void CreateIndividualContact(IndividualContact contact) { - Wait(); + WaitUntilClickable(contactIndividualRadioBttn); //Choosing individual contact option FocusAndClick(contactIndividualRadioBttn); @@ -218,31 +218,31 @@ public void CreateIndividualContact(IndividualContact contact) webDriver.FindElement(contactIndOrgInput).SendKeys(Keys.Space); webDriver.FindElement(contactIndOrgInput).SendKeys(Keys.Backspace); - Wait(); - webDriver.FindElement(contactOrgName1stOption).Click(); + WaitUntilClickable(contactOrgName1stOption); + SafeClick(contactOrgName1stOption); } //Inserting contact info if (contact.IndEmail1 != "" && contact.IndEmailType1 != "") { webDriver.FindElement(contactEmailInput1).SendKeys(contact.IndEmail1); - ChooseSpecificSelectOption(contactEmailSelect1, contact.IndEmailType1); + ChooseSelectOption(contactEmailSelect1, contact.IndEmailType1); } if (contact.IndEmail2 != "") { webDriver.FindElement(contactEmailAddBttn).Click(); webDriver.FindElement(contactEmailInput2).SendKeys(contact.IndEmail2); - ChooseSpecificSelectOption(contactEmailSelect2, contact.IndEmailType2); + ChooseSelectOption(contactEmailSelect2, contact.IndEmailType2); } if (contact.IndPhone1 != "") { webDriver.FindElement(contactPhoneInput1).SendKeys(contact.IndPhone1); - ChooseSpecificSelectOption(contactPhoneSelect1, contact.IndPhoneType1); + ChooseSelectOption(contactPhoneSelect1, contact.IndPhoneType1); } if (contact.IndPhone2 != "") { webDriver.FindElement(contactPhoneAddBttn).Click(); webDriver.FindElement(contactPhoneInput2).SendKeys(contact.IndPhone2); - ChooseSpecificSelectOption(contactPhoneSelect2, contact.IndPhoneType2); + ChooseSelectOption(contactPhoneSelect2, contact.IndPhoneType2); } //Inserting contact mail address @@ -260,14 +260,14 @@ public void CreateIndividualContact(IndividualContact contact) webDriver.FindElement(contactMailAddressLine3Input).SendKeys(contact.IndMailAddress.AddressLine3); } - ChooseSpecificSelectOption(contactMailCountrySelect, contact.IndMailAddress.Country); + ChooseSelectOption(contactMailCountrySelect, contact.IndMailAddress.Country); if (contact.IndMailAddress.Country == "Other") { webDriver.FindElement(contactMailOtherCountryInput).SendKeys(contact.IndMailAddress.OtherCountry); } else { - ChooseSpecificSelectOption(contactMailProvinceSelect, contact.IndMailAddress.Province); + ChooseSelectOption(contactMailProvinceSelect, contact.IndMailAddress.Province); } webDriver.FindElement(contactMailCityInput).SendKeys(contact.IndMailAddress.City); webDriver.FindElement(contactMailPostalCodeInput).SendKeys(contact.IndMailAddress.PostalCode); @@ -288,14 +288,14 @@ public void CreateIndividualContact(IndividualContact contact) webDriver.FindElement(contactPropertyAddressLine3Input).SendKeys(contact.IndPropertyAddress.AddressLine3); } - ChooseSpecificSelectOption(contactPropertyCountrySelect, contact.IndPropertyAddress.Country); + ChooseSelectOption(contactPropertyCountrySelect, contact.IndPropertyAddress.Country); if (contact.IndPropertyAddress.Country == "Other") { webDriver.FindElement(contactPropertyOtherCountryInput).SendKeys(contact.IndPropertyAddress.OtherCountry); } else { - ChooseSpecificSelectOption(contactPropertyProvinceSelect, contact.IndPropertyAddress.Province); + ChooseSelectOption(contactPropertyProvinceSelect, contact.IndPropertyAddress.Province); } webDriver.FindElement(contactPropertyCityInput).SendKeys(contact.IndPropertyAddress.City); webDriver.FindElement(contactPropertyPostalCodeInput).SendKeys(contact.IndPropertyAddress.PostalCode); @@ -315,14 +315,14 @@ public void CreateIndividualContact(IndividualContact contact) webDriver.FindElement(contactBillingAddAddressLineBttn).Click(); webDriver.FindElement(contactBillingAddressLine3Input).SendKeys(contact.IndBillingAddress.AddressLine3); } - ChooseSpecificSelectOption(contactBillingCountrySelect, contact.IndBillingAddress.Country); + ChooseSelectOption(contactBillingCountrySelect, contact.IndBillingAddress.Country); if (contact.IndBillingAddress.Country == "Other") { webDriver.FindElement(contactBillingOtherCountryInput).SendKeys(contact.IndBillingAddress.OtherCountry); } else { - ChooseSpecificSelectOption(contactBillingProvinceSelect, contact.IndBillingAddress.Province); + ChooseSelectOption(contactBillingProvinceSelect, contact.IndBillingAddress.Province); } webDriver.FindElement(contactBillingCityInput).SendKeys(contact.IndBillingAddress.City); webDriver.FindElement(contactBillingPostalCodeInput).SendKeys(contact.IndBillingAddress.PostalCode); @@ -335,7 +335,7 @@ public void CreateIndividualContact(IndividualContact contact) //Creates Organization Contact with all fields public void CreateOrganizationContact(OrganizationContact contact) { - Wait(); + WaitUntilClickable(contactOrganizationRadioBttn); //Choosing organization contact option FocusAndClick(contactOrganizationRadioBttn); @@ -355,24 +355,24 @@ public void CreateOrganizationContact(OrganizationContact contact) if (contact.OrgEmail1 != "") { webDriver.FindElement(contactEmailInput1).SendKeys(contact.OrgEmail1); - ChooseSpecificSelectOption(contactEmailSelect1, contact.OrgEmailType1); + ChooseSelectOption(contactEmailSelect1, contact.OrgEmailType1); } if (contact.OrgEmail2 != "") { webDriver.FindElement(contactEmailAddBttn).Click(); webDriver.FindElement(contactEmailInput2).SendKeys(contact.OrgEmail2); - ChooseSpecificSelectOption(contactEmailSelect2, contact.OrgEmailType2); + ChooseSelectOption(contactEmailSelect2, contact.OrgEmailType2); } if (contact.OrgPhone1 != "") { webDriver.FindElement(contactPhoneInput1).SendKeys(contact.OrgPhone1); - ChooseSpecificSelectOption(contactPhoneSelect1, contact.OrgPhoneType1); + ChooseSelectOption(contactPhoneSelect1, contact.OrgPhoneType1); } if (contact.OrgPhone2 != "") { webDriver.FindElement(contactPhoneAddBttn).Click(); webDriver.FindElement(contactPhoneInput2).SendKeys(contact.OrgPhone2); - ChooseSpecificSelectOption(contactPhoneSelect2, contact.OrgPhoneType2); + ChooseSelectOption(contactPhoneSelect2, contact.OrgPhoneType2); } //Inserting contact mail address @@ -390,14 +390,14 @@ public void CreateOrganizationContact(OrganizationContact contact) webDriver.FindElement(contactMailAddressLine3Input).SendKeys(contact.OrgMailAddress.AddressLine3); } - ChooseSpecificSelectOption(contactMailCountrySelect, contact.OrgMailAddress.Country); + ChooseSelectOption(contactMailCountrySelect, contact.OrgMailAddress.Country); if (contact.OrgMailAddress.Country == "Other") { webDriver.FindElement(contactMailOtherCountryInput).SendKeys(contact.OrgMailAddress.OtherCountry); } else { - ChooseSpecificSelectOption(contactMailProvinceSelect, contact.OrgMailAddress.Province); + ChooseSelectOption(contactMailProvinceSelect, contact.OrgMailAddress.Province); } webDriver.FindElement(contactMailCityInput).SendKeys(contact.OrgMailAddress.City); webDriver.FindElement(contactMailPostalCodeInput).SendKeys(contact.OrgMailAddress.PostalCode); @@ -418,14 +418,14 @@ public void CreateOrganizationContact(OrganizationContact contact) webDriver.FindElement(contactPropertyAddressLine3Input).SendKeys(contact.OrgPropertyAddress.AddressLine3); } - ChooseSpecificSelectOption(contactPropertyCountrySelect, contact.OrgPropertyAddress.Country); + ChooseSelectOption(contactPropertyCountrySelect, contact.OrgPropertyAddress.Country); if (contact.OrgPropertyAddress.Country == "Other") { webDriver.FindElement(contactPropertyOtherCountryInput).SendKeys(contact.OrgPropertyAddress.Country); } else { - ChooseSpecificSelectOption(contactPropertyProvinceSelect, contact.OrgPropertyAddress.Province); + ChooseSelectOption(contactPropertyProvinceSelect, contact.OrgPropertyAddress.Province); } webDriver.FindElement(contactPropertyCityInput).SendKeys(contact.OrgPropertyAddress.City); webDriver.FindElement(contactPropertyPostalCodeInput).SendKeys(contact.OrgPropertyAddress.PostalCode); @@ -445,14 +445,14 @@ public void CreateOrganizationContact(OrganizationContact contact) webDriver.FindElement(contactBillingAddAddressLineBttn).Click(); webDriver.FindElement(contactBillingAddressLine3Input).SendKeys(contact.OrgBillingAddress.AddressLine3); } - ChooseSpecificSelectOption(contactBillingCountrySelect, contact.OrgBillingAddress.Country); + ChooseSelectOption(contactBillingCountrySelect, contact.OrgBillingAddress.Country); if (contact.OrgBillingAddress.Country == "Other") { webDriver.FindElement(contactBillingOtherCountryInput).SendKeys(contact.OrgBillingAddress.OtherCountry); } else { - ChooseSpecificSelectOption(contactBillingProvinceSelect, contact.OrgBillingAddress.Province); + ChooseSelectOption(contactBillingProvinceSelect, contact.OrgBillingAddress.Province); } webDriver.FindElement(contactBillingCityInput).SendKeys(contact.OrgBillingAddress.City); webDriver.FindElement(contactBillingPostalCodeInput).SendKeys(contact.OrgBillingAddress.PostalCode); @@ -488,28 +488,28 @@ public void UpdateOrganizationContact(OrganizationContact contact) WaitUntilClickable(contactEmailInput1); ClearInput(contactEmailInput1); webDriver.FindElement(contactEmailInput1).SendKeys(contact.OrgEmail1); - ChooseSpecificSelectOption(contactEmailSelect1, contact.OrgEmailType1); + ChooseSelectOption(contactEmailSelect1, contact.OrgEmailType1); } if (contact.OrgEmail2 != "") { WaitUntilClickable(contactEmailInput2); ClearInput(contactEmailInput2); webDriver.FindElement(contactEmailInput2).SendKeys(contact.OrgEmail2); - ChooseSpecificSelectOption(contactEmailSelect2, contact.OrgEmailType2); + ChooseSelectOption(contactEmailSelect2, contact.OrgEmailType2); } if (contact.OrgPhone1 != "") { WaitUntilClickable(contactPhoneInput1); ClearInput(contactPhoneInput1); webDriver.FindElement(contactPhoneInput1).SendKeys(contact.OrgPhone1); - ChooseSpecificSelectOption(contactPhoneSelect1, contact.OrgPhoneType1); + ChooseSelectOption(contactPhoneSelect1, contact.OrgPhoneType1); } if (contact.OrgPhone2 != "") { WaitUntilClickable(contactPhoneInput2); ClearInput(contactPhoneInput2); webDriver.FindElement(contactPhoneInput2).SendKeys(contact.OrgPhone2); - ChooseSpecificSelectOption(contactPhoneSelect2, contact.OrgPhoneType2); + ChooseSelectOption(contactPhoneSelect2, contact.OrgPhoneType2); } //Updating contact mail address @@ -534,7 +534,7 @@ public void UpdateOrganizationContact(OrganizationContact contact) webDriver.FindElement(contactMailAddressLine3Input).SendKeys(contact.OrgMailAddress.AddressLine3); } if(contact.OrgMailAddress.Country != "") - ChooseSpecificSelectOption(contactMailCountrySelect, contact.OrgMailAddress.Country); + ChooseSelectOption(contactMailCountrySelect, contact.OrgMailAddress.Country); if (contact.OrgMailAddress.Country == "Other") { ClearInput(contactMailOtherCountryInput); @@ -542,7 +542,7 @@ public void UpdateOrganizationContact(OrganizationContact contact) } if(contact.OrgMailAddress.Province != "") { - ChooseSpecificSelectOption(contactMailProvinceSelect, contact.OrgMailAddress.Province); + ChooseSelectOption(contactMailProvinceSelect, contact.OrgMailAddress.Province); } if (contact.OrgMailAddress.City != "") { @@ -577,14 +577,14 @@ public void UpdateOrganizationContact(OrganizationContact contact) webDriver.FindElement(contactPropertyAddressLine3Input).SendKeys(contact.OrgPropertyAddress.AddressLine3); } if(contact.OrgPropertyAddress.Country != "") - ChooseSpecificSelectOption(contactPropertyCountrySelect, contact.OrgPropertyAddress.Country); + ChooseSelectOption(contactPropertyCountrySelect, contact.OrgPropertyAddress.Country); if (contact.OrgPropertyAddress.Country == "Other") { ClearInput(contactPropertyOtherCountryInput); webDriver.FindElement(contactPropertyOtherCountryInput).SendKeys(contact.OrgPropertyAddress.OtherCountry); } if(contact.OrgPropertyAddress.Province != "") - ChooseSpecificSelectOption(contactPropertyProvinceSelect, contact.OrgPropertyAddress.Province); + ChooseSelectOption(contactPropertyProvinceSelect, contact.OrgPropertyAddress.Province); if (contact.OrgPropertyAddress.City != "") { @@ -619,7 +619,7 @@ public void UpdateOrganizationContact(OrganizationContact contact) webDriver.FindElement(contactBillingAddressLine3Input).SendKeys(contact.OrgBillingAddress.AddressLine3); } if(contact.OrgBillingAddress.Country != "") - ChooseSpecificSelectOption(contactBillingCountrySelect, contact.OrgBillingAddress.Country); + ChooseSelectOption(contactBillingCountrySelect, contact.OrgBillingAddress.Country); if (contact.OrgBillingAddress.Country == "Other") { ClearInput(contactBillingOtherCountryInput); @@ -627,17 +627,17 @@ public void UpdateOrganizationContact(OrganizationContact contact) } if(contact.OrgBillingAddress.Province != "") { - ChooseSpecificSelectOption(contactBillingProvinceSelect, contact.OrgBillingAddress.Province); + ChooseSelectOption(contactBillingProvinceSelect, contact.OrgBillingAddress.Province); } if (contact.OrgBillingAddress.City != "") { - Wait(); + WaitUntilVisible(contactBillingCityInput); ClearInput(contactBillingCityInput); webDriver.FindElement(contactBillingCityInput).SendKeys(contact.OrgBillingAddress.City); } if (contact.OrgBillingAddress.PostalCode != "") { - Wait(); + WaitUntilVisible(contactBillingPostalCodeInput); ClearInput(contactBillingPostalCodeInput); webDriver.FindElement(contactBillingPostalCodeInput).SendKeys(contact.OrgBillingAddress.PostalCode); } @@ -654,7 +654,6 @@ public void UpdateIndividualContact(IndividualContact contact) WaitUntilClickable(contactEditButton); webDriver.FindElement(contactEditButton).Click(); - Wait(); //Updating individual personal details if (contact.MiddleName != "") { @@ -681,36 +680,36 @@ public void UpdateIndividualContact(IndividualContact contact) //Updating contact info if (contact.IndEmail1 != "") { + WaitUntilClickable(contactEmailInput1); ClearInput(contactEmailInput1); webDriver.FindElement(contactEmailInput1).SendKeys(contact.IndEmail1); - ChooseSpecificSelectOption(contactEmailSelect1, contact.IndEmailType1); + ChooseSelectOption(contactEmailSelect1, contact.IndEmailType1); } - if (contact.IndEmail2 != "" && webDriver.FindElement(contactEmailInput2).Displayed) + if (contact.IndEmail2 != "") { ClearInput(contactEmailInput2); webDriver.FindElement(contactEmailInput2).SendKeys(contact.IndEmail2); - ChooseSpecificSelectOption(contactEmailSelect2, contact.IndEmailType2); + ChooseSelectOption(contactEmailSelect2, contact.IndEmailType2); } if (contact.IndPhone1 != "") { ClearInput(contactPhoneInput1); webDriver.FindElement(contactPhoneInput1).SendKeys(contact.IndPhone1); - ChooseSpecificSelectOption(contactPhoneSelect1, contact.IndPhoneType1); + ChooseSelectOption(contactPhoneSelect1, contact.IndPhoneType1); } - if (contact.IndPhone2 != "" && webDriver.FindElement(contactPhoneInput2).Displayed) + if (contact.IndPhone2 != "") { ClearInput(contactPhoneInput2); webDriver.FindElement(contactPhoneInput2).SendKeys(contact.IndPhone2); - ChooseSpecificSelectOption(contactPhoneSelect2, contact.IndPhoneType2); + ChooseSelectOption(contactPhoneSelect2, contact.IndPhoneType2); } //Updating contact mail address if (contact.IndMailAddress.AddressLine1 != "") { while (webDriver.FindElements(contactAddressMailAddressRemoveBttn).Count > 0) - { FocusAndClick(contactAddressMailAddressRemoveBttn); - } + ClearInput(contactMailAddressLine1Input); webDriver.FindElement(contactMailAddressLine1Input).SendKeys(contact.IndMailAddress.AddressLine1); @@ -726,14 +725,14 @@ public void UpdateIndividualContact(IndividualContact contact) webDriver.FindElement(contactMailAddressLine3Input).SendKeys(contact.IndMailAddress.AddressLine3); } if (contact.IndMailAddress.Country != "") - ChooseSpecificSelectOption(contactMailCountrySelect, contact.IndMailAddress.Country); + ChooseSelectOption(contactMailCountrySelect, contact.IndMailAddress.Country); if (contact.IndMailAddress.Country == "Other") { ClearInput(contactMailOtherCountryInput); webDriver.FindElement(contactMailOtherCountryInput).SendKeys(contact.IndMailAddress.OtherCountry); } if (contact.IndMailAddress.Province != "") - ChooseSpecificSelectOption(contactMailProvinceSelect, contact.IndMailAddress.Province); + ChooseSelectOption(contactMailProvinceSelect, contact.IndMailAddress.Province); if (contact.IndMailAddress.City != "") { @@ -767,14 +766,14 @@ public void UpdateIndividualContact(IndividualContact contact) webDriver.FindElement(contactPropertyAddressLine3Input).SendKeys(contact.IndPropertyAddress.AddressLine3); } if (contact.IndPropertyAddress.Country != "") - ChooseSpecificSelectOption(contactPropertyCountrySelect, contact.IndPropertyAddress.Country); + ChooseSelectOption(contactPropertyCountrySelect, contact.IndPropertyAddress.Country); if (contact.IndPropertyAddress.Country == "Other") { ClearInput(contactPropertyOtherCountryInput); webDriver.FindElement(contactPropertyOtherCountryInput).SendKeys(contact.IndPropertyAddress.OtherCountry); } if (contact.IndPropertyAddress.Province != "") - ChooseSpecificSelectOption(contactPropertyProvinceSelect, contact.IndPropertyAddress.Province); + ChooseSelectOption(contactPropertyProvinceSelect, contact.IndPropertyAddress.Province); if (contact.IndPropertyAddress.City != "") { ClearInput(contactPropertyCityInput); @@ -807,7 +806,7 @@ public void UpdateIndividualContact(IndividualContact contact) webDriver.FindElement(contactBillingAddressLine3Input).SendKeys(contact.IndBillingAddress.AddressLine3); } if (contact.IndBillingAddress.Country != "") - ChooseSpecificSelectOption(contactBillingCountrySelect, contact.IndBillingAddress.Country); + ChooseSelectOption(contactBillingCountrySelect, contact.IndBillingAddress.Country); if (contact.IndBillingAddress.Country == "Other") { ClearInput(contactBillingOtherCountryInput); @@ -815,7 +814,7 @@ public void UpdateIndividualContact(IndividualContact contact) } if (contact.IndBillingAddress.Province != "") { - ChooseSpecificSelectOption(contactBillingProvinceSelect, contact.IndBillingAddress.Province); + ChooseSelectOption(contactBillingProvinceSelect, contact.IndBillingAddress.Province); } if (contact.IndBillingAddress.City != "") { @@ -852,10 +851,9 @@ public void SaveContact() //Cancel Contact public void CancelContact() { - Wait(); + WaitUntilClickable(contactCancelButton); FocusAndClick(contactCancelButton); - Wait(); sharedModals.CancelActionModal(); AssertTrueIsDisplayed(contactsSearchTable); @@ -864,7 +862,7 @@ public void CancelContact() // ASSERT FUNCTIONS public void VerifyIndividualContactView(IndividualContact contact) { - Wait(); + WaitUntilVisible(contactEditButton); //AssertTrueIsDisplayed(contactTitle); AssertTrueIsDisplayed(contactEditButton); diff --git a/testing/PIMS.Tests.Automation/PageObjects/DigitalDocuments.cs b/testing/PIMS.Tests.Automation/PageObjects/DigitalDocuments.cs index 18c2098c7a..d8aa6b07b6 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/DigitalDocuments.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/DigitalDocuments.cs @@ -1,4 +1,5 @@ using OpenQA.Selenium; +using OpenQA.Selenium.Support.UI; using PIMS.Tests.Automation.Classes; namespace PIMS.Tests.Automation.PageObjects @@ -194,7 +195,7 @@ public class DigitalDocuments: PageObjectBase private readonly By documentViewElectoralDistrictContent = By.XPath("//label[contains(text(),'Electoral district')]/parent::div/following-sibling::div"); private readonly By documentViewEndDateContent = By.XPath("//label[contains(text(),'End date')]/parent::div/following-sibling::div"); private readonly By documentViewFieldBookContent = By.XPath("//label[contains(text(),'Field book #/Year')]/parent::div/following-sibling::div"); - private readonly By documentViewFileNumberContent = By.XPath("//div[@class='pr-0 text-left col-4']/label[contains(text(),'MoTI file #')]/parent::div/following-sibling::div"); + private readonly By documentViewFileNumberContent = By.XPath("//div[@class='pr-0 text-left col-4']/label[contains(text(),'File #')]/parent::div/following-sibling::div"); private readonly By documentViewGazetteDateContent = By.XPath("//label[contains(text(),'Gazette date')]/parent::div/following-sibling::div"); private readonly By documentViewGazettePageContent = By.XPath("//label[contains(text(),'Gazette page #')]/parent::div/following-sibling::div"); private readonly By documentViewGazettePublishedDateContent = By.XPath("//label[contains(text(),'Gazette published date')]/parent::div/following-sibling::div"); @@ -279,7 +280,7 @@ public class DigitalDocuments: PageObjectBase private readonly By documentsTableColumnStatus = By.CssSelector("div[data-testid='main-document-list'] div[data-testid='documentsTable'] div[role='columnheader']:nth-child(4) div[class='sortable-column']"); private readonly By documentsTableColumnStatusSort = By.CssSelector("div[data-testid='main-document-list'] div[data-testid='sort-column-statusTypeCode']"); private readonly By documentsTableColumnActions = By.CssSelector("div[data-testid='main-document-list'] div[data-testid='documentsTable'] div[role='columnheader']:nth-child(1) div[class='sortable-column']"); - private readonly By documentTableContentTotal = By.CssSelector("div[data-testid='documentsTable'] div[class='tbody'] div[class='tr-wrapper']"); + private readonly By documentTableContentTotal = By.CssSelector("div[data-testid='main-document-list'] div[data-testid='documentsTable'] div[class='tbody'] div[class='tr-wrapper']"); private readonly By documentTableWaitSpinner = By.CssSelector("div[class='table-loading']"); //Documents Tab Ad-hoc List Filters @@ -403,7 +404,7 @@ public void NavigatePropertyDocumentsTab() public void NavigateToFirstPageDocumentsTable() { - Wait(); + WaitUntilClickable(documentPaginationPrevPageLink); FocusAndClick(documentPaginationPrevPageLink); } @@ -415,14 +416,29 @@ public void AddNewDocumentButton() public int DigitalDocumentsTableResultNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(documentTableContentTotal); + var wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(60)); + + int lastCount = -1; + + wait.Until(driver => + { + var rows = driver.FindElements(documentTableContentTotal); + int currentCount = rows.Count; + + if (currentCount == lastCount && currentCount > 4) + return true; + + lastCount = currentCount; + return false; + }); + return webDriver.FindElements(documentTableContentTotal).Count; } public void OrderByDocumentFileType() { - Wait(); - webDriver.FindElement(documentsTableColumnTypeSort).Click(); + SafeClick(documentsTableColumnTypeSort); } public void OrderByDocumentFileName() @@ -439,52 +455,52 @@ public void OrderByDocumentFileStatus() public void OrderByActivityRelatedDocumentsType() { - Wait(); + WaitUntilClickable(activitiesDocumentsColumnTypeSort); FocusAndClick(activitiesDocumentsColumnTypeSort); } public string FirstDocumentFileType() { - WaitUntilTableSpinnerDisappear(); - Wait(1000); + WaitForTableToLoad(); + WaitUntilVisible(documentTableResults1stDocumentTypeContent); return webDriver.FindElement(documentTableResults1stDocumentTypeContent).Text; } public string FirstDocumentFileName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(documentTableResults1stDocumentNameContent).Text; } public string FirstDocumentFileStatus() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(documentTableResults1stDocumentStatusContent).Text; } public void FilterByType(string documentType) { - Wait(); + WaitUntilClickable(documentFilterResetBttn); webDriver.FindElement(documentFilterResetBttn).Click(); WaitUntilClickable(documentFilterTypeSelect); - ChooseSpecificSelectOption(documentFilterTypeSelect, documentType); + ChooseSelectOption(documentFilterTypeSelect, documentType); FocusAndClick(documentFilterSearchBttn); } public void FilterByStatus(string documentStatus) { - Wait(); + WaitUntilClickable(documentFilterResetBttn); webDriver.FindElement(documentFilterResetBttn).Click(); WaitUntilVisible(documentFilterStatusSelect); - ChooseSpecificSelectOption(documentFilterStatusSelect, documentStatus); + ChooseSelectOption(documentFilterStatusSelect, documentStatus); FocusAndClick(documentFilterSearchBttn); } public void FilterByName(string documentName) { - Wait(); + WaitUntilClickable(documentFilterResetBttn); webDriver.FindElement(documentFilterResetBttn).Click(); WaitUntilVisible(documentFilterNameInput); @@ -492,6 +508,12 @@ public void FilterByName(string documentName) FocusAndClick(documentFilterSearchBttn); } + public void ResetFilters() + { + WaitUntilClickable(documentFilterResetBttn); + webDriver.FindElement(documentFilterResetBttn).Click(); + } + public int TotalSearchDocuments() { return webDriver.FindElements(documentTableContentTotal).Count(); @@ -513,7 +535,7 @@ public void SaveDigitalDocumentUpload() public void SaveDigitalDocumentUpdate() { - Wait(); + WaitUntilClickable(documentSaveEditButton); webDriver.FindElement(documentSaveEditButton).Click(); WaitUntilSpinnerDisappear(); } @@ -550,7 +572,7 @@ public void CancelDigitalDocument() public void CancelEditDigitalDocument() { - Wait(); + WaitUntilClickable(documentCancelEditButton); FocusAndClick(documentCancelEditButton); WaitUntilVisible(documentConfirmationModal); @@ -565,14 +587,14 @@ public void CancelEditDigitalDocument() public void CloseDigitalDocumentViewDetails() { - Wait(); + WaitUntilClickable(documentModalCloseIcon); webDriver.FindElement(documentModalCloseIcon).Click(); } public void View1stDocument() { - Wait(); - webDriver.FindElement(documentTableResults1stViewBttn).Click(); + WaitUntilClickable(documentTableResults1stViewBttn); + SafeClick(documentTableResults1stViewBttn); } public void WaitUploadDocument() @@ -584,12 +606,12 @@ public void WaitUploadDocument() public void ViewUploadedDocument(int index) { - Wait(); + WaitUntilClickable(documentPaginationNextPageLink); if (index > 9) FocusAndClick(documentPaginationNextPageLink); - FocusAndClick(By.CssSelector("div[data-testid='documentsTable'] div[class='tbody'] button[data-testid='document-view-button-"+ index +"']")); + SafeClick(By.CssSelector("div[data-testid='documentsTable'] div[class='tbody'] button[data-testid='document-view-button-"+ index +"']")); } public void Delete1stDocument() @@ -610,28 +632,27 @@ public void Delete1stDocument() public void EditDocumentButton() { - Wait(2000); + WaitUntilClickable(documentEditBttn); FocusAndClick(documentEditBttn); } public void InsertDocumentTypeStatus(DigitalDocument document, int docIdx) { - Wait(); By docTypeSelectElement = By.Id("input-documents."+ docIdx +".documentTypeId"); By statusSelectElement = By.Id("input-documents." +docIdx +".documentStatusCode"); - WaitUntilExist(docTypeSelectElement); - ChooseSpecificSelectOption(docTypeSelectElement, document.DocumentType); - ChooseSpecificSelectOption(statusSelectElement, document.DocumentStatus); + WaitUntilVisible(docTypeSelectElement); + ChooseSelectOption(docTypeSelectElement, document.DocumentType); + ChooseSelectOption(statusSelectElement, document.DocumentStatus); - Wait(); - webDriver.FindElement(By.XPath("//select[@data-testid='documents."+ docIdx +".document-type']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::div/parent::div/following-sibling::div/*[1]")).Click(); + var elementType = By.XPath("//select[@data-testid='documents."+ docIdx +".document-type']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::div/parent::div/following-sibling::div/*[1]"); + WaitUntilClickable(elementType); + webDriver.FindElement(elementType).Click(); } public void InsertDocumentTypeDetails(DigitalDocument document) { - Wait(); if (document.ApplicationNumber != "" && webDriver.FindElements(documentALCTypeAppNumberInput).Count > 0) webDriver.FindElement(documentALCTypeAppNumberInput).SendKeys(document.ApplicationNumber); @@ -786,8 +807,11 @@ public void InsertDocumentTypeDetails(DigitalDocument document) public void UpdateNewDocumentType(DigitalDocument document) { - ChooseSpecificSelectOption(documentGeneralUpdateDocumentSelect, document.DocumentType); - ChooseSpecificSelectOption(documentUploadStatusSelect, document.DocumentStatus); + Wait(); + ChooseSelectOption(documentGeneralUpdateDocumentSelect, document.DocumentType); + + WaitUntilClickable(documentUploadStatusSelect); + ChooseSelectOption(documentUploadStatusSelect, document.DocumentStatus); if (document.CanadaLandSurvey != "" && webDriver.FindElements(documentCanLandSurveyTypeCanLandSurveyInput).Count > 0) { @@ -1028,7 +1052,7 @@ public void UpdateNewDocumentType(DigitalDocument document) public void UpdateDocumentName(string documentName) { - Wait(); + WaitUntilVisible(documentUpdateNameInput); string fullString = webDriver.FindElement(documentUpdateNameInput).GetAttribute("value"); char separator = '.'; @@ -1118,8 +1142,6 @@ public void VerifyDocumentFields(string documentType) public void VerifyFileDocumentsListView() { - WaitUntilVisible(documentFilterTypeSelect); - AssertTrueIsDisplayed(documentsTitle); AssertTrueIsDisplayed(addDocumentBttn); AssertTrueIsDisplayed(refresh1stTableBttn); @@ -1142,7 +1164,7 @@ public void VerifyFileDocumentsListView() public void VerifyManagementFilesDocumentsListView() { - Wait(); + WaitUntilVisible(documentsTitle); AssertTrueIsDisplayed(documentsTitle); AssertTrueIsDisplayed(addDocumentBttn); @@ -1286,7 +1308,6 @@ public void VerifyPaginationElements() public void VerifyAdhocDocumentsList(DigitalDocument document, int index) { - Wait(); WaitUntilSpinnerDisappear(); var elementIndex = index +1; @@ -1301,7 +1322,6 @@ public void VerifyAdhocDocumentsList(DigitalDocument document, int index) public void VerifyPIMSFilesDocumentsList(DigitalDocument document, int index) { - Wait(); WaitUntilSpinnerDisappear(); var elementIndex = index +1; @@ -1316,7 +1336,6 @@ public void VerifyPIMSFilesDocumentsList(DigitalDocument document, int index) public void VerifyDocumentDetailsViewForm(DigitalDocument document) { - Wait(); WaitUntilSpinnerDisappear(); //Header @@ -1494,37 +1513,30 @@ public void VerifyInitUploadDocumentForm() AssertTrueIsDisplayed(documentsUploadHeader); AssertTrueIsDisplayed(documentUploadInstructionsLabel); AssertTrueIsDisplayed(documentUploadDragDropArea); - WaitUntilExist(documentUploadDocInput); } public void ChoosePaginationOption(int pagination) { - Wait(); - WaitUntilVisible(searchTableEntriesSpan); - FocusAndClick(searchTableEntriesSpan); + SafeClick(searchTableEntriesSpan); switch (pagination) { case 5: - //WaitUntilClickable(searchTablePagination5); - FocusAndClick(searchTablePagination5); + SafeClick(searchTablePagination5); break; case 10: - //WaitUntilVisible(searchTablePagination10); - FocusAndClick(searchTablePagination10); + SafeClick(searchTablePagination10); break; case 20: - //WaitUntilClickable(searchTablePagination20); - FocusAndClick(searchTablePagination20); + SafeClick(searchTablePagination20); break; case 50: - //WaitUntilClickable(searchTablePagination50); - FocusAndClick(searchTablePagination50); + SafeClick(searchTablePagination50); break; case 100: - //WaitUntilClickable(searchTablePagination100); - FocusAndClick(searchTablePagination100); + + SafeClick(searchTablePagination100); break; } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/DispositionChecklist.cs b/testing/PIMS.Tests.Automation/PageObjects/DispositionChecklist.cs index d09cdc5182..b341c5b7b3 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/DispositionChecklist.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/DispositionChecklist.cs @@ -164,7 +164,6 @@ public void EditChecklistButton() public void SaveDispositionFileChecklist() { - Wait(); ButtonElement("Save"); AssertTrueIsDisplayed(checklistEditBttn); @@ -172,7 +171,6 @@ public void SaveDispositionFileChecklist() public void CancelDispositionFileChecklist() { - Wait(); ButtonElement("Cancel"); sharedModals.CancelActionModal(); @@ -180,7 +178,7 @@ public void CancelDispositionFileChecklist() public void VerifyChecklistInitViewForm() { - Wait(2000); + WaitUntilVisible(checklistFileInitiationTitle); AssertTrueIsDisplayed(checklistFileInitiationTitle); AssertTrueIsDisplayed(checklistFileInitiation1Label); @@ -433,86 +431,86 @@ public void VerifyChecklistViewForm(DispositionFileChecklist checklist) public void UpdateChecklist(DispositionFileChecklist checklist) { - Wait(); + WaitUntilClickable(checklistFileInitiationItem1Select); if (checklist.FileInitiationSelect1 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem1Select, checklist.FileInitiationSelect1); + ChooseSelectOption(checklistFileInitiationItem1Select, checklist.FileInitiationSelect1); if (checklist.FileInitiationSelect2 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem2Select, checklist.FileInitiationSelect2); + ChooseSelectOption(checklistFileInitiationItem2Select, checklist.FileInitiationSelect2); if (checklist.FileInitiationSelect3 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem3Select, checklist.FileInitiationSelect3); + ChooseSelectOption(checklistFileInitiationItem3Select, checklist.FileInitiationSelect3); if (checklist.FileInitiationSelect4 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem4Select, checklist.FileInitiationSelect4); + ChooseSelectOption(checklistFileInitiationItem4Select, checklist.FileInitiationSelect4); if (checklist.DispositionPreparationSelect1 != "") - ChooseSpecificSelectOption(checklistDispositionPreparationItem1Select, checklist.DispositionPreparationSelect1); + ChooseSelectOption(checklistDispositionPreparationItem1Select, checklist.DispositionPreparationSelect1); if (checklist.DispositionPreparationSelect2 != "") - ChooseSpecificSelectOption(checklistDispositionPreparationItem2Select, checklist.DispositionPreparationSelect2); + ChooseSelectOption(checklistDispositionPreparationItem2Select, checklist.DispositionPreparationSelect2); if (checklist.DispositionPreparationSelect3 != "") - ChooseSpecificSelectOption(checklistDispositionPreparationItem3Select, checklist.DispositionPreparationSelect3); + ChooseSelectOption(checklistDispositionPreparationItem3Select, checklist.DispositionPreparationSelect3); if (checklist.DispositionPreparationSelect4 != "") - ChooseSpecificSelectOption(checklistDispositionPreparationItem4Select, checklist.DispositionPreparationSelect4); + ChooseSelectOption(checklistDispositionPreparationItem4Select, checklist.DispositionPreparationSelect4); if (checklist.ReferralsAndConsultationsSelect1 != "") - ChooseSpecificSelectOption(checklistReferralsAndConsultationsItem1Select, checklist.ReferralsAndConsultationsSelect1); + ChooseSelectOption(checklistReferralsAndConsultationsItem1Select, checklist.ReferralsAndConsultationsSelect1); if (checklist.ReferralsAndConsultationsSelect2 != "") - ChooseSpecificSelectOption(checklistReferralsAndConsultationsItem2Select, checklist.ReferralsAndConsultationsSelect2); + ChooseSelectOption(checklistReferralsAndConsultationsItem2Select, checklist.ReferralsAndConsultationsSelect2); if (checklist.ReferralsAndConsultationsSelect3 != "") - ChooseSpecificSelectOption(checklistReferralsAndConsultationsItem3Select, checklist.ReferralsAndConsultationsSelect3); + ChooseSelectOption(checklistReferralsAndConsultationsItem3Select, checklist.ReferralsAndConsultationsSelect3); if (checklist.ReferralsAndConsultationsSelect4 != "") - ChooseSpecificSelectOption(checklistReferralsAndConsultationsItem4Select, checklist.ReferralsAndConsultationsSelect4); + ChooseSelectOption(checklistReferralsAndConsultationsItem4Select, checklist.ReferralsAndConsultationsSelect4); if (checklist.ReferralsAndConsultationsSelect5 != "") - ChooseSpecificSelectOption(checklistReferralsAndConsultationsItem5Select, checklist.ReferralsAndConsultationsSelect5); + ChooseSelectOption(checklistReferralsAndConsultationsItem5Select, checklist.ReferralsAndConsultationsSelect5); if (checklist.ReferralsAndConsultationsSelect6 != "") - ChooseSpecificSelectOption(checklistReferralsAndConsultationsItem6Select, checklist.ReferralsAndConsultationsSelect6); + ChooseSelectOption(checklistReferralsAndConsultationsItem6Select, checklist.ReferralsAndConsultationsSelect6); if (checklist.DirectSaleRoadClosureSelect1 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem1Select, checklist.DirectSaleRoadClosureSelect1); + ChooseSelectOption(checklistDirectSaleRoadClosureItem1Select, checklist.DirectSaleRoadClosureSelect1); if (checklist.DirectSaleRoadClosureSelect2 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem2Select, checklist.DirectSaleRoadClosureSelect2); + ChooseSelectOption(checklistDirectSaleRoadClosureItem2Select, checklist.DirectSaleRoadClosureSelect2); if (checklist.DirectSaleRoadClosureSelect3 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem3Select, checklist.DirectSaleRoadClosureSelect3); + ChooseSelectOption(checklistDirectSaleRoadClosureItem3Select, checklist.DirectSaleRoadClosureSelect3); if (checklist.DirectSaleRoadClosureSelect4 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem4Select, checklist.DirectSaleRoadClosureSelect4); + ChooseSelectOption(checklistDirectSaleRoadClosureItem4Select, checklist.DirectSaleRoadClosureSelect4); if (checklist.DirectSaleRoadClosureSelect5 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem5Select, checklist.DirectSaleRoadClosureSelect5); + ChooseSelectOption(checklistDirectSaleRoadClosureItem5Select, checklist.DirectSaleRoadClosureSelect5); if (checklist.DirectSaleRoadClosureSelect6 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem6Select, checklist.DirectSaleRoadClosureSelect6); + ChooseSelectOption(checklistDirectSaleRoadClosureItem6Select, checklist.DirectSaleRoadClosureSelect6); if (checklist.DirectSaleRoadClosureSelect7 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem7Select, checklist.DirectSaleRoadClosureSelect7); + ChooseSelectOption(checklistDirectSaleRoadClosureItem7Select, checklist.DirectSaleRoadClosureSelect7); if (checklist.DirectSaleRoadClosureSelect8 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem8Select, checklist.DirectSaleRoadClosureSelect8); + ChooseSelectOption(checklistDirectSaleRoadClosureItem8Select, checklist.DirectSaleRoadClosureSelect8); if (checklist.DirectSaleRoadClosureSelect9 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem9Select, checklist.DirectSaleRoadClosureSelect9); + ChooseSelectOption(checklistDirectSaleRoadClosureItem9Select, checklist.DirectSaleRoadClosureSelect9); if (checklist.DirectSaleRoadClosureSelect10 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem10Select, checklist.DirectSaleRoadClosureSelect10); + ChooseSelectOption(checklistDirectSaleRoadClosureItem10Select, checklist.DirectSaleRoadClosureSelect10); if (checklist.DirectSaleRoadClosureSelect11 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem11Select, checklist.DirectSaleRoadClosureSelect11); + ChooseSelectOption(checklistDirectSaleRoadClosureItem11Select, checklist.DirectSaleRoadClosureSelect11); if (checklist.DirectSaleRoadClosureSelect12 != "") - ChooseSpecificSelectOption(checklistDirectSaleRoadClosureItem12Select, checklist.DirectSaleRoadClosureSelect12); + ChooseSelectOption(checklistDirectSaleRoadClosureItem12Select, checklist.DirectSaleRoadClosureSelect12); if (checklist.SaleInformationSelect1 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem1Select, checklist.SaleInformationSelect1); + ChooseSelectOption(checklistSaleInformationItem1Select, checklist.SaleInformationSelect1); if (checklist.SaleInformationSelect2 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem2Select, checklist.SaleInformationSelect2); + ChooseSelectOption(checklistSaleInformationItem2Select, checklist.SaleInformationSelect2); if (checklist.SaleInformationSelect3 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem3Select, checklist.SaleInformationSelect3); + ChooseSelectOption(checklistSaleInformationItem3Select, checklist.SaleInformationSelect3); if (checklist.SaleInformationSelect4 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem4Select, checklist.SaleInformationSelect4); + ChooseSelectOption(checklistSaleInformationItem4Select, checklist.SaleInformationSelect4); if (checklist.SaleInformationSelect5 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem5Select, checklist.SaleInformationSelect5); + ChooseSelectOption(checklistSaleInformationItem5Select, checklist.SaleInformationSelect5); if (checklist.SaleInformationSelect6 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem6Select, checklist.SaleInformationSelect6); + ChooseSelectOption(checklistSaleInformationItem6Select, checklist.SaleInformationSelect6); if (checklist.SaleInformationSelect7 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem7Select, checklist.SaleInformationSelect7); + ChooseSelectOption(checklistSaleInformationItem7Select, checklist.SaleInformationSelect7); if (checklist.SaleInformationSelect8 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem8Select, checklist.SaleInformationSelect8); + ChooseSelectOption(checklistSaleInformationItem8Select, checklist.SaleInformationSelect8); if (checklist.SaleInformationSelect9 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem9Select, checklist.SaleInformationSelect9); + ChooseSelectOption(checklistSaleInformationItem9Select, checklist.SaleInformationSelect9); if (checklist.SaleInformationSelect10 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem10Select, checklist.SaleInformationSelect10); + ChooseSelectOption(checklistSaleInformationItem10Select, checklist.SaleInformationSelect10); if (checklist.SaleInformationSelect11 != "") - ChooseSpecificSelectOption(checklistSaleInformationItem11Select, checklist.SaleInformationSelect11); + ChooseSelectOption(checklistSaleInformationItem11Select, checklist.SaleInformationSelect11); } } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/DispositionFileDetails.cs b/testing/PIMS.Tests.Automation/PageObjects/DispositionFileDetails.cs index b81deb65b6..f44ee1d449 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/DispositionFileDetails.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/DispositionFileDetails.cs @@ -136,10 +136,10 @@ public DispositionFileDetails(IWebDriver webDriver) : base(webDriver) public void NavigateToCreateNewDipositionFile() { - Wait(); + WaitUntilClickable(menuDispositionButton); FocusAndClick(menuDispositionButton); - Wait(); + WaitUntilClickable(createDispositionFileButton); FocusAndClick(createDispositionFileButton); } @@ -163,23 +163,23 @@ public void EditDispositionFileBttn() public void CreateMinimumDispositionFile(DispositionFile disposition) { - Wait(); + WaitUntilVisible(dispositionFileDetailsNameInput); webDriver.FindElement(dispositionFileDetailsNameInput).SendKeys(disposition.DispositionFileName); - ChooseSpecificSelectOption(dispositionFileDetailsStatusSelect, disposition.DispositionStatus); - ChooseSpecificSelectOption(dispositionFileDetailsTypeSelect, disposition.DispositionType); + ChooseSelectOption(dispositionFileDetailsStatusSelect, disposition.DispositionStatus); + ChooseSelectOption(dispositionFileDetailsTypeSelect, disposition.DispositionType); if(disposition.DispositionType.Equals("Other Transfer")) webDriver.FindElement(dispositionFileDetailsOtherTransferTypeInput).SendKeys(disposition.DispositionOtherTransferType); - ChooseSpecificSelectOption(dispositionFileDetailsMOTIRegionSelect, disposition.DispositionMOTIRegion); + ChooseSelectOption(dispositionFileDetailsMOTIRegionSelect, disposition.DispositionMOTIRegion); } public void AddAdditionalInformation(DispositionFile disposition) { //Status if (disposition.DispositionFileStatus != "") - ChooseSpecificSelectOption(dispositionFileStatusSelect, disposition.DispositionFileStatus); + ChooseSelectOption(dispositionFileStatusSelect, disposition.DispositionFileStatus); //Project if (disposition.DispositionProject != "") @@ -187,26 +187,25 @@ public void AddAdditionalInformation(DispositionFile disposition) WaitUntilVisible(dispositionFileProjectInput); webDriver.FindElement(dispositionFileProjectInput).SendKeys(disposition.DispositionProject); - Wait(); + WaitUntilClickable(dispositionFileProjectInput); webDriver.FindElement(dispositionFileProjectInput).SendKeys(Keys.Space); - Wait(); + WaitUntilClickable(dispositionFileProjectInput); webDriver.FindElement(dispositionFileProjectInput).SendKeys(Keys.Backspace); - Wait(2000); + Wait(); FocusAndClick(dispositionFileProject1stOption); } if (disposition.DispositionProjProduct != "") { - WaitUntilVisible(dispositionFileProjectProductSelect); - webDriver.FindElement(dispositionFileProjectProductSelect).Click(); - - ChooseSpecificSelectOption(dispositionFileProjectProductSelect, disposition.DispositionProjProduct); + WaitUntilClickable(dispositionFileProjectProductSelect); + SafeClick(dispositionFileProjectProductSelect); + ChooseSelectOption(dispositionFileProjectProductSelect, disposition.DispositionProjProduct); } if (disposition.DispositionProjFunding != "") - ChooseSpecificSelectOption(dispositionFileProjectFundingInput, disposition.DispositionProjFunding); + ChooseSelectOption(dispositionFileProjectFundingInput, disposition.DispositionProjFunding); //Disposition Details @@ -231,10 +230,10 @@ public void AddAdditionalInformation(DispositionFile disposition) } if (disposition.DispositionStatus != "") - ChooseSpecificSelectOption(dispositionFileDetailsStatusSelect, disposition.DispositionStatus); + ChooseSelectOption(dispositionFileDetailsStatusSelect, disposition.DispositionStatus); if (disposition.DispositionType != "") - ChooseSpecificSelectOption(dispositionFileDetailsTypeSelect, disposition.DispositionType); + ChooseSelectOption(dispositionFileDetailsTypeSelect, disposition.DispositionType); if (disposition.DispositionOtherTransferType != "") { @@ -243,7 +242,7 @@ public void AddAdditionalInformation(DispositionFile disposition) } if (disposition.InitiatingDocument != "") - ChooseSpecificSelectOption(dispositionFileDetailsInitiatingDocumentSelect, disposition.InitiatingDocument); + ChooseSelectOption(dispositionFileDetailsInitiatingDocumentSelect, disposition.InitiatingDocument); if (disposition.OtherInitiatingDocument != "") { @@ -259,18 +258,16 @@ public void AddAdditionalInformation(DispositionFile disposition) } if (disposition.DispositionPhysicalFileStatus != "") - ChooseSpecificSelectOption(dispositionFileDetailsPhysicalFileSelect, disposition.DispositionPhysicalFileStatus); + ChooseSelectOption(dispositionFileDetailsPhysicalFileSelect, disposition.DispositionPhysicalFileStatus); if (disposition.InitiatingBranch != "") - ChooseSpecificSelectOption(dispositionFileDetailsInitiatingBranchSelect, disposition.InitiatingBranch); + ChooseSelectOption(dispositionFileDetailsInitiatingBranchSelect, disposition.InitiatingBranch); //Disposition File Team Members if (disposition.DispositionTeam.Count > 0) { for (var i = 0; i < disposition.DispositionTeam.Count; i++) - { AddTeamMembers(disposition.DispositionTeam[i]); - } } } @@ -280,7 +277,7 @@ public void UpdateDispositionFile(DispositionFile disposition) if (disposition.DispositionFileStatus != "") { WaitUntilClickable(dispositionFileStatusSelect); - ChooseSpecificSelectOption(dispositionFileStatusSelect, disposition.DispositionFileStatus); + ChooseSelectOption(dispositionFileStatusSelect, disposition.DispositionFileStatus); } //Project @@ -289,13 +286,13 @@ public void UpdateDispositionFile(DispositionFile disposition) WaitUntilVisible(dispositionFileProjectInput); webDriver.FindElement(dispositionFileProjectInput).SendKeys(disposition.DispositionProject); - Wait(); + WaitUntilVisible(dispositionFileProjectInput); webDriver.FindElement(dispositionFileProjectInput).SendKeys(Keys.Space); - Wait(); + WaitUntilVisible(dispositionFileProjectInput); webDriver.FindElement(dispositionFileProjectInput).SendKeys(Keys.Backspace); - Wait(2000); + WaitUntilClickable(dispositionFileProject1stOption); FocusAndClick(dispositionFileProject1stOption); } @@ -304,11 +301,11 @@ public void UpdateDispositionFile(DispositionFile disposition) WaitUntilVisible(dispositionFileProjectProductSelect); webDriver.FindElement(dispositionFileProjectProductSelect).Click(); - ChooseSpecificSelectOption(dispositionFileProjectProductSelect, disposition.DispositionProjProduct); + ChooseSelectOption(dispositionFileProjectProductSelect, disposition.DispositionProjProduct); } if (disposition.DispositionProjFunding != "") - ChooseSpecificSelectOption(dispositionFileProjectFundingInput, disposition.DispositionProjFunding); + ChooseSelectOption(dispositionFileProjectFundingInput, disposition.DispositionProjFunding); //Schedule if (disposition.DispositionAssignedDate != "") @@ -339,13 +336,13 @@ public void UpdateDispositionFile(DispositionFile disposition) } if (disposition.DispositionStatus != "") - ChooseSpecificSelectOption(dispositionFileDetailsStatusSelect, disposition.DispositionStatus); + ChooseSelectOption(dispositionFileDetailsStatusSelect, disposition.DispositionStatus); if (disposition.DispositionType != "") - ChooseSpecificSelectOption(dispositionFileDetailsTypeSelect, disposition.DispositionType); + ChooseSelectOption(dispositionFileDetailsTypeSelect, disposition.DispositionType); if (disposition.InitiatingDocument != "") - ChooseSpecificSelectOption(dispositionFileDetailsInitiatingDocumentSelect, disposition.InitiatingDocument); + ChooseSelectOption(dispositionFileDetailsInitiatingDocumentSelect, disposition.InitiatingDocument); if (disposition.OtherInitiatingDocument != "") { @@ -361,13 +358,13 @@ public void UpdateDispositionFile(DispositionFile disposition) } if (disposition.DispositionPhysicalFileStatus != "") - ChooseSpecificSelectOption(dispositionFileDetailsPhysicalFileSelect, disposition.DispositionPhysicalFileStatus); + ChooseSelectOption(dispositionFileDetailsPhysicalFileSelect, disposition.DispositionPhysicalFileStatus); if (disposition.InitiatingBranch != "") - ChooseSpecificSelectOption(dispositionFileDetailsInitiatingBranchSelect, disposition.InitiatingBranch); + ChooseSelectOption(dispositionFileDetailsInitiatingBranchSelect, disposition.InitiatingBranch); if (disposition.DispositionMOTIRegion != "") - ChooseSpecificSelectOption(dispositionFileDetailsMOTIRegionSelect, disposition.DispositionMOTIRegion); + ChooseSelectOption(dispositionFileDetailsMOTIRegionSelect, disposition.DispositionMOTIRegion); //Disposition File Team Members if (disposition.DispositionTeam.Count > 0) @@ -376,15 +373,12 @@ public void UpdateDispositionFile(DispositionFile disposition) DeleteFirstStaffMember(); for (var i = 0; i < disposition.DispositionTeam.Count; i++) - { AddTeamMembers(disposition.DispositionTeam[i]); - } } } public void SaveDispositionFileDetails() { - Wait(); ButtonElement("Save"); Wait(); @@ -395,13 +389,14 @@ public void SaveDispositionFileDetails() Assert.Equal("User Override Required", sharedModals.ModalHeader()); Assert.Equal("You are changing this file to a non-editable state. (Only system administrators can edit the file when set to Archived, Cancelled or Completed state). Do you wish to continue?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - + Wait(500); } else if (sharedModals.ModalContent().Contains("The Ministry region has been changed")) { Assert.Equal("User Override Required", sharedModals.ModalHeader()); Assert.Equal("The Ministry region has been changed, this will result in a change to the file's prefix. This requires user confirmation.", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); + Wait(500); } else if (sharedModals.ModalHeader() == "Confirm status change") { @@ -409,27 +404,22 @@ public void SaveDispositionFileDetails() Assert.Contains("If you save it, only the administrator can turn it back on. You will still see it in the management table.", sharedModals.ConfirmationModalParagraph1()); Assert.Equal("Do you want to acknowledge and proceed?", sharedModals.ConfirmationModalParagraph2()); sharedModals.ModalClickOKBttn(); - - Wait(); + Wait(500); } - if (sharedModals.ModalContent().Contains("You are completing this Disposition File with owned PIMS inventory properties")) + else if (sharedModals.ModalContent().Contains("You are completing this Disposition File with owned PIMS inventory properties")) { Assert.Equal("User Override Required", sharedModals.ModalHeader()); Assert.Equal("You are completing this Disposition File with owned PIMS inventory properties. All properties will be removed from the PIMS inventory (any Other Interests will remain). Do you wish to proceed?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - + Wait(500); } else if (sharedModals.ModalHeader() == "Error") break; - - Wait(); } - } public void CancelDispositionFile() { - Wait(); ButtonElement("Cancel"); sharedModals.CancelActionModal(); @@ -437,7 +427,7 @@ public void CancelDispositionFile() public void CloseDispositionForm() { - Wait(); + WaitUntilClickable(dispositionFileCloseFormBttn); webDriver.FindElement(dispositionFileCloseFormBttn).Click(); } @@ -634,10 +624,10 @@ public void VerifyDispositionFileView(DispositionFile disposition) if (disposition.DispositionTeam[i].TeamMemberPrimaryContact != "") { index++; - if (webDriver.FindElements(By.XPath("//h2/div/div[contains(text(),'Disposition Team')]/parent::div/parent::h2/following-sibling::div/div[" + index + "]/div/a")).Count > 0) - AssertTrueContentEquals(By.XPath("//h2/div/div[contains(text(),'Disposition Team')]/parent::div/parent::h2/following-sibling::div/div[" + index + "]/div/a"), disposition.DispositionTeam[i].TeamMemberPrimaryContact); + if (webDriver.FindElements(By.XPath("//div[contains(text(),'Disposition Team')]/parent::div/parent::h2/following-sibling::div/div[" + index + "]/div/a/span")).Count > 0) + AssertTrueContentEquals(By.XPath("//div[contains(text(),'Disposition Team')]/parent::div/parent::h2/following-sibling::div/div[" + index + "]/div/a/span"), disposition.DispositionTeam[i].TeamMemberPrimaryContact); else - AssertTrueContentEquals(By.XPath("//h2/div/div[contains(text(),'Disposition Team')]/parent::div/parent::h2/following-sibling::div/div[" + index + "]/div[2]"), disposition.DispositionTeam[i].TeamMemberPrimaryContact); + AssertTrueContentEquals(By.XPath("//div[contains(text(),'Disposition Team')]/parent::div/parent::h2/following-sibling::div/div["+ index +"]/div[2]"), disposition.DispositionTeam[i].TeamMemberPrimaryContact); } index++; } @@ -703,17 +693,16 @@ private void AddTeamMembers(TeamMember teamMember) WaitUntilClickable(dispositionFileAddAnotherMemberLink); FocusAndClick(dispositionFileAddAnotherMemberLink); - Wait(); var teamMemberIndex = webDriver.FindElements(dispositionFileTeamMembersGroup).Count() -1; WaitUntilVisible(By.CssSelector("select[id='input-team."+ teamMemberIndex +".teamProfileTypeCode']")); - ChooseSpecificSelectOption(By.CssSelector("select[id='input-team."+ teamMemberIndex +".teamProfileTypeCode']"), teamMember.TeamMemberRole); + ChooseSelectOption(By.CssSelector("select[id='input-team."+ teamMemberIndex +".teamProfileTypeCode']"), teamMember.TeamMemberRole); FocusAndClick(By.CssSelector("div[data-testid='teamMemberRow["+ teamMemberIndex +"]'] div[data-testid='contact-input'] button[title='Select Contact']")); sharedSelectContact.SelectContact(teamMember.TeamMemberContactName, teamMember.TeamMemberContactType); Wait(); if (webDriver.FindElements(By.Id("input-team."+ teamMemberIndex +".primaryContactId")).Count > 0) - ChooseSpecificSelectOption(By.Id("input-team."+ teamMemberIndex +".primaryContactId"), teamMember.TeamMemberPrimaryContact); + ChooseSelectOption(By.Id("input-team."+ teamMemberIndex +".primaryContactId"), teamMember.TeamMemberPrimaryContact); } } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/DispositionOfferSale.cs b/testing/PIMS.Tests.Automation/PageObjects/DispositionOfferSale.cs index f3c4a26d0c..bde896b6f5 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/DispositionOfferSale.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/DispositionOfferSale.cs @@ -142,34 +142,32 @@ public DispositionOfferSale(IWebDriver webDriver) : base(webDriver) public void NavigateoffersAndSaleTab() { - Wait(); + WaitUntilClickable(offersAndSaleTab); webDriver.FindElement(offersAndSaleTab).Click(); } public void EditAppraisalAndAssessmentButton() { - Wait(); + WaitUntilClickable(dispositionAppraisalEditButton); webDriver.FindElement(dispositionAppraisalEditButton).Click(); } public void EditSalesDetailsButton() { - Wait(2000); - webDriver.FindElement(dispositionSalesDetailsEditButton).Click(); + SafeClick(dispositionSalesDetailsEditButton); } public void SaveDispositionFileOffersAndSale() { - Wait(); ButtonElement("Save"); } public void DeleteOffer(int index) { - Wait(); + WaitUntilClickable(By.CssSelector("button[data-testid='Offer["+ index +"].delete-btn']")); webDriver.FindElement(By.CssSelector("button[data-testid='Offer["+ index +"].delete-btn']")).Click(); - Wait(); + WaitUntilVisible(dispositionFileConfirmationModal); if (webDriver.FindElements(dispositionFileConfirmationModal).Count() > 0) { Assert.Equal("Delete Offer", sharedModals.ModalHeader()); @@ -182,7 +180,6 @@ public void DeleteOffer(int index) public void CancelDispositionFileOffersAndSale() { - Wait(); ButtonElement("Cancel"); if (webDriver.FindElements(dispositionFileConfirmationModal).Count() > 0) @@ -199,7 +196,7 @@ public void CancelDispositionFileOffersAndSale() public void CreateNewAppraisalAndAssessment(DispositionFile dispositionFile) { - Wait(); + WaitUntilClickable(dispositionAppraisalValueInput); webDriver.FindElement(dispositionAppraisalValueInput).SendKeys(dispositionFile.AppraisalAndAssessmentValue); @@ -223,14 +220,14 @@ public void CreateNewAppraisalAndAssessment(DispositionFile dispositionFile) public void CreateNewOffer(DispositionOfferAndSale offer) { - Wait(); + WaitUntilClickable(addOffersButton); webDriver.FindElement(addOffersButton).Click(); VerifyInitOfferForm(); - Wait(); + WaitUntilClickable(dispositionOfferStatusSelect); if(offer.OfferOfferStatus != "") - ChooseSpecificSelectOption(dispositionOfferStatusSelect, offer.OfferOfferStatus); + ChooseSelectOption(dispositionOfferStatusSelect, offer.OfferOfferStatus); if (offer.OfferOfferName != "") webDriver.FindElement(dispositionOfferNameInput).SendKeys(offer.OfferOfferName); @@ -262,7 +259,7 @@ public void CreateNewOffer(DispositionOfferAndSale offer) public void UpdateAppraisalAndAssessment(DispositionFile dispositionFile) { - Wait(); + WaitUntilClickable(dispositionAppraisalValueInput); if (dispositionFile.AppraisalAndAssessmentValue != "") { ClearInput(dispositionAppraisalValueInput); @@ -298,12 +295,12 @@ public void UpdateAppraisalAndAssessment(DispositionFile dispositionFile) public void UpdateOffers(DispositionOfferAndSale offerUpdate, int index) { - Wait(5000); + WaitUntilClickable(By.CssSelector("button[data-testid='Offer["+ index +"].edit-btn']")); webDriver.FindElement(By.CssSelector("button[data-testid='Offer["+ index +"].edit-btn']")).Click(); - Wait(); + WaitUntilClickable(dispositionOfferStatusSelect); if(offerUpdate.OfferOfferStatus != "") - ChooseSpecificSelectOption(dispositionOfferStatusSelect, offerUpdate.OfferOfferStatus); + ChooseSelectOption(dispositionOfferStatusSelect, offerUpdate.OfferOfferStatus); if (offerUpdate.OfferOfferName != "") { @@ -344,7 +341,6 @@ public void InsertSalesDetails(DispositionFile dispositionFile) { webDriver.FindElement(dispositionSalesDetails1stPurchaserNameDeleteBttn).Click(); - Wait(); Assert.Equal("Remove Purchaser", sharedModals.ModalHeader()); Assert.Equal("Do you wish to remove this purchaser?", sharedModals.ModalContent()); @@ -364,9 +360,9 @@ public void InsertSalesDetails(DispositionFile dispositionFile) sharedSelectContact.SelectContact(dispositionFile.PurchaserAgent, dispositionFile.PurchaserAgentType); } - Wait(); + Wait(500); if (webDriver.FindElements(dispositionSalesDetailsPurchaserAgentPrimaryContactSelect).Count > 0) - ChooseSpecificSelectOption(dispositionSalesDetailsPurchaserAgentPrimaryContactSelect, dispositionFile.PurchaserAgentPrimaryContact); + ChooseSelectOption(dispositionSalesDetailsPurchaserAgentPrimaryContactSelect, dispositionFile.PurchaserAgentPrimaryContact); if (dispositionFile.PurchaserSolicitor != "") { @@ -375,9 +371,9 @@ public void InsertSalesDetails(DispositionFile dispositionFile) sharedSelectContact.SelectContact(dispositionFile.PurchaserSolicitor, dispositionFile.PurchaserSolicitorType); } - Wait(); + Wait(500); if (webDriver.FindElements(dispositionSalesDetailsPurchaserSolicitorPrimaryContactSelect).Count > 0) - ChooseSpecificSelectOption(dispositionSalesDetailsPurchaserSolicitorPrimaryContactSelect, dispositionFile.PurchaserSolicitorPrimaryContact); + ChooseSelectOption(dispositionSalesDetailsPurchaserSolicitorPrimaryContactSelect, dispositionFile.PurchaserSolicitorPrimaryContact); if (dispositionFile.LastConditionRemovalDate != "") { @@ -410,9 +406,9 @@ public void InsertSalesDetails(DispositionFile dispositionFile) webDriver.FindElement(dispositionSalesDetailsRealtorCommissionInput).SendKeys(dispositionFile.RealtorCommission); } - ChooseSpecificSelectOption(dispositionSalesDetailsGSTSelect, dispositionFile.GSTRequired); + ChooseSelectOption(dispositionSalesDetailsGSTSelect, dispositionFile.GSTRequired); - Wait(); + Wait(500); if (webDriver.FindElements(dispositionFileConfirmationModal).Count > 0) { Assert.Equal("Confirm Change", sharedModals.ModalHeader()); @@ -564,7 +560,6 @@ public void VerifyCreatedAppraisalAndAssessment(DispositionFile disposition) public void VerifyCreatedOffer(DispositionOfferAndSale offer, int index) { - Wait(); var totalOffers = index + 1; AssertTrueIsDisplayed(By.XPath("//div[contains(text(),'Offers')]/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ totalOffers +"]/div/div/label[contains(text(),'Offer status')]")); @@ -587,8 +582,6 @@ public void VerifyCreatedOffer(DispositionOfferAndSale offer, int index) AssertTrueIsDisplayed(By.XPath("//div[contains(text(),'Offers')]/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ totalOffers +"]/div/div/label[contains(text(),'Comments')]")); if(offer.OfferNotes != "") AssertTrueContentEquals(By.CssSelector("div[data-testid='offer["+ index +"].notes']"), offer.OfferNotes); - - } public void VerifyCreatedSalesDetails(DispositionFile disposition) @@ -664,7 +657,6 @@ public void VerifyCreatedSalesDetails(DispositionFile disposition) public void VerifySalePriceError() { - Wait(); Assert.Equal("Error", sharedModals.ModalHeader()); Assert.Equal("You have not added a Sales Price. Please add a Sales Price before completion.", sharedModals.ModalContent()); } @@ -696,7 +688,7 @@ private void VerifyInitOfferForm() private void AddPurchaseNames(PurchaseMember purchaseMember, int index) { - Wait(); + WaitUntilClickable(dispositionSalesDetailsPurchaserNameLink); FocusAndClick(dispositionSalesDetailsPurchaserNameLink); FocusAndClick(By.CssSelector("div[data-testid='purchaserRow["+ index +"]'] button[title='Select Contact']")); diff --git a/testing/PIMS.Tests.Automation/PageObjects/FinancialCodes.cs b/testing/PIMS.Tests.Automation/PageObjects/FinancialCodes.cs index 7dea98748c..a716dc2d1f 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/FinancialCodes.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/FinancialCodes.cs @@ -101,7 +101,7 @@ public void CreateNewFinancialCodeBttn() public void CreateNewFinancialCode(FinancialCode financialCode) { WaitUntilClickable(financialCodeFormTypeSelect); - ChooseSpecificSelectOption(financialCodeFormTypeSelect, financialCode.FinnCodeType); + ChooseSelectOption(financialCodeFormTypeSelect, financialCode.FinnCodeType); webDriver.FindElement(financialCodeFormValueInput).SendKeys(financialCode.FinnCodeValue); webDriver.FindElement(financialCodeFormDescriptionInput).SendKeys(financialCode.FinnCodeDescription); webDriver.FindElement(financialCodeFormOrderInput).SendKeys(financialCode.FinnDisplayOrder); @@ -127,7 +127,7 @@ public void CancelFinancialCode() WaitUntilClickable(financialCodeFormCancelBttn); webDriver.FindElement(financialCodeFormCancelBttn).Click(); - Wait(); + WaitUntilVisible(financialCodeModal); if (webDriver.FindElements(financialCodeModal).Count > 0) { Assert.Equal("Confirm Changes", sharedModals.ModalHeader()); @@ -140,8 +140,7 @@ public void CancelFinancialCode() public void FilterFinancialCode(string value) { - WaitUntilClickable(financialCodeResetBttn); - webDriver.FindElement(financialCodeResetBttn).Click(); + SafeClick(financialCodeResetBttn); WaitUntilVisible(financialCodeDescriptionInput); webDriver.FindElement(financialCodeDescriptionInput).SendKeys(value); @@ -154,7 +153,7 @@ public void FilterFinancialCodeByType(string value) webDriver.FindElement(financialCodeResetBttn).Click(); WaitUntilVisible(financialCodeTypeSelect); - ChooseSpecificSelectOption(financialCodeTypeSelect, value); + ChooseSelectOption(financialCodeTypeSelect, value); webDriver.FindElement(financialCodeSearchBttn).Click(); } @@ -190,7 +189,7 @@ public void OrderByFinancialCodeExpiryDate() public int CountTotalFinancialCodeResults() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(financialCodeTableResultsTotal).Count; } @@ -202,31 +201,31 @@ public Boolean DuplicateErrorMessageDisplayed() public string FirstFinancialCodeValue() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(financialResults1stResultCodeValue).Text; } public string FirstFinancialCodeDescription() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(financialResults1stResultCodeDescription).Text; } public string FirstFinancialCodeType() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(financialResults1stResultCodeType).Text; } public string FirstFinancialCodeEffectiveDate() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(financialResults1stResultEffectiveDate).Text; } public string FirstFinancialCodeExpiryDate() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(financialResults1stResultExpiryDate).Text; } diff --git a/testing/PIMS.Tests.Automation/PageObjects/HelpDesk.cs b/testing/PIMS.Tests.Automation/PageObjects/HelpDesk.cs index 7d3aaa1433..9fba64728b 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/HelpDesk.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/HelpDesk.cs @@ -33,13 +33,13 @@ public HelpDesk(IWebDriver webDriver) : base(webDriver) public void NavigateToHelpDesk() { - Wait(); + WaitUntilClickable(mainMenuHelpDeskBttn); FocusAndClick(mainMenuHelpDeskBttn); } public void VerifyHelpDeskModal() { - Wait(); + WaitUntilVisible(mainMenuHeader); AssertTrueContentEquals(mainMenuHeader, "Help Desk"); diff --git a/testing/PIMS.Tests.Automation/PageObjects/LeaseConsultations.cs b/testing/PIMS.Tests.Automation/PageObjects/LeaseConsultations.cs index 173ae8e969..c3c8d6456a 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/LeaseConsultations.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/LeaseConsultations.cs @@ -83,7 +83,7 @@ public LeaseConsultations(IWebDriver webDriver) : base(webDriver) public void NavigateToConsultationsTab() { - Wait(); + WaitUntilClickable(consultationLink); webDriver.FindElement(consultationLink).Click(); } @@ -95,9 +95,9 @@ public void AddConsultationBttn() public void AddUpdateConsultation(LeaseConsultation consultation) { - Wait(); + WaitUntilClickable(consultationTypeSelect); - ChooseSpecificSelectOption(consultationTypeSelect, consultation.leaseConsultationType); + ChooseSelectOption(consultationTypeSelect, consultation.leaseConsultationType); if (consultation.leaseConsultationType == "Other") { @@ -121,9 +121,9 @@ public void AddUpdateConsultation(LeaseConsultation consultation) if (consultation.leaseConsultationContactPrimaryContact != "") { AssertTrueIsDisplayed(consultationContactPrimaryLabel); - ChooseSpecificSelectOption(consultationContactPrimarySelect, consultation.leaseConsultationContactPrimaryContact); + ChooseSelectOption(consultationContactPrimarySelect, consultation.leaseConsultationContactPrimaryContact); } - ChooseSpecificSelectOption(consultationResponseReceivedSelect, consultation.leaseConsultationReceived); + ChooseSelectOption(consultationResponseReceivedSelect, consultation.leaseConsultationReceived); if (consultation.leaseConsultationReceivedOn != "") { AssertTrueIsDisplayed(consultationReceivedOnLabel); @@ -132,7 +132,7 @@ public void AddUpdateConsultation(LeaseConsultation consultation) webDriver.FindElement(consultationReceivedOnDate).SendKeys(consultation.leaseConsultationReceivedOn); webDriver.FindElement(consultationReceivedOnDate).SendKeys(Keys.Enter); } - ChooseSpecificSelectOption(consultationOutcomeSelect, consultation.leaseConsultationOutcome); + ChooseSelectOption(consultationOutcomeSelect, consultation.leaseConsultationOutcome); if (consultation.leaseConsultationComment != "") { ClearInput(consultationCommentsTextarea); @@ -142,100 +142,90 @@ public void AddUpdateConsultation(LeaseConsultation consultation) public void EditLastConsultationByType(string consultationType) { - Wait(); + WaitUntilClickable(consultationDistrictExpandBttn); switch (consultationType) { case "District": - ButtonElement(consultationDistrictExpandBttn); - Wait(); + SafeClick(consultationDistrictExpandBttn); + int lastDistrictConsultation = webDriver.FindElements(consultationDistrictCount).Count; webDriver.FindElement(By.XPath("//span[contains(text(),'District')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastDistrictConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")).Click(); break; case "Engineering": - ButtonElement(consultationEngineeringExpandBttn); - Wait(); + SafeClick(consultationEngineeringExpandBttn); int lastEngineerConsultation = webDriver.FindElements(consultationEngineeringCount).Count; - webDriver.FindElement(By.XPath("//span[contains(text(),'Engineering')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastEngineerConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")).Click(); + SafeClick(By.XPath("//span[contains(text(),'Engineering')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastEngineerConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")); break; case "First Nation": - ButtonElement(consultationFirstNationExpandBttn); - Wait(); + SafeClick(consultationFirstNationExpandBttn); int lastFirstNationConsultation = webDriver.FindElements(consultationFirstNationCount).Count; - webDriver.FindElement(By.XPath("//span[contains(text(),'First Nation')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastFirstNationConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")).Click(); + SafeClick(By.XPath("//span[contains(text(),'First Nation')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastFirstNationConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")); break; case "Headquarter (HQ)": - ButtonElement(consultationHeadquarterExpandBttn); - Wait(); + SafeClick(consultationHeadquarterExpandBttn); int lastHeadquarterConsultation = webDriver.FindElements(consultationHeadquarterCount).Count; - webDriver.FindElement(By.XPath("//span[contains(text(),'Headquarter (HQ)')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastHeadquarterConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")).Click(); + SafeClick(By.XPath("//span[contains(text(),'Headquarter (HQ)')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastHeadquarterConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")); break; case "Regional planning": - ButtonElement(consultationRegionalPlanningExpandBttn); - Wait(); + SafeClick(consultationRegionalPlanningExpandBttn); int lastRegionalPlanningConsultation = webDriver.FindElements(consultationRegionalPlanningCount).Count; - webDriver.FindElement(By.XPath("//span[contains(text(),'Regional planning')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastRegionalPlanningConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")).Click(); + SafeClick(By.XPath("//span[contains(text(),'Regional planning')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastRegionalPlanningConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")); break; case "Regional property services": - ButtonElement(consultationRegionalPropServicesExpandBttn); - Wait(); + SafeClick(consultationRegionalPropServicesExpandBttn); int lastRegionalPropServicesConsultation = webDriver.FindElements(consultationRegionalPropServicesCount).Count; - webDriver.FindElement(By.XPath("//span[contains(text(),'Regional property services')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastRegionalPropServicesConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")).Click(); + SafeClick(By.XPath("//span[contains(text(),'Regional property services')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastRegionalPropServicesConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")); break; case "Strategic Real Estate (SRE)": - ButtonElement(consultationSREExpandBttn); - Wait(); + SafeClick(consultationSREExpandBttn); int lastSREConsultation = webDriver.FindElements(consultationSRECount).Count; - webDriver.FindElement(By.XPath("//span[contains(text(),'Strategic Real Estate (SRE)')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastSREConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")).Click(); + SafeClick(By.XPath("//span[contains(text(),'Strategic Real Estate (SRE)')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastSREConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")); break; case "Other": - ButtonElement(consultationOtherExpandBttn); - Wait(); + SafeClick(consultationOtherExpandBttn); int lastOtherConsultation = webDriver.FindElements(consultationOtherCount).Count; - webDriver.FindElement(By.XPath("//span[contains(text(),'Other')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastOtherConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")).Click(); + SafeClick(By.XPath("//span[contains(text(),'Other')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastOtherConsultation +"]/div/h2/div/div/div/div/div/div/button[@title='Edit Consultation']")); break; } } public void DeleteFirstConsultationByType(string consultationType) { - Wait(); switch (consultationType) { case "District": - ButtonElement(consultationDistrictExpandBttn); + SafeClick(consultationDistrictExpandBttn); webDriver.FindElement(By.CssSelector("div[data-testid='consultation-group-section-District'] consultations[0].delete-btn")).Click(); break; case "Engineering": - ButtonElement(consultationEngineeringExpandBttn); + SafeClick(consultationEngineeringExpandBttn); webDriver.FindElement(By.CssSelector("div[data-testid='consultation-group-section-Engineering'] consultations[0].delete-btn")).Click(); break; case "First Nation": - ButtonElement(consultationFirstNationExpandBttn); + SafeClick(consultationFirstNationExpandBttn); webDriver.FindElement(By.CssSelector("div[data-testid='consultation-group-section-First Nation'] consultations[0].delete-btn")).Click(); break; case "Headquarter (HQ)": - ButtonElement(consultationHeadquarterExpandBttn); + SafeClick(consultationHeadquarterExpandBttn); webDriver.FindElement(By.CssSelector("div[data-testid='consultation-group-section-Headquarter (HQ)'] consultations[0].delete-btn")).Click(); break; case "Regional planning": - ButtonElement(consultationRegionalPlanningExpandBttn); + SafeClick(consultationRegionalPlanningExpandBttn); webDriver.FindElement(By.CssSelector("div[data-testid='consultation-group-section-Regional Planning'] consultations[0].delete-btn")).Click(); break; case "Regional property services": - ButtonElement(consultationRegionalPropServicesExpandBttn); + SafeClick(consultationRegionalPropServicesExpandBttn); webDriver.FindElement(By.CssSelector("div[data-testid='consultation-group-section-Regional Property Services'] consultations[0].delete-btn")).Click(); break; case "Strategic Real Estate (SRE)": - ButtonElement(consultationSREExpandBttn); + SafeClick(consultationSREExpandBttn); webDriver.FindElement(By.CssSelector("div[data-testid='consultation-group-section-Strategic Real Estate (SRE)'] consultations[0].delete-btn")).Click(); break; case "Other": - ButtonElement(consultationOtherExpandBttn); + SafeClick(consultationOtherExpandBttn); webDriver.FindElement(By.CssSelector("div[data-testid='consultation-Other-items'] button[data-testid='consultations[0].delete-btn']")).Click(); break; } - - Wait(); Assert.Equal("Delete Consultation", sharedModals.ModalHeader()); Assert.Contains("You have selected to delete this Consultation.", sharedModals.ModalContent()); @@ -246,7 +236,7 @@ public void DeleteFirstConsultationByType(string consultationType) public void VerifyInitConsultationTab() { - Wait(); + WaitUntilVisible(consultationTitle); AssertTrueIsDisplayed(consultationTitle); AssertTrueIsDisplayed(consultationAddButton); AssertTrueIsDisplayed(consultationDistrictSubtitle); @@ -284,11 +274,10 @@ public void VerifyConsultationCreateForm() public void VerifyLastInsertedConsultationView(LeaseConsultation consultation) { - Wait(); switch (consultation.leaseConsultationType) { case "District": - ButtonElement(consultationDistrictExpandBttn); + SafeClick(consultationDistrictExpandBttn); int lastDistrictConsultation = webDriver.FindElements(consultationDistrictCount).Count; AssertTrueContentEquals(By.XPath("//span[contains(text(),'District')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastDistrictConsultation +"]/div/h2/div/div/div/div/div[1]"), consultation.leaseConsultationOutcome); @@ -313,7 +302,7 @@ public void VerifyLastInsertedConsultationView(LeaseConsultation consultation) AssertTrueContentEquals(By.XPath("//span[contains(text(),'District')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastDistrictConsultation +"]/div/div/div/div/label[contains(text(),'Comments')]/parent::div/following-sibling::div"), consultation.leaseConsultationComment); break; case "Engineering": - ButtonElement(consultationEngineeringExpandBttn); + SafeClick(consultationEngineeringExpandBttn); int lastEngineerConsultation = webDriver.FindElements(consultationEngineeringCount).Count; AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Engineering')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastEngineerConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]")); AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Engineering')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastEngineerConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]/span")); @@ -336,7 +325,7 @@ public void VerifyLastInsertedConsultationView(LeaseConsultation consultation) AssertTrueContentEquals(By.XPath("//span[contains(text(),'Engineering')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastEngineerConsultation +"]/div/div/div/div/label[contains(text(),'Comments')]/parent::div/following-sibling::div"), consultation.leaseConsultationComment); break; case "First Nation": - ButtonElement(consultationFirstNationExpandBttn); + SafeClick(consultationFirstNationExpandBttn); int lastFirstNationConsultation = webDriver.FindElements(consultationFirstNationCount).Count; AssertTrueIsDisplayed(By.XPath("//div[@data-testid='consultation-First Nation-items']/div["+ lastFirstNationConsultation +"]/div/div/label[text()='Requested on']")); AssertTrueIsDisplayed(By.XPath("//div[@data-testid='consultation-First Nation-items']/div["+ lastFirstNationConsultation +"]/div/div/label[text()='Requested on']/span")); @@ -359,7 +348,7 @@ public void VerifyLastInsertedConsultationView(LeaseConsultation consultation) AssertTrueContentEquals(By.XPath("//div[@data-testid='consultation-First Nation-items']/div["+ lastFirstNationConsultation +"]/div/div/label[text()='Comments']/parent::div/following-sibling::div"), consultation.leaseConsultationComment); break; case "Headquarter (HQ)": - ButtonElement(consultationHeadquarterExpandBttn); + SafeClick(consultationHeadquarterExpandBttn); int lastHeadquarterConsultation = webDriver.FindElements(consultationHeadquarterCount).Count; AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Headquarter (HQ)')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastHeadquarterConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]")); AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Headquarter (HQ)')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastHeadquarterConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]/span")); @@ -382,7 +371,7 @@ public void VerifyLastInsertedConsultationView(LeaseConsultation consultation) AssertTrueContentEquals(By.XPath("//span[contains(text(),'Headquarter (HQ)')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastHeadquarterConsultation +"]/div/div/div/div/label[contains(text(),'Comments')]/parent::div/following-sibling::div"), consultation.leaseConsultationComment); break; case "Regional planning": - ButtonElement(consultationRegionalPlanningExpandBttn); + SafeClick(consultationRegionalPlanningExpandBttn); int lastRegionalPlanningConsultation = webDriver.FindElements(consultationRegionalPlanningCount).Count; AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Regional planning')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastRegionalPlanningConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]")); AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Regional planning')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastRegionalPlanningConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]/span")); @@ -405,7 +394,7 @@ public void VerifyLastInsertedConsultationView(LeaseConsultation consultation) AssertTrueContentEquals(By.XPath("//span[contains(text(),'Regional planning')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastRegionalPlanningConsultation +"]/div/div/div/div/label[contains(text(),'Comments')]/parent::div/following-sibling::div"), consultation.leaseConsultationComment); break; case "Regional property services": - ButtonElement(consultationRegionalPropServicesExpandBttn); + SafeClick(consultationRegionalPropServicesExpandBttn); int lastRegionalPropServicesConsultation = webDriver.FindElements(consultationRegionalPropServicesCount).Count; AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Regional property services')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastRegionalPropServicesConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]")); AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Regional property services')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastRegionalPropServicesConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]/span")); @@ -428,7 +417,7 @@ public void VerifyLastInsertedConsultationView(LeaseConsultation consultation) AssertTrueContentEquals(By.XPath("//span[contains(text(),'Regional property services')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastRegionalPropServicesConsultation +"]/div/div/div/div/label[contains(text(),'Comments')]/parent::div/following-sibling::div"), consultation.leaseConsultationComment); break; case "Strategic Real Estate (SRE)": - ButtonElement(consultationSREExpandBttn); + SafeClick(consultationSREExpandBttn); int lastSREConsultation = webDriver.FindElements(consultationSRECount).Count; AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Strategic Real Estate (SRE)')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastSREConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]")); AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Strategic Real Estate (SRE)')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastSREConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]/span")); @@ -451,7 +440,7 @@ public void VerifyLastInsertedConsultationView(LeaseConsultation consultation) AssertTrueContentEquals(By.XPath("//span[contains(text(),'Strategic Real Estate (SRE)')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastSREConsultation +"]/div/div/div/div/label[contains(text(),'Comments')]/parent::div/following-sibling::div"), consultation.leaseConsultationComment); break; case "Other": - ButtonElement(consultationOtherExpandBttn); + SafeClick(consultationOtherExpandBttn); int lastOtherConsultation = webDriver.FindElements(consultationOtherCount).Count; AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Other')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastOtherConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]")); AssertTrueIsDisplayed(By.XPath("//span[contains(text(),'Other')]/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div["+ lastOtherConsultation +"]/div/div/div/div/label[contains(text(),'Requested on')]/span")); diff --git a/testing/PIMS.Tests.Automation/PageObjects/LeaseDeposits.cs b/testing/PIMS.Tests.Automation/PageObjects/LeaseDeposits.cs index 61d4e6cbfa..d0c20124f6 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/LeaseDeposits.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/LeaseDeposits.cs @@ -93,7 +93,7 @@ public LeaseDeposits(IWebDriver webDriver) : base(webDriver) public void NavigateToDepositSection() { - Wait(); + WaitUntilClickable(licenseDepositsLink); webDriver.FindElement(licenseDepositsLink).Click(); } @@ -111,7 +111,7 @@ public void CancelDeposit() public void AddDeposit(Deposit deposit) { WaitUntilClickable(licenseDepositAddTypeSelect); - ChooseSpecificSelectOption(licenseDepositAddTypeSelect, deposit.DepositType); + ChooseSelectOption(licenseDepositAddTypeSelect, deposit.DepositType); WaitUntilVisible(licenseDepositAddDescriptionTextarea); if (webDriver.FindElements(licenseDepositAddOtherTypeInput).Count() > 0) @@ -159,7 +159,7 @@ public void AddReturn(Deposit deposit) public void AddNotes(string notes) { - Wait(); + WaitUntilClickable(licenseDepositEditNotesBttn); FocusAndClick(licenseDepositEditNotesBttn); WaitUntilVisible(licenseDepositNotesTextarea); @@ -168,7 +168,7 @@ public void AddNotes(string notes) public void DeleteFirstReturn() { - Wait(); + WaitUntilClickable(licenseDepositReturn1stRowDeleteBttn); FocusAndClick(licenseDepositReturn1stRowDeleteBttn); WaitUntilVisible(licenseDepositModal); @@ -182,10 +182,9 @@ public void EditLastDeposit(Deposit deposit) Wait(); var totalDeposits = webDriver.FindElements(licenseDepositTableTotal).Count; - Wait(); - webDriver.FindElement(By.CssSelector("div[data-testid='securityDepositsTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child("+ totalDeposits +") button[title='edit deposit']")).Click(); + SafeClick(By.CssSelector("div[data-testid='securityDepositsTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child("+ totalDeposits +") button[title='edit deposit']")); - ChooseSpecificSelectOption(licenseDepositAddTypeSelect, deposit.DepositType); + ChooseSelectOption(licenseDepositAddTypeSelect, deposit.DepositType); WaitUntilVisible(licenseDepositAddDescriptionTextarea); if (webDriver.FindElements(licenseDepositAddOtherTypeInput).Count() > 0) @@ -278,7 +277,7 @@ public void VerifyCreateDepositForm() public void VerifyCreatedDepositTable(Deposit deposit) { - Wait(5000); + Wait(); var totalDeposits = webDriver.FindElements(licenseDepositTableTotal).Count; var licenseDepositTableLastRowDepositTypeContent = By.CssSelector("div[data-testid='securityDepositsTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child("+ totalDeposits +") div[class='td']:nth-child(1)"); @@ -342,7 +341,7 @@ public void VerifyCreateReturnForm(Deposit deposit) public void VerifyCreatedReturnTable(Deposit deposit) { - Wait(3000); + Wait(); var totalReturns = webDriver.FindElements(licenseDepositReturnTableTotal).Count; var licenseDepositReturnTableLastRowDepositTypeContent = By.CssSelector("div[data-testid='securityDepositReturnsTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child("+ totalReturns + ") div[class='td']:nth-child(1)"); diff --git a/testing/PIMS.Tests.Automation/PageObjects/LeaseDetails.cs b/testing/PIMS.Tests.Automation/PageObjects/LeaseDetails.cs index 5b911e9615..a8db8d5101 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/LeaseDetails.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/LeaseDetails.cs @@ -196,16 +196,16 @@ public LeaseDetails(IWebDriver webDriver) : base(webDriver) public void NavigateToCreateNewLicense() { - Wait(); + WaitUntilClickable(menuManagementButton); FocusAndClick(menuManagementButton); - Wait(); + WaitUntilClickable(createLicenseButton); FocusAndClick(createLicenseButton); } public void NavigateToAddPropertiesLeasesFile() { - Wait(); + WaitUntilClickable(leaseEditPropertiesBttn); webDriver.FindElement(leaseEditPropertiesBttn).Click(); } @@ -214,10 +214,9 @@ public void CreateMinimumLicenseDetails(Lease lease) Wait(); //MAIN DETAILS - //Status if (lease.LeaseStatus != "") - ChooseSpecificSelectOption(licenseDetailsStatusSelector, lease.LeaseStatus); + ChooseSelectOption(licenseDetailsStatusSelector, lease.LeaseStatus); //Termination reason if (lease.LeaseTerminationReason != "") @@ -245,7 +244,7 @@ public void CreateMinimumLicenseDetails(Lease lease) //Account Type if (lease.AccountType != "") - ChooseSpecificSelectOption(licenseDetailsAccountTypeSelector, lease.AccountType); + ChooseSelectOption(licenseDetailsAccountTypeSelector, lease.AccountType); //Start Date if (lease.LeaseStartDate != "") @@ -262,12 +261,10 @@ public void CreateMinimumLicenseDetails(Lease lease) //Administration Details //MOTI Region - if(lease.MOTIRegion != "") - ChooseSpecificSelectOption(licenseDetailsMotiRegionSelector, lease.MOTIRegion); + ChooseSelectOption(licenseDetailsMotiRegionSelector, lease.MOTIRegion); //Program - if (lease.Program != "") - ChooseSpecificSelectOption(licenseDetailsProgramSelector, lease.Program); + ChooseSelectOption(licenseDetailsProgramSelector, lease.Program); //If other Program is selected, insert input if (webDriver.FindElements(licenseDetailsOtherProgramInput).Count > 0 && lease.ProgramOther != "") @@ -279,7 +276,7 @@ public void CreateMinimumLicenseDetails(Lease lease) //Type if (lease.AdminType != "") - ChooseSpecificSelectOption(licenseDetailsTypeSelector, lease.AdminType); + ChooseSelectOption(licenseDetailsTypeSelector, lease.AdminType); //If other Type is selected, insert input if (webDriver.FindElements(licenseDetailsOtherTypeInput).Count > 0 && lease.TypeOther != "") @@ -296,20 +293,8 @@ public void CreateMinimumLicenseDetails(Lease lease) } if (lease.LeasePurpose.Count > 0) - { foreach (string purpose in lease.LeasePurpose) - { - webDriver.FindElement(licenseDetailsPurposeLabel).Click(); - - Wait(); - FocusAndClick(licenseDetailsPurposeMultiselector); - - Wait(5000); - ChooseMultiSelectSpecificOption(licenseDetailsPurposeOptions, purpose); - } - - webDriver.FindElement(licenseDetailsPurposeLabel).Click(); - } + ChooseMultiSelectOption(licenseDetailsPurposeMultiselector, licenseDetailsPurposeOptions, licenseDetailsPurposeLabel, purpose); //If other Purpose is selected, insert input if (webDriver.FindElements(licenseDetailsOtherPurposeInput).Count > 0 && lease.PurposeOther != "") @@ -321,7 +306,7 @@ public void CreateMinimumLicenseDetails(Lease lease) public void UpdateLeaseFileDetails(Lease lease) { - Wait(); + WaitUntilVisible(licenseDetailsCreateSubtitle); //ORIGINAL AGREEMENT AssertTrueIsDisplayed(licenseDetailsCreateSubtitle); @@ -332,18 +317,20 @@ public void UpdateLeaseFileDetails(Lease lease) { ClearInput(licenseDetailsProjectInput); webDriver.FindElement(licenseDetailsProjectInput).SendKeys(lease.MinistryProject); - webDriver.FindElement(licenseDetailsProjectInput).SendKeys(Keys.Enter); + Wait(500); + webDriver.FindElement(licenseDetailsProjectInput).SendKeys(Keys.Space); + Wait(500); webDriver.FindElement(licenseDetailsProjectInput).SendKeys(Keys.Backspace); - Wait(); - webDriver.FindElement(licenseDetailsProject1stOption).Click(); + WaitUntilVisible(licenseDetailsProject1stOption); + SafeClick(licenseDetailsProject1stOption); } //Product if (lease.MinistryProduct != "") { AssertTrueIsDisplayed(licenseDetailsProductLabel); - ChooseSpecificSelectOption(licenseDetailsProductSelect, lease.MinistryProduct); + ChooseSelectOption(licenseDetailsProductSelect, lease.MinistryProduct); } //Status @@ -355,7 +342,7 @@ public void UpdateLeaseFileDetails(Lease lease) IWebElement selectedStatus = selectStatusElement.SelectedOption; string previousStatus = selectedStatus.Text; - ChooseSpecificSelectOption(licenseDetailsStatusSelector, lease.LeaseStatus); + ChooseSelectOption(licenseDetailsStatusSelector, lease.LeaseStatus); Wait(); if (webDriver.FindElements(licenseDetailsConfirmationModal).Count > 0) @@ -372,7 +359,7 @@ public void UpdateLeaseFileDetails(Lease lease) if (lease.AccountType != "") { webDriver.FindElement(licenseDetailsAccountTypeSelector).Click(); - ChooseSpecificSelectOption(licenseDetailsAccountTypeSelector, lease.AccountType); + ChooseSelectOption(licenseDetailsAccountTypeSelector, lease.AccountType); } //Commencement Date @@ -428,12 +415,12 @@ public void UpdateLeaseFileDetails(Lease lease) //Appraisal AssertTrueIsDisplayed(licenseDetailsProgressAppraisalLabel); if (lease.LeaseProgressAppraisal != "") - ChooseSpecificSelectOption(licenseDetailsProgressAppraisalSelector, lease.LeaseProgressAppraisal); + ChooseSelectOption(licenseDetailsProgressAppraisalSelector, lease.LeaseProgressAppraisal); //Legal Survey AssertTrueIsDisplayed(licenseDetailsProgressLegalSurveyLabel); if (lease.LeaseProgressLegalSurvey != "") - ChooseSpecificSelectOption(licenseDetailsProgressLegalSurveySelector, lease.LeaseProgressLegalSurvey); + ChooseSelectOption(licenseDetailsProgressLegalSurveySelector, lease.LeaseProgressLegalSurvey); } //RENEWAL OPTIONS @@ -444,7 +431,7 @@ public void UpdateLeaseFileDetails(Lease lease) { webDriver.FindElement(licenceDetailsFirstRenewalDeleteBttn).Click(); - Wait(); + WaitUntilVisible(licenseDetailsConfirmationModal); if (webDriver.FindElements(licenseDetailsConfirmationModal).Count > 0) { Assert.Equal("Remove Renewal", sharedModals.ModalHeader()); @@ -455,11 +442,11 @@ public void UpdateLeaseFileDetails(Lease lease) } ScrollToElement(licenseDetailsAddRenewButton); - Wait(); + WaitUntilClickable(licenseDetailsAddRenewButton); for (var i = 0; i < lease.LeaseRenewals.Count; i++) { webDriver.FindElement(licenseDetailsAddRenewButton).Click(); - ChooseSpecificSelectOption(By.Id("input-renewals."+ i +".isExercised"), lease.LeaseRenewals[i].RenewalIsExercised); + ChooseSelectOption(By.Id("input-renewals."+ i +".isExercised"), lease.LeaseRenewals[i].RenewalIsExercised); webDriver.FindElement(By.Id("datepicker-renewals."+ i +".commencementDt")).SendKeys(lease.LeaseRenewals[i].RenewalCommencementDate); webDriver.FindElement(By.Id("datepicker-renewals."+ i +".commencementDt")).SendKeys(Keys.Enter); @@ -482,13 +469,11 @@ public void UpdateLeaseFileDetails(Lease lease) //MOTI Region AssertTrueIsDisplayed(licenseDetailsMotiRegionLabel); - if (lease.MOTIRegion != "") - ChooseSpecificSelectOption(licenseDetailsMotiRegionSelector, lease.MOTIRegion); + ChooseSelectOption(licenseDetailsMotiRegionSelector, lease.MOTIRegion); //Program AssertTrueIsDisplayed(licenseDetailsProgramLabel); - if (lease.Program != "") - ChooseSpecificSelectOption(licenseDetailsProgramSelector, lease.Program); + ChooseSelectOption(licenseDetailsProgramSelector, lease.Program); //If other Program is selected, insert input if (webDriver.FindElements(licenseDetailsOtherProgramInput).Count > 0 && lease.ProgramOther != "") @@ -501,8 +486,7 @@ public void UpdateLeaseFileDetails(Lease lease) //Type AssertTrueIsDisplayed(licenseDetailsTypeLabel); - if (lease.AdminType != "") - ChooseSpecificSelectOption(licenseDetailsTypeSelector, lease.AdminType); + ChooseSelectOption(licenseDetailsTypeSelector, lease.AdminType); //If other Type is selected, insert input if (webDriver.FindElements(licenseDetailsOtherTypeInput).Count > 0 && lease.TypeOther != "") @@ -524,10 +508,8 @@ public void UpdateLeaseFileDetails(Lease lease) { foreach (string purpose in lease.LeasePurpose) { - FocusAndClick(licenseDetailsPurposeMultiselector); - - WaitUntilClickable(licenseDetailsPurposeOptions); - ChooseMultiSelectSpecificOption(licenseDetailsPurposeOptions, purpose); + SafeClick(licenseDetailsPurposeMultiselector); + ChooseMultiSelectOption(licenseDetailsPurposeMultiselector, licenseDetailsPurposeOptions, licenseDetailsPurposeLabel, purpose); } } @@ -544,13 +526,13 @@ public void UpdateLeaseFileDetails(Lease lease) AssertTrueIsDisplayed(licenseDetailsInitiatorLabel); AssertTrueIsDisplayed(licenseDetailsInitiatorTooltip); if (lease.Initiator != "") - ChooseSpecificSelectOption(licenseDetailsInitiatorSelector, lease.Initiator); + ChooseSelectOption(licenseDetailsInitiatorSelector, lease.Initiator); //Responsibility AssertTrueIsDisplayed(licenseDetailsResponsibilityLabel); AssertTrueIsDisplayed(licenseDetailsResponsibilityTooltip); if (lease.Responsibility != "") - ChooseSpecificSelectOption(licenseDetailsResposibilitySelector, lease.Responsibility); + ChooseSelectOption(licenseDetailsResposibilitySelector, lease.Responsibility); //Effective date of responsibility AssertTrueIsDisplayed(licenseDetailsEffectiveDateLabel); @@ -593,11 +575,11 @@ public void UpdateLeaseFileDetails(Lease lease) AssertTrueIsDisplayed(licenseDetailsFeeDeterminationPublicBenefitLabel); if (lease.FeeDeterminationPublicBenefit != "") - ChooseSpecificSelectOption(licenseDetailsFeeDeterminationPublicBenefitInput, lease.FeeDeterminationPublicBenefit); + ChooseSelectOption(licenseDetailsFeeDeterminationPublicBenefitInput, lease.FeeDeterminationPublicBenefit); AssertTrueIsDisplayed(licenseDetailsFeeDeterminationFinancialGainLabel); if(lease.FeeDeterminationFinancialGain != "") - ChooseSpecificSelectOption(licenseDetailsFeeDeterminationFinancialGainInput, lease.FeeDeterminationFinancialGain); + ChooseSelectOption(licenseDetailsFeeDeterminationFinancialGainInput, lease.FeeDeterminationFinancialGain); AssertTrueIsDisplayed(licenseDetailsFeeDeterminationSuggestedFeeLabel); AssertTrueIsDisplayed(licenseDetaulsFeeDeterminationSuggestedFeeTooltip); @@ -614,7 +596,7 @@ public void UpdateLeaseFileDetails(Lease lease) public void EditLeaseFileDetailsBttn() { - Wait(); + WaitUntilClickable(licenseDetailsEditIcon); webDriver.FindElement(licenseDetailsEditIcon).Click(); } @@ -626,13 +608,14 @@ public void SaveLicense() Wait(); while (webDriver.FindElements(licenseDetailsConfirmationModal).Count > 0) { + Wait(500); //If PID is already associated with another license if (webDriver.FindElements(licensesDetailsPropertiesModal).Count > 0) { Assert.Contains("is attached to L-File #", webDriver.FindElement(licensesDetailsPropertiesModalContent).Text); - webDriver.FindElement(licensesDetailsPropertiesOkBttn).Click(); - + SafeClick(licensesDetailsPropertiesOkBttn); Wait(); + } else if (sharedModals.ModalContent().Contains("The selected property already exists in the system's inventory")) { @@ -640,7 +623,6 @@ public void SaveLicense() Assert.Contains("The selected property already exists in the system's inventory. However, the record is missing spatial details.", sharedModals.ModalContent()); Assert.Contains("To add the property, the spatial details for this property will need to be updated. The system will attempt to update the property record with spatial information from the current selection.", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - Wait(); } else if (sharedModals.ModalContent().Contains("You have made changes to the properties in this file.")) @@ -649,7 +631,6 @@ public void SaveLicense() Assert.Contains("You have made changes to the properties in this file.", sharedModals.ModalContent()); Assert.Contains("Do you want to save these changes?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - Wait(); } else if (sharedModals.IsConfirmationModalParagraph1Visible()) @@ -658,7 +639,6 @@ public void SaveLicense() Assert.Contains("If you save it, only the administrator can turn it back on. You will still see it in the management table.", sharedModals.ConfirmationModalParagraph1()); Assert.Equal("Do you want to acknowledge and proceed?", sharedModals.ConfirmationModalParagraph2()); sharedModals.ModalClickOKBttn(); - Wait(); } else if (sharedModals.IsConfirmationModalParagraph2Visible()) @@ -667,7 +647,6 @@ public void SaveLicense() Assert.Contains("A primary contact for", sharedModals.ConfirmationModalParagraph1()); Assert.Equal("Do you want to acknowledge and proceed?", sharedModals.ConfirmationModalParagraph2()); sharedModals.SecondaryModalClickOKBttn(); - Wait(); } else if (sharedModals.ModalHeader() == "Error") @@ -680,7 +659,6 @@ public void SaveLicense() public void SaveLicenseWithExpectedErrors() { - Wait(); ButtonElement("Save"); Wait(); @@ -691,23 +669,20 @@ public void SaveLicenseWithExpectedErrors() Assert.Contains("Lease File Stakeholder can not be removed since it's assigned as a payee for a compensation requisition", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); break; - } + } } } public void CancelLicense() { - Wait(); - FocusAndClick(By.CssSelector("button[data-testid='cancel-button']")); + SafeClick(By.CssSelector("button[data-testid='cancel-button']")); sharedModals.CancelActionModal(); - - Wait(); } public string GetLeaseCode() { - Wait(); + WaitUntilVisible(licenseHeaderNbrContent); return webDriver.FindElement(licenseHeaderNbrContent).Text; } @@ -719,7 +694,7 @@ public string GetLeaseAccountType() public void VerifyLicenseDetailsInitCreateForm() { - Wait(6000); + WaitUntilVisible(licenseDetailsCreateSubtitle); //Create Title //AssertTrueIsDisplayed(licenseCreateTitle); @@ -816,15 +791,17 @@ public void UpdateLicensePropertiesForm(LeaseProperty property, int propertyIdx) public void VerifyLicenseHeader(Lease lease) { + Wait(); AssertTrueIsDisplayed(licenseHeaderNbrLabel); AssertTrueContentNotEquals(licenseHeaderNbrContent, ""); AssertTrueContentNotEquals(licenseHeaderAccountType, ""); AssertTrueIsDisplayed(licenseHeaderProperty); - - if(lease.AccountType == "Receivable") + + if (lease.AccountType == "Receivable") AssertTrueIsDisplayed(licenseHeaderTenantLabel); else AssertTrueIsDisplayed(licenseHeaderPayeeLabel); + AssertTrueIsDisplayed(licenseHeaderStartDateLabel); AssertTrueContentEquals(licenseHeaderStartDateContent, TransformDateFormat(lease.LeaseStartDate)); AssertTrueIsDisplayed(licenseHeaderExpiryDateLabel); diff --git a/testing/PIMS.Tests.Automation/PageObjects/LeaseInsurance.cs b/testing/PIMS.Tests.Automation/PageObjects/LeaseInsurance.cs index 88c4fa9520..e6f33edcd5 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/LeaseInsurance.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/LeaseInsurance.cs @@ -194,15 +194,15 @@ public LeaseInsurance(IWebDriver webDriver) : base(webDriver) //Navigate to Insurance section public void NavigateToInsuranceSection() { - Wait(); - webDriver.FindElement(licenseInsuranceLink).Click(); + WaitUntilClickable(licenseInsuranceLink); + SafeClick(licenseInsuranceLink); } //Edit Insurance section public void EditInsuranceButton() { - Wait(); - webDriver.FindElement(insuranceEditIcon).Click(); + WaitUntilClickable(insuranceEditIcon); + SafeClick(insuranceEditIcon); } //Add Accidental Coverage @@ -223,7 +223,7 @@ public void AddAccidentalInsurance(Lease lease) //Fill out form if (lease.AccidentalInsuranceInPlace != "") - ChooseSpecificSelectOption(insuranceAccidentalInPlaceSelect, lease.AccidentalInsuranceInPlace); + ChooseSelectOption(insuranceAccidentalInPlaceSelect, lease.AccidentalInsuranceInPlace); if (lease.AccidentalLimit != "") webDriver.FindElement(insuranceAccidentalLimitInput).SendKeys(lease.AccidentalLimit); @@ -259,7 +259,7 @@ public void AddAircraftInsurance(Lease lease) //Fill out form if(lease.AircraftInsuranceInPlace != "") - ChooseSpecificSelectOption(insuranceAircraftInPlaceSelect, lease.AircraftInsuranceInPlace); + ChooseSelectOption(insuranceAircraftInPlaceSelect, lease.AircraftInsuranceInPlace); if (lease.AircraftLimit != "") webDriver.FindElement(insuranceAircraftLimitInput).SendKeys(lease.AircraftLimit); @@ -295,11 +295,10 @@ public void AddCGLInsurance(Lease lease) AssertTrueIsDisplayed(insuranceCGLDescriptionTextarea); //Fill out form - Wait(); if (lease.CGLInsuranceInPlace != "") { WaitUntilClickable(insuranceCGLInPlaceSelect); - ChooseSpecificSelectOption(insuranceCGLInPlaceSelect, lease.CGLInsuranceInPlace); + ChooseSelectOption(insuranceCGLInPlaceSelect, lease.CGLInsuranceInPlace); } if (lease.CGLLimit != "") { @@ -342,7 +341,7 @@ public void AddMarineInsurance(Lease lease) if (lease.MarineInsuranceInPlace != "") { WaitUntilClickable(insuranceMarineInPlaceSelect); - ChooseSpecificSelectOption(insuranceMarineInPlaceSelect, lease.MarineInsuranceInPlace); + ChooseSelectOption(insuranceMarineInPlaceSelect, lease.MarineInsuranceInPlace); } if (lease.MarineLimit != "") @@ -389,7 +388,7 @@ public void AddUnmannedAirVehicleInsurance(Lease lease) if (lease.UnmannedAirVehicleInsuranceInPlace != "") { WaitUntilClickable(insuranceUnmannedAirVehicleInPlaceSelect); - ChooseSpecificSelectOption(insuranceUnmannedAirVehicleInPlaceSelect, lease.UnmannedAirVehicleInsuranceInPlace); + ChooseSelectOption(insuranceUnmannedAirVehicleInPlaceSelect, lease.UnmannedAirVehicleInsuranceInPlace); } if (lease.UnmannedAirVehicleLimit != "") @@ -433,7 +432,7 @@ public void AddVehicleInsurance(Lease lease) if (lease.VehicleInsuranceInPlace != "") { WaitUntilClickable(insuranceVehicleInPlaceSelect); - ChooseSpecificSelectOption(insuranceVehicleInPlaceSelect, lease.VehicleInsuranceInPlace); + ChooseSelectOption(insuranceVehicleInPlaceSelect, lease.VehicleInsuranceInPlace); } if (lease.VehicleLimit != "") @@ -485,7 +484,7 @@ public void AddOtherInsurance(Lease lease) if (lease.OtherInsuranceInPlace != "") { WaitUntilVisible(insuranceOtherInPlaceSelect); - ChooseSpecificSelectOption(insuranceOtherInPlaceSelect, lease.OtherInsuranceInPlace); + ChooseSelectOption(insuranceOtherInPlaceSelect, lease.OtherInsuranceInPlace); } if (lease.OtherLimit != "") @@ -736,7 +735,7 @@ public void VerifyInsuranceViewForm(Lease lease) public int TotalInsuranceCount() { - Wait(); + WaitUntilVisible(insuranceViewTotal); return webDriver.FindElements(insuranceViewTotal).Count; } diff --git a/testing/PIMS.Tests.Automation/PageObjects/LeasePeriodPayments.cs b/testing/PIMS.Tests.Automation/PageObjects/LeasePeriodPayments.cs index 0fdf7b8af8..760baf2642 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/LeasePeriodPayments.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/LeasePeriodPayments.cs @@ -202,11 +202,11 @@ public LeasePeriodPayments(IWebDriver webDriver) : base(webDriver) //Navigates to Payments Section public void NavigateToPaymentSection() { - Wait(); + WaitUntilClickable(licensePaymentsLink); webDriver.FindElement(licensePaymentsLink).Click(); } - public void AddPeriodBttn() => ButtonElement(licencePaymentAddBttn); + public void AddPeriodBttn() => SafeClick(licencePaymentAddBttn); public void AddPeriod(Period period) { @@ -224,7 +224,7 @@ public void AddPeriod(Period period) //Period Duration AssertTrueIsDisplayed(licensePaymentPeriodDurationLabel); AssertTrueIsDisplayed(licensePaymentPeriodDurationTooltip); - ChooseSpecificSelectOption(licensePaymentPeriodDurationSelect, period.PeriodDuration); + ChooseSelectOption(licensePaymentPeriodDurationSelect, period.PeriodDuration); //Start Date AssertTrueIsDisplayed(licensePaymentPeriodStartDateLabel); @@ -254,14 +254,14 @@ public void AddPeriod(Period period) //Period Status AssertTrueIsDisplayed(licensePaymentPeriodStatusLabel); AssertTrueIsDisplayed(licensePaymentPeriodStatusTooltip); - ChooseSpecificSelectOption(licensePaymentPeriodStatusSelect, period.PeriodStatus); + ChooseSelectOption(licensePaymentPeriodStatusSelect, period.PeriodStatus); //Predetermined Base Rent if (period.PeriodPaymentType == "Predetermined") { //Payment Frequency AssertTrueIsDisplayed(licensePaymentPeriodFrequencySelectLabel); - ChooseSpecificSelectOption(licensePaymentPeriodFrequencySelect, period.PeriodBasePaymentFrequency); + ChooseSelectOption(licensePaymentPeriodFrequencySelect, period.PeriodBasePaymentFrequency); //Agreed Payment AssertTrueIsDisplayed(licensePaymentPeriodAgreedPaymentLabel); @@ -293,7 +293,7 @@ public void AddPeriod(Period period) //Payment Frequency AssertTrueIsDisplayed(licensePaymentPeriodBaseFrequencyLabel); - ChooseSpecificSelectOption(licensePaymentPeriodFrequencySelect, period.PeriodBasePaymentFrequency); + ChooseSelectOption(licensePaymentPeriodFrequencySelect, period.PeriodBasePaymentFrequency); //Agreed Payment AssertTrueIsDisplayed(licensePaymentPeriodBaseAgreedPaymentLabel); @@ -327,7 +327,7 @@ public void AddPeriod(Period period) //Additional Payment Frequency AssertTrueIsDisplayed(licensePaymentPeriodAdditionalFrequencyLabel); if (period.PeriodAdditionalPaymentFrequency != "") - ChooseSpecificSelectOption(licensePaymentPeriodAdditionalSelect, period.PeriodAdditionalPaymentFrequency); + ChooseSelectOption(licensePaymentPeriodAdditionalSelect, period.PeriodAdditionalPaymentFrequency); //Additional Agreed Payment AssertTrueIsDisplayed(licensePaymentPeriodAdditionalAgreedPaymentLabel); @@ -364,7 +364,7 @@ public void AddPeriod(Period period) //Variable Payment Frequency AssertTrueIsDisplayed(licensePaymentPeriodVariableFrequencyLabel); if (period.PeriodVariablePaymentFrequency != "") - ChooseSpecificSelectOption(licensePaymentPeriodVariableSelect, period.PeriodVariablePaymentFrequency); + ChooseSelectOption(licensePaymentPeriodVariableSelect, period.PeriodVariablePaymentFrequency); //Variable Agreed Payment AssertTrueIsDisplayed(licensePaymentPeriodVariableAgreedPaymentLabel); @@ -403,22 +403,18 @@ public void AddPeriod(Period period) public void OpenClosePeriodCategoryPayments(int elementIdx) { - Wait(); - var selectedExpander = webDriver.FindElement(By.XPath("//div[@class='tr-wrapper']["+ elementIdx +"]/div/div[@class='td expander svg-btn']")); - - WaitUntilClickable(By.XPath("//div[@class='tr-wrapper']["+ elementIdx +"]/div/div[@class='td expander svg-btn']")); - selectedExpander.Click(); + SafeClick(By.XPath("//div[@class='tr-wrapper'][" + elementIdx + "]/div/div[@class='td expander svg-btn']")); } public void AddPaymentBttn(int parentIdx) { By addPaymentButton = By.XPath("//b[contains(text(),'Period "+ parentIdx +"')]/parent::div/parent::div/parent::div/following-sibling::div/div/h2/div/div/div/div/button"); - ButtonElement(addPaymentButton); + SafeClick(addPaymentButton); } public void AddPayment(Payment payment, string periodType) { - Wait(); + WaitUntilVisible(licensePaymentSendDateLabel); //Sent Date AssertTrueIsDisplayed(licensePaymentSendDateLabel); @@ -430,13 +426,13 @@ public void AddPayment(Payment payment, string periodType) //Method AssertTrueIsDisplayed(licensePaymentMethodLabel); - ChooseSpecificSelectOption(licensePaymentMethodSelect, payment.PaymentMethod); + ChooseSelectOption(licensePaymentMethodSelect, payment.PaymentMethod); //Payment Category - for variable payments if (periodType == "Variable") { AssertTrueIsDisplayed(licensePaymentCategoryLabel); - ChooseSpecificSelectOption(licensePaymentCategorySelect, payment.PaymentCategory); + ChooseSelectOption(licensePaymentCategorySelect, payment.PaymentCategory); } //Total Received @@ -471,17 +467,17 @@ public void AddPayment(Payment payment, string periodType) //Save Button - ButtonElement(licensePaymentSaveBttn); + SafeClick(licensePaymentSaveBttn); OpenClosePeriodCategoryPayments(payment.PeriodParentIndex); - Wait(); + WaitUntilVisible(By.CssSelector("div[data-testid='leasePaymentsTable'] div[class='tr-wrapper']:nth-child("+ payment.PeriodParentIndex +") div[data-testid='paymentsTable'] div[class='tr-wrapper']")); totalPaymentInPeriod = webDriver.FindElements(By.CssSelector("div[data-testid='leasePaymentsTable'] div[class='tr-wrapper']:nth-child("+ payment.PeriodParentIndex +") div[data-testid='paymentsTable'] div[class='tr-wrapper']")).Count; System.Diagnostics.Debug.WriteLine(totalPaymentInPeriod); } public void DeleteLastPeriod() { - Wait(); + WaitUntilClickable(licensePaymentDeleteTermBttn); webDriver.FindElement(licensePaymentDeleteTermBttn).Click(); WaitUntilVisible(licensePaymentsModal); @@ -492,7 +488,6 @@ public void DeleteLastPeriod() public void DeleteLastPayment(int periodIdx) { - Wait(5000); WaitUntilVisible(By.XPath("//b[contains(text(), 'Period "+ periodIdx +"')]/parent::div/parent::div/parent::div/following-sibling::div/div/div/div[@data-testid='paymentsTable']/div[@class='tbody']/div/div")); var totalPayments = webDriver.FindElements(By.XPath("//b[contains(text(), 'Period "+ periodIdx +"')]/parent::div/parent::div/parent::div/following-sibling::div/div/div/div[@data-testid='paymentsTable']/div[@class='tbody']/div/div")).Count; @@ -502,12 +497,13 @@ public void DeleteLastPayment(int periodIdx) WaitUntilVisible(licensePaymentsModal); sharedModals.ModalClickOKBttn(); + Wait(); totalPaymentInPeriod = webDriver.FindElements(By.XPath("//b[contains(text(), 'Period "+ periodIdx +"')]/parent::div/parent::div/parent::div/following-sibling::div/div/div/div[@data-testid='paymentsTable']/div[@class='tbody']/div/div")).Count; } public void VerifyPeriodsTabInit() { - Wait(); + WaitUntilVisible(licencePaymentsSubtitle); AssertTrueIsDisplayed(licencePaymentsSubtitle); AssertTrueIsDisplayed(licencePaymentAddBttn); @@ -535,7 +531,6 @@ public void VerifyPeriodsTabInit() public void VerifyInsertedPeriodTable(Period period) { Wait(); - WaitUntilVisible(By.XPath("//div[@data-testid='leasePaymentsTable']/div[@class='tbody']/div[@class='tr-wrapper']["+ totalPeriodsInLease +"]/div[@class='tr']/div[@class='td expander svg-btn']/following-sibling::div[2]")); AssertTrueElementContains(By.XPath("//div[@data-testid='leasePaymentsTable']/div[@class='tbody']/div[@class='tr-wrapper']["+ totalPeriodsInLease +"]/div[@class='tr']/div[@class='td expander svg-btn']/following-sibling::div[2]"), ConcatenateDates(period.PeriodStartDate, period.PeriodEndDate)); AssertTrueContentEquals(By.XPath("//div[@data-testid='leasePaymentsTable']/div[@class='tbody']/div[@class='tr-wrapper']["+ totalPeriodsInLease +"]/div[@class='tr']/div[@class='td expander svg-btn']/following-sibling::div[3]"), period.PeriodBasePaymentFrequency); diff --git a/testing/PIMS.Tests.Automation/PageObjects/LeaseTenants.cs b/testing/PIMS.Tests.Automation/PageObjects/LeaseTenants.cs index bcec7629e0..a9d4c8f68a 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/LeaseTenants.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/LeaseTenants.cs @@ -85,26 +85,22 @@ public void NavigateToStakeholderSection(string leaseType) //Edit Tenant section public void EditStakeholderButton() { - Wait(3000); - webDriver.FindElement(StakeholderEditButton).Click(); + WaitUntilClickable(StakeholderEditButton); + SafeClick(StakeholderEditButton); } //Search and add a new tenant public void AddIndividualStakeholder(string leaseType, Stakeholder stakeholder) { - Wait(); - if (leaseType == "Receivable") - webDriver.FindElement(stakeholderAddTenantsBttn).Click(); + SafeClick(stakeholderAddTenantsBttn); else - webDriver.FindElement(stakeholderAddPayeesBttn).Click(); + SafeClick(stakeholderAddPayeesBttn); - Wait(); sharedSelectContact.SelectContact(stakeholder.Summary, "Individual"); //Choose stakeholder type - Wait(); - ChooseSpecificSelectOption(stakeholderType1stSelect, stakeholder.StakeholderType); + ChooseSelectOption(stakeholderType1stSelect, stakeholder.StakeholderType); //Verify that the Primary Contact displays "Not applicable" Assert.Equal("Not applicable", webDriver.FindElement(stakeholderPrimaryContact1stCell).Text); @@ -112,50 +108,38 @@ public void AddIndividualStakeholder(string leaseType, Stakeholder stakeholder) public void AddOrganizationTenant(string leaseType, Stakeholder stakeholder) { - Wait(); - if (leaseType == "Receivable") - webDriver.FindElement(stakeholderAddTenantsBttn).Click(); + SafeClick(stakeholderAddTenantsBttn); else - webDriver.FindElement(stakeholderAddPayeesBttn).Click(); - - Wait(); - webDriver.FindElement(stakeholderSearchInput).SendKeys(stakeholder.Summary); - webDriver.FindElement(stakeholderOrganizationRadioBttn).Click(); - webDriver.FindElement(tenantSearchBttn).Click(); + SafeClick(stakeholderAddPayeesBttn); - ScrollToElement(stakeholderSearchInput); - WaitUntilClickable(stakeholderFirstResultRadioBttn); - webDriver.FindElement(stakeholderFirstResultRadioBttn).Click(); - - WaitUntilClickable(stakeholderAddSelectedButton); - webDriver.FindElement(stakeholderAddSelectedButton).Click(); + sharedSelectContact.SelectContact(stakeholder.Summary, "Organization"); //Choose a primary contact if there's the option if (webDriver.FindElements(stakeholderPrimaryContact1stSelect).Count > 0) { WaitUntilClickable(stakeholderPrimaryContact1stSelect); - ChooseSpecificSelectOption(stakeholderPrimaryContact1stSelect, stakeholder.PrimaryContact); + ChooseSelectOption(stakeholderPrimaryContact1stSelect, stakeholder.PrimaryContact); } //Choose stakeholder type - ChooseSpecificSelectOption(stakeholderType1stSelect, stakeholder.StakeholderType); + ChooseSelectOption(stakeholderType1stSelect, stakeholder.StakeholderType); } public void DeleteNthStakeholder(int index) { - Wait(); var nthStakeholderRemoveButton = By.CssSelector("div[data-testid='selected-items'] div[class='tr-wrapper']:nth-child("+ index +") button[title='Click to remove']"); + WaitUntilClickable(nthStakeholderRemoveButton); webDriver.FindElement(nthStakeholderRemoveButton).Click(); } public void EditStakeholder(Stakeholder tenant) { - Wait(); + WaitUntilVisible(stakeholderTotalSelected); var totalStakeholderIndex = webDriver.FindElements(stakeholderTotalSelected).Count -1; By lastStakeholderSelector = By.Id("input-stakeholders."+ totalStakeholderIndex +".stakeholderType"); - ChooseSpecificSelectOption(lastStakeholderSelector, tenant.StakeholderType); + ChooseSelectOption(lastStakeholderSelector, tenant.StakeholderType); } public void SaveTenant() @@ -175,49 +159,49 @@ public void SaveTenant() public int TotalAssignees() { - Wait(); + Wait(500); return webDriver.FindElements(stakeholderTotalAssigneeView).Count; } public int TotalTenants() { - Wait(); + Wait(500); return webDriver.FindElements(stakeholderTotalTenantsView).Count; } public int TotalRepresentatives() { - Wait(); + Wait(500); return webDriver.FindElements(stakeholderTotalRepresentativeView).Count; } public int TotalManagers() { - Wait(); + Wait(500); return webDriver.FindElements(stakeholderTotalManagerView).Count; } public int TotalUnknown() { - Wait(); + Wait(500); return webDriver.FindElements(stakeholderTotalUnknownView).Count; } public int TotalOwners() { - Wait(); + Wait(500); return webDriver.FindElements(stakeholderTotalOwnerView).Count; } public int TotalOwnerRepresentatives() { - Wait(); + Wait(500); return webDriver.FindElements(stakeholderTotalOwnerRepView).Count; } public int TotalTenantOther() { - Wait(); + Wait(500); return webDriver.FindElements(stakeholderTotalOtherView).Count; } diff --git a/testing/PIMS.Tests.Automation/PageObjects/LeasesChecklist.cs b/testing/PIMS.Tests.Automation/PageObjects/LeasesChecklist.cs index 549c850158..39c60d4c38 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/LeasesChecklist.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/LeasesChecklist.cs @@ -128,7 +128,7 @@ public void EditChecklistButton() public void VerifyChecklistInitViewForm() { - Wait(); + WaitUntilVisible(checklistFileInitiationTitle); AssertTrueIsDisplayed(checklistFileInitiationTitle); AssertTrueIsDisplayed(checklistFileInitiation1Label); @@ -329,25 +329,25 @@ public void VerifyChecklistViewForm(LeaseChecklist checklist) public void UpdateChecklist(LeaseChecklist checklist) { - Wait(); + WaitUntilClickable(checklistFileInitiationItem1Select); if (checklist.FileInitiationSelect1 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem1Select, checklist.FileInitiationSelect1); + ChooseSelectOption(checklistFileInitiationItem1Select, checklist.FileInitiationSelect1); if (checklist.FileInitiationSelect2 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem2Select, checklist.FileInitiationSelect2); + ChooseSelectOption(checklistFileInitiationItem2Select, checklist.FileInitiationSelect2); if (checklist.FileInitiationSelect3 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem3Select, checklist.FileInitiationSelect3); + ChooseSelectOption(checklistFileInitiationItem3Select, checklist.FileInitiationSelect3); if (checklist.FileInitiationSelect4 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem4Select, checklist.FileInitiationSelect4); + ChooseSelectOption(checklistFileInitiationItem4Select, checklist.FileInitiationSelect4); if (checklist.FileInitiationSelect5 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem5Select, checklist.FileInitiationSelect5); + ChooseSelectOption(checklistFileInitiationItem5Select, checklist.FileInitiationSelect5); if (checklist.FileInitiationSelect6 != "") - ChooseSpecificSelectOption(checklistFileInitiationItem6Select, checklist.FileInitiationSelect6); + ChooseSelectOption(checklistFileInitiationItem6Select, checklist.FileInitiationSelect6); if (checklist.ReferralsApprovalsSelect1 != "") - ChooseSpecificSelectOption(checklistReferralsApprovals1Select, checklist.ReferralsApprovalsSelect1); + ChooseSelectOption(checklistReferralsApprovals1Select, checklist.ReferralsApprovalsSelect1); if (checklist.ReferralsApprovalsSelect2 != "") - ChooseSpecificSelectOption(checklistReferralsApprovals2Select, checklist.ReferralsApprovalsSelect2); + ChooseSelectOption(checklistReferralsApprovals2Select, checklist.ReferralsApprovalsSelect2); //if (checklist.ReferralsApprovalsSelect3 != "") // ChooseSpecificSelectOption(checklistReferralsApprovals3Select, checklist.ReferralsApprovalsSelect3); //if (checklist.ReferralsApprovalsSelect4 != "") @@ -362,43 +362,41 @@ public void UpdateChecklist(LeaseChecklist checklist) // ChooseSpecificSelectOption(checklistReferralsApprovals8Select, checklist.ReferralsApprovalsSelect8); if (checklist.AgreementPreparationSelect1 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation1Select, checklist.AgreementPreparationSelect1); + ChooseSelectOption(checklistAgreementPreparation1Select, checklist.AgreementPreparationSelect1); if (checklist.AgreementPreparationSelect2 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation2Select, checklist.AgreementPreparationSelect2); + ChooseSelectOption(checklistAgreementPreparation2Select, checklist.AgreementPreparationSelect2); if (checklist.AgreementPreparationSelect3 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation3Select, checklist.AgreementPreparationSelect3); + ChooseSelectOption(checklistAgreementPreparation3Select, checklist.AgreementPreparationSelect3); if (checklist.AgreementPreparationSelect4 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation4Select, checklist.AgreementPreparationSelect4); + ChooseSelectOption(checklistAgreementPreparation4Select, checklist.AgreementPreparationSelect4); if (checklist.AgreementPreparationSelect5 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation5Select, checklist.AgreementPreparationSelect5); + ChooseSelectOption(checklistAgreementPreparation5Select, checklist.AgreementPreparationSelect5); if (checklist.AgreementPreparationSelect6 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation6Select, checklist.AgreementPreparationSelect6); + ChooseSelectOption(checklistAgreementPreparation6Select, checklist.AgreementPreparationSelect6); if (checklist.AgreementPreparationSelect7 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation7Select, checklist.AgreementPreparationSelect7); + ChooseSelectOption(checklistAgreementPreparation7Select, checklist.AgreementPreparationSelect7); if (checklist.AgreementPreparationSelect8 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation8Select, checklist.AgreementPreparationSelect8); + ChooseSelectOption(checklistAgreementPreparation8Select, checklist.AgreementPreparationSelect8); if (checklist.AgreementPreparationSelect9 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation9Select, checklist.AgreementPreparationSelect9); + ChooseSelectOption(checklistAgreementPreparation9Select, checklist.AgreementPreparationSelect9); if (checklist.AgreementPreparationSelect10 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation10Select, checklist.AgreementPreparationSelect10); + ChooseSelectOption(checklistAgreementPreparation10Select, checklist.AgreementPreparationSelect10); if (checklist.AgreementPreparationSelect11 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation11Select, checklist.AgreementPreparationSelect11); + ChooseSelectOption(checklistAgreementPreparation11Select, checklist.AgreementPreparationSelect11); if (checklist.AgreementPreparationSelect12 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation12Select, checklist.AgreementPreparationSelect12); + ChooseSelectOption(checklistAgreementPreparation12Select, checklist.AgreementPreparationSelect12); if (checklist.AgreementPreparationSelect13 != "") - ChooseSpecificSelectOption(checklistAgreementPreparation13Select, checklist.AgreementPreparationSelect13); + ChooseSelectOption(checklistAgreementPreparation13Select, checklist.AgreementPreparationSelect13); if (checklist.LeaseLicenceCompletionSelect1 != "") - ChooseSpecificSelectOption(checklistLeaseLicenseCompletion1Select, checklist.LeaseLicenceCompletionSelect1); + ChooseSelectOption(checklistLeaseLicenseCompletion1Select, checklist.LeaseLicenceCompletionSelect1); if (checklist.LeaseLicenceCompletionSelect2 != "") - ChooseSpecificSelectOption(checklistLeaseLicenseCompletion2Select, checklist.LeaseLicenceCompletionSelect2); + ChooseSelectOption(checklistLeaseLicenseCompletion2Select, checklist.LeaseLicenceCompletionSelect2); } public void SaveLeaseChecklist() { - Wait(); ButtonElement("Save"); - AssertTrueIsDisplayed(checklistEditBttn); } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/ManageUsers.cs b/testing/PIMS.Tests.Automation/PageObjects/ManageUsers.cs index e3038cab9e..1aa528d3a7 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/ManageUsers.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/ManageUsers.cs @@ -58,8 +58,6 @@ public ManageUsers(IWebDriver webDriver) : base(webDriver) public void NavigateAdminTools() { - Wait(3000); - WaitUntilClickable(mainMenuAdminToolLink); FocusAndClick(mainMenuAdminToolLink); } @@ -90,49 +88,49 @@ public void OrderByUserFirstName() public void OrderByUserLastName() { - WaitUntilClickable(userManagerHeaderOrderByLastNameBttn); + Wait(); webDriver.FindElement(userManagerHeaderOrderByLastNameBttn).Click(); } public void OrderByUserMail() { - WaitUntilClickable(userManagerHeaderOrderByEmailBttn); + Wait(); webDriver.FindElement(userManagerHeaderOrderByEmailBttn).Click(); } public void OrderByUserPosition() { - WaitUntilClickable(userManagerHeaderOrderByPositionBttn); + Wait(); webDriver.FindElement(userManagerHeaderOrderByPositionBttn).Click(); } public string FirstUserIDIR() { - WaitUntilTableSpinnerDisappear(); + Wait(); return webDriver.FindElement(userManager1stIDIRContent).Text; } public string FirstUserFirstName() { - WaitUntilTableSpinnerDisappear(); + Wait(); return webDriver.FindElement(userManager1stFirstNameContent).Text; } public string FirstUserLastName() { - WaitUntilTableSpinnerDisappear(); + Wait(); return webDriver.FindElement(userManager1stLastNameContent).Text; } public string FirstUserEmail() { - WaitUntilTableSpinnerDisappear(); + Wait(); return webDriver.FindElement(userManager1stEmailContent).Text; } public string FirstUserPosition() { - WaitUntilTableSpinnerDisappear(); + Wait(); return webDriver.FindElement(userManager1stPositionContent).Text; } @@ -150,7 +148,7 @@ public void FilterUsers(string idir, string region) if (region != "") { WaitUntilClickable(userManagementRegionSelect); - ChooseSpecificSelectOption(userManagementRegionSelect, region); + ChooseSelectOption(userManagementRegionSelect, region); } webDriver.FindElement(userManagementSearchButton).Click(); @@ -187,7 +185,7 @@ public void VerifyManageUserListView() public int TotalUsersResult() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(userManagerTableResults).Count(); } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/ManagementActivities.cs b/testing/PIMS.Tests.Automation/PageObjects/ManagementActivities.cs index 1d1afaf370..c2b9889cf7 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/ManagementActivities.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/ManagementActivities.cs @@ -77,7 +77,7 @@ public void NavigateActivitiesTab() public void AddActivityBttn() { - Wait(4000); + WaitUntilClickable(activitiesBttn); webDriver.FindElement(activitiesBttn).Click(); WaitUntilSpinnerDisappear(); @@ -85,15 +85,13 @@ public void AddActivityBttn() public void OpenActivityDetails(int index) { - Wait(); - WaitUntilClickable(By.XPath("//div[contains(text(),'Activity List')]/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div[@data-testid='PropertyManagementActivitiesTable']/div[@class='tbody']/div["+ index +"]/div/div[5]/div/button[@title='property-activity view details']")); webDriver.FindElement(By.XPath("//div[contains(text(),'Activity List')]/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div[@data-testid='PropertyManagementActivitiesTable']/div[@class='tbody']/div["+ index +"]/div/div[5]/div/button[@title='property-activity view details']")).Click(); } public void DeleteNthActivity(int index) { - Wait(); + WaitUntilClickable(By.CssSelector("div[data-testid='AcquisitionCompensationTable'] div[class='tbody'] div[class='tr-wrapper'] div button[data-testid='compensation-delete-"+ index +"']")); FocusAndClick(By.CssSelector("div[data-testid='AcquisitionCompensationTable'] div[class='tbody'] div[class='tr-wrapper'] div button[data-testid='compensation-delete-"+ index +"']")); if (webDriver.FindElements(actibityConfirmationModal).Count() > 0) @@ -108,19 +106,15 @@ public void DeleteNthActivity(int index) public void SaveActivity() { - Wait(); ButtonElement("Save"); - AssertTrueIsDisplayed(activityTrayEditBttn); } public void CancelActivity() { - Wait(); ButtonElement("Cancel"); sharedModals.CancelActionModal(); - AssertTrueIsDisplayed(activityTrayEditBttn); } @@ -173,16 +167,16 @@ public void ViewLastActivityFromList() public void ViewLastActivityButton() { - Wait(); + WaitUntilClickable(By.CssSelector("div[data-testid='mgmt-activity-list'] div[class='tr-wrapper']:first-child button[title='property-activity view details']")); webDriver.FindElement(By.CssSelector("div[data-testid='mgmt-activity-list'] div[class='tr-wrapper']:first-child button[title='property-activity view details']")).Click(); } public void VerifyLastInsertedActivityTable(PropertyActivity activity) { - Wait(); + WaitUntilVisible(By.CssSelector("div[data-testid='mgmt-activity-list'] div[class='tbody'] div[class='tr-wrapper']:first-child [role='cell']:first-child")); AssertTrueContentEquals(By.CssSelector("div[data-testid='mgmt-activity-list'] div[class='tbody'] div[class='tr-wrapper']:first-child [role='cell']:first-child"), activity.PropertyActivityType); -// AssertTrueContentEquals(By.XPath("//div[contains(text(),'Activity List')]/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div[@data-testid='PropertyManagementActivitiesTable']/div[@class='tbody']/div[@class='tr-wrapper']["+ lastInsertedActivityIndex +"]/div/div[@role='cell'][2]"), activity.PropertyActivitySubType); TODO + //AssertTrueContentEquals(By.XPath("//div[contains(text(),'Activity List')]/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div[@data-testid='PropertyManagementActivitiesTable']/div[@class='tbody']/div[@class='tr-wrapper']["+ lastInsertedActivityIndex +"]/div/div[@role='cell'][2]"), activity.PropertyActivitySubType); TODO AssertTrueContentEquals(By.CssSelector("div[data-testid='mgmt-activity-list'] div[class='tbody'] div[class='tr-wrapper']:first-child [role='cell']:nth-child(3)"), activity.PropertyActivityStatus); AssertTrueContentEquals(By.CssSelector("div[data-testid='mgmt-activity-list'] div[class='tbody'] div[class='tr-wrapper']:first-child [role='cell']:nth-child(4)"), TransformDateFormat(activity.PropertyActivityCommenceDate)); Assert.True(webDriver.FindElements(By.CssSelector("div[data-testid='mgmt-activity-list'] div[class='tbody'] div[class='tr-wrapper']:first-child [role='cell']:nth-child(5) div div")).Count > 0); diff --git a/testing/PIMS.Tests.Automation/PageObjects/ManagementDetails.cs b/testing/PIMS.Tests.Automation/PageObjects/ManagementDetails.cs index 88eff7dd03..76e144d711 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/ManagementDetails.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/ManagementDetails.cs @@ -101,7 +101,7 @@ public ManagementDetails(IWebDriver webDriver) : base(webDriver) public void NavigateToCreateNewManagementFile() { - Wait(); + WaitUntilClickable(managementMainMenu); FocusAndClick(managementMainMenu); WaitUntilClickable(managementMainMenuCreateLink); @@ -110,31 +110,31 @@ public void NavigateToCreateNewManagementFile() public void NavigateToManagementFileSection() { - Wait(); + WaitUntilClickable(managementFileSummaryBttn); webDriver.FindElement(managementFileSummaryBttn).Click(); } public void CreateMinimumManagementDetails(ManagementFile mgmtFile) { - Wait(); + WaitUntilClickable(managementFileNameInput); //Management File Name webDriver.FindElement(managementFileNameInput).SendKeys(mgmtFile.ManagementName); //Purpose - ChooseSpecificSelectOption(managementFilePurposeSelect, mgmtFile.ManagementPurpose); + ChooseSelectOption(managementFilePurposeSelect, mgmtFile.ManagementPurpose); } public void UpdateManagementFileDetails(ManagementFile mgmtFile) { - Wait(); + WaitUntilVisible(managementFileStatusLabel); //AssertTrueIsDisplayed(updateManagementTitle); //Status AssertTrueIsDisplayed(managementFileStatusLabel); if(mgmtFile.ManagementStatus != "") - ChooseSpecificSelectOption(managementFileStatusInput, mgmtFile.ManagementStatus); + ChooseSelectOption(managementFileStatusInput, mgmtFile.ManagementStatus); //PROJECT //Project @@ -146,19 +146,19 @@ public void UpdateManagementFileDetails(ManagementFile mgmtFile) webDriver.FindElement(managementFileProjectInput).SendKeys(Keys.Enter); webDriver.FindElement(managementFileProjectInput).SendKeys(Keys.Backspace); - Wait(); + WaitUntilClickable(managementFileProject1stOption); webDriver.FindElement(managementFileProject1stOption).Click(); } //Product AssertTrueIsDisplayed(managementFileProjectProductLabel); if (mgmtFile.ManagementMinistryProduct != "") - ChooseSpecificSelectOption(managementFileProjectProductSelect, mgmtFile.ManagementMinistryProduct); + ChooseSelectOption(managementFileProjectProductSelect, mgmtFile.ManagementMinistryProduct); //Funding AssertTrueIsDisplayed(managementFileProjectFundingLabel); if (mgmtFile.ManagementMinistryFunding != "") - ChooseSpecificSelectOption(managementFileProjectFundingInput, mgmtFile.ManagementMinistryFunding); + ChooseSelectOption(managementFileProjectFundingInput, mgmtFile.ManagementMinistryFunding); //MANAGEMENT DETAILS //File Name @@ -180,7 +180,7 @@ public void UpdateManagementFileDetails(ManagementFile mgmtFile) //Purpose AssertTrueIsDisplayed(managementFilePurposeLabel); if (mgmtFile.ManagementPurpose != "") - ChooseSpecificSelectOption(managementFilePurposeSelect, mgmtFile.ManagementPurpose); + ChooseSelectOption(managementFilePurposeSelect, mgmtFile.ManagementPurpose); //Responsible Payer AssertTrueIsDisplayed(managementFileResponsiblePayerLabel); @@ -201,7 +201,7 @@ public void UpdateManagementFileDetails(ManagementFile mgmtFile) //Ministry Region AssertTrueIsDisplayed(managementFileMinistryRegionLabel); if (mgmtFile.ManagementMinistryRegion != "") - ChooseSpecificSelectOption(managementFileMinistryRegionSelect, mgmtFile.ManagementMinistryRegion); + ChooseSelectOption(managementFileMinistryRegionSelect, mgmtFile.ManagementMinistryRegion); //MANAGEMENT TEAM if (mgmtFile.ManagementTeam!.Count > 0) @@ -235,7 +235,7 @@ public void UpdateManagementFileDetails(ManagementFile mgmtFile) public void EditMgmtFileDetailsBttn() { - Wait(); + WaitUntilClickable(managementFileDetailsEditBttn); webDriver.FindElement(managementFileDetailsEditBttn).Click(); } @@ -244,7 +244,7 @@ public void SaveManagementFile() //Save ButtonElement("Save"); - Wait(); + WaitUntilVisible(managementFileConfirmationModal); while (webDriver.FindElements(managementFileConfirmationModal).Count > 0) { if (sharedModals.ModalContent().Contains("The selected property already exists in the system's inventory")) @@ -254,7 +254,6 @@ public void SaveManagementFile() Assert.Contains("To add the property, the spatial details for this property will need to be updated. The system will attempt to update the property record with spatial information from the current selection.", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - Wait(); } else if (sharedModals.ModalContent().Contains("You have made changes to the properties in this file.")) { @@ -262,8 +261,6 @@ public void SaveManagementFile() Assert.Contains("You have made changes to the properties in this file.", sharedModals.ModalContent()); Assert.Contains("Do you want to save these changes?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - - Wait(); } else if (sharedModals.ModalHeader() == "Confirm status change") { @@ -271,8 +268,6 @@ public void SaveManagementFile() Assert.Contains("If you save it, only the administrator can turn it back on. You will still see it in the management table.", sharedModals.ConfirmationModalParagraph1()); Assert.Equal("Do you want to acknowledge and proceed?", sharedModals.ConfirmationModalParagraph2()); sharedModals.ModalClickOKBttn(); - - Wait(); } else break; @@ -287,13 +282,13 @@ public void CancelManagementFile() public string GetManagementCode() { - Wait(); + WaitUntilVisible(managementFileHeaderFileNbrContent); return webDriver.FindElement(managementFileHeaderFileNbrContent).Text; } public void VerifyManagementFileInitCreateForm() { - Wait(); + WaitUntilVisible(managementFileProjectSubtitle); //Create Title //AssertTrueIsDisplayed(createManagementTitle); diff --git a/testing/PIMS.Tests.Automation/PageObjects/MapFeatures.cs b/testing/PIMS.Tests.Automation/PageObjects/MapFeatures.cs index 0080bd677c..c26fb75771 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/MapFeatures.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/MapFeatures.cs @@ -135,13 +135,13 @@ public MapFeatures(IWebDriver driver) : base(driver) public void OpenMapLayers() { - Wait(); + WaitUntilClickable(mapLayersButton); webDriver.FindElement(mapLayersButton).Click(); } public void VerifyMapLayers() { - Wait(); + WaitUntilVisible(mapLayersTitle); AssertTrueIsDisplayed(mapLayersTitle); AssertTrueIsDisplayed(mapLayersPIMSSubtitle); AssertTrueIsDisplayed(mapLayersPIMSResearchInput); @@ -186,8 +186,9 @@ public void VerifyMapLayers() AssertTrueIsDisplayed(mapLayersAdminBoundariesLabel); webDriver.FindElement(mapLayersAdminBoundariesCollapseBttn).Click(); - Wait(1000); + ScrollToElement(mapLayersRegionalDistrictsCheck); + WaitUntilVisible(mapLayersRegionalDistrictsCheck); AssertTrueIsDisplayed(mapLayersCurrentCensusCheck); AssertTrueIsDisplayed(mapLayersCurrentCensusLabel); AssertTrueIsDisplayed(mapLayersMOTIRegionsCheck); @@ -202,7 +203,7 @@ public void VerifyMapLayers() webDriver.FindElement(mapLayersAdminBoundariesCollapseBttn).Click(); webDriver.FindElement(mapLayersLegalHighwayResearchCollapseBttn).Click(); - Wait(1000); + WaitUntilVisible(mapLayersLegalHighwayResearchCheck); AssertTrueIsDisplayed(mapLayersLegalHighwayResearchCheck); AssertTrueIsDisplayed(mapLayersLegalHighwayResearchLabel); AssertTrueIsDisplayed(mapLayersGazettedHighwayCheck); @@ -223,7 +224,7 @@ public void VerifyMapLayers() webDriver.FindElement(mapLayersLegalHighwayResearchCollapseBttn).Click(); webDriver.FindElement(mapLayersFirstNationsCollapseBttn).Click(); - Wait(1000); + WaitUntilVisible(mapLayersFirstNationsCheck); AssertTrueIsDisplayed(mapLayersFirstNationsCheck); AssertTrueIsDisplayed(mapLayersFirstNationsLabel); AssertTrueIsDisplayed(mapLayersFirstNationsReservesCheck); @@ -240,7 +241,7 @@ public void VerifyMapLayers() webDriver.FindElement(mapLayersFirstNationsCollapseBttn).Click(); webDriver.FindElement(mapLayersLandOwnershipCollapseBttn).Click(); - Wait(1000); + WaitUntilVisible(mapLayersLandOwnershipCheck); AssertTrueIsDisplayed(mapLayersLandOwnershipCheck); AssertTrueIsDisplayed(mapLayersLandOwnershipLabel); AssertTrueIsDisplayed(mapLayersCrownLeasesCheck); @@ -263,7 +264,7 @@ public void VerifyMapLayers() webDriver.FindElement(mapLayersLandOwnershipCollapseBttn).Click(); webDriver.FindElement(mapLayersZoningCollapseBttn).Click(); - Wait(1000); + WaitUntilVisible(mapLayersZoningCheck); AssertTrueIsDisplayed(mapLayersZoningCheck); AssertTrueIsDisplayed(mapLayersZoningLabel); AssertTrueIsDisplayed(mapLayersAgriculturalLandReserveCheck); @@ -272,7 +273,7 @@ public void VerifyMapLayers() webDriver.FindElement(mapLayersZoningCollapseBttn).Click(); webDriver.FindElement(mapLayersElectoralCollapseBttn).Click(); - Wait(1000); + WaitUntilVisible(mapLayersElectoralCheck); AssertTrueIsDisplayed(mapLayersElectoralCheck); AssertTrueIsDisplayed(mapLayersElectoralLabel); AssertTrueIsDisplayed(mapLayersCurrentProvincialElectoralDistrictsBCCheck); @@ -281,7 +282,7 @@ public void VerifyMapLayers() webDriver.FindElement(mapLayersElectoralCollapseBttn).Click(); webDriver.FindElement(mapLayersFederalBCParksCollapseBttn).Click(); - Wait(1000); + WaitUntilVisible(mapLayersFederalBCParksCheck); AssertTrueIsDisplayed(mapLayersFederalBCParksCheck); AssertTrueIsDisplayed(mapLayersFederalBCParksLabel); AssertTrueIsDisplayed(mapLayersFederalParksCheck); diff --git a/testing/PIMS.Tests.Automation/PageObjects/Notes.cs b/testing/PIMS.Tests.Automation/PageObjects/Notes.cs index e650267cf2..f102c9fe21 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/Notes.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/Notes.cs @@ -22,7 +22,7 @@ public class Notes : PageObjectBase private readonly By notesTab2ndResultViewBttn = By.XPath("//div[@data-testid='notesTable']/div[@class='tbody']/div[@class='tr-wrapper'][2]/div/div[4]/div/button[@title='View Note']"); //Notes 1st result Elements - private readonly By note1stNoteContent = By.CssSelector("div[data-testid='notesTable'] div[class='tbody'] div[class='tr-wrapper'] div:nth-child(1) div:nth-child(1)"); + private readonly By note1stNoteContent = By.CssSelector("div[data-testid='notesTable'] div[class='tbody'] div[class='tr-wrapper'] div[role='row']:first-child div[role='cell']:first-child"); private readonly By note2ndDeleteNoteBttn = By.CssSelector("div[data-testid='notesTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child(2) div[role='cell']:nth-child(4) div button[title='Delete Note']"); //Property Notes Table Elements @@ -96,18 +96,14 @@ public Notes(IWebDriver webDriver) : base(webDriver) public void NavigateNotesTab() { - Wait(2000); - - WaitUntilClickable(notesTabLink); - webDriver.FindElement(notesTabLink).Click(); + SafeClick(notesTabLink); } public void NavigateToFirstManagementNote() { var originalWindowHandle = webDriver.CurrentWindowHandle; - Wait(); - webDriver.FindElement(mgmtNotesTableName1stContent).Click(); + SafeClick(mgmtNotesTableName1stContent); Wait(); var allWindowsHandle = webDriver.WindowHandles; @@ -119,7 +115,7 @@ public void NavigateToFirstPropertyNote() { var originalWindowHandle = webDriver.CurrentWindowHandle; - Wait(); + WaitUntilClickable(propNotesTableName1stContent); webDriver.FindElement(propNotesTableName1stContent).Click(); Wait(); @@ -130,8 +126,8 @@ public void NavigateToFirstPropertyNote() public void CreateNotesTabButton() { - Wait(); - FocusAndClick(notesTabAddBttn); + WaitUntilClickable(notesTabAddBttn); + SafeClick(notesTabAddBttn); } public void AddNewNoteDetails(string note) @@ -142,8 +138,8 @@ public void AddNewNoteDetails(string note) public void ViewSecondNoteDetails() { - Wait(); - webDriver.FindElement(notesTab2ndResultViewBttn).Click(); + WaitUntilClickable(notesTab2ndResultViewBttn); + SafeClick(notesTab2ndResultViewBttn); } public void EditNote(string note) @@ -157,7 +153,7 @@ public void EditNote(string note) public void SaveNote() { - Wait(); + WaitUntilClickable(notesAddDetailsSaveBttn); webDriver.FindElement(notesAddDetailsSaveBttn).Click(); } @@ -166,22 +162,22 @@ public void CancelNote() WaitUntilClickable(notesAddDetailsCancelBttn); webDriver.FindElement(notesAddDetailsCancelBttn).Click(); - Wait(); + WaitUntilVisible(notesCancelPopupContent); if (webDriver.FindElements(notesCancelPopupContent).Count() > 0) { AssertTrueIsDisplayed(notesCancelPopupHeader); Assert.Contains("If you choose to cancel now, your changes will not be saved.", webDriver.FindElement(notesCancelPopupBody).Text); Assert.Contains("Do you want to proceed?", webDriver.FindElement(notesCancelPopupBody).Text); - Wait(2000); + WaitUntilClickable(notesCancelOkBttn); webDriver.FindElement(notesCancelOkBttn).Click(); } } public void DeleteLastSecondNote() { - Wait(2000); - webDriver.FindElement(note2ndDeleteNoteBttn).Click(); + WaitUntilClickable(note2ndDeleteNoteBttn); + SafeClick(note2ndDeleteNoteBttn); WaitUntilVisible(notesDeletePopupHeader); AssertTrueContentEquals(notesDeletePopupHeader, "Delete Note"); @@ -217,7 +213,7 @@ public void VerifyNotesEditForm() public void VerifyNotesTabListView() { - Wait(3000); + WaitUntilClickable(notesTabTitle); AssertTrueIsDisplayed(notesTabTitle); AssertTrueIsDisplayed(notesTabAddBttn); @@ -288,27 +284,28 @@ public void VerifySecondaryNotesListContent(string feature, string note) public int NotesTabCount() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); + WaitUntilClickable(notesTabTableContentTotal); return webDriver.FindElements(notesTabTableContentTotal).Count(); } public void VerifyAutomaticNotes(string fileType, string fromStatus, string toStatus) { - WaitUntilTableSpinnerDisappear(); - + WaitForTableToLoad(); + WaitUntilVisible(note1stNoteContent); WaitUntilVisibleText(note1stNoteContent, webDriver.FindElement(note1stNoteContent).Text); AssertTrueContentEquals(note1stNoteContent, fileType + " status changed from "+ fromStatus +" to " + toStatus); } public void VerifyAutomaticNotesCompensation(string CompensationNbr, string fromStatus, string toStatus) { - Wait(); + WaitUntilClickable(note1stNoteContent); AssertTrueContentEquals(note1stNoteContent, "Compensation Requisition with # " + CompensationNbr + ", changed status from '"+ fromStatus +"' to '" + toStatus + "'"); } public void VerifyAutomaticNotesPropertyStatus(string status) { - Wait(); + WaitUntilClickable(note1stNoteContent); AssertTrueElementContains(note1stNoteContent, "Management File property"); AssertTrueElementContains(note1stNoteContent, status); } diff --git a/testing/PIMS.Tests.Automation/PageObjects/PageObjectBase.cs b/testing/PIMS.Tests.Automation/PageObjects/PageObjectBase.cs index 0872d0eae7..dd31775305 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/PageObjectBase.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/PageObjectBase.cs @@ -22,38 +22,139 @@ protected PageObjectBase(IWebDriver webDriver) wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(60)); } - protected virtual void Wait(int milliseconds = 3000) => Thread.Sleep(milliseconds); + protected virtual void Wait(int milliseconds = 1000) => Thread.Sleep(milliseconds); protected void WaitUntilSpinnerDisappear() { wait.Until(ExpectedConditions.InvisibilityOfElementLocated(loadingSpinner)); - Wait(); } - protected void WaitUntilPropertySpinnerDisappear() + protected void WaitForTableToLoad(By rowLocator) { - wait.Until(ExpectedConditions.InvisibilityOfElementLocated(propertiesSpinner)); + wait.IgnoreExceptionTypes( + typeof(StaleElementReferenceException), + typeof(NoSuchElementException) + ); + + // Wait until spinner disappears + wait.Until(driver => + { + var spinners = driver.FindElements(tableLoadingSpinner); + return spinners.Count == 0 || spinners.All(s => !s.Displayed); + }); + + // Optional: wait until table rows are present or stable + wait.Until(driver => + { + var rows = driver.FindElements(rowLocator); + return rows.Count >= 0; + }); } - protected void WaitUntilTableSpinnerDisappear() + protected void WaitForTableToLoad() { wait.Until(ExpectedConditions.InvisibilityOfElementLocated(tableLoadingSpinner)); - Wait(); } - protected void WaitUntilStale(By element) => wait.Until(ExpectedConditions.StalenessOf(webDriver.FindElement(element))); - protected void WaitUntilDisappear(By element) => wait.Until(ExpectedConditions.InvisibilityOfElementLocated(element)); - protected void WaitUntilVisible(By element) => wait.Until(ExpectedConditions.ElementIsVisible(element)); + protected void WaitUntilVisible(By element) + { + wait.IgnoreExceptionTypes(typeof(StaleElementReferenceException), typeof(NoSuchElementException)); + + wait.Until(d => + { + var locator = webDriver.FindElement(element); + + if (locator.Displayed) + { + return true; + } + + return false; + }); + } + + protected IWebElement WaitUntilClickable(By by) + { + wait.IgnoreExceptionTypes( + typeof(StaleElementReferenceException), + typeof(NoSuchElementException), + typeof(ElementClickInterceptedException) + ); + + return wait.Until(webDriver => + { + var element = webDriver.FindElement(by); + return (element.Displayed && element.Enabled) ? element : null; + }); + } + + protected void SafeClick(By by) + { + wait.PollingInterval = TimeSpan.FromMilliseconds(200); + + wait.IgnoreExceptionTypes( + typeof(NoSuchElementException), + typeof(StaleElementReferenceException) + ); + + var js = (IJavaScriptExecutor)webDriver; + + wait.Until(driver => + { + var element = driver.FindElement(by); - protected void WaitUntilExist(By element) => wait.Until(ExpectedConditions.ElementExists(element)); + if (!element.Displayed || !element.Enabled) + return false; - protected void WaitUntilClickable(By element) => wait.Until(ExpectedConditions.ElementToBeClickable(element)); + js.ExecuteScript( + @"arguments[0].scrollIntoView({ block: 'center', inline: 'center' });", + element); + + var clickable = (bool)js.ExecuteScript(@" + const el = arguments[0]; + const rect = el.getBoundingClientRect(); + + if (rect.width === 0 || rect.height === 0) return false; + + const x = rect.left + rect.width / 2; + const y = rect.top + rect.height / 2; + + const topEl = document.elementFromPoint(x, y); + return topEl === el || el.contains(topEl); + ", element); + + if (!clickable) + return false; + + try + { + element.Click(); + return true; + } + catch (ElementClickInterceptedException) + { + return false; + } + }); + } public void WaitUntilVisibleText(By element, string text) { + wait.IgnoreExceptionTypes( + typeof(StaleElementReferenceException), + typeof(NoSuchElementException) + ); + + // Wait until the parent select is visible + wait.Until(webDriver => + { + var parent = webDriver.FindElement(element); + return parent.Displayed ? parent : null; + }); var webElement = webDriver.FindElement(element); + wait.Until(ExpectedConditions.TextToBePresentInElement(webElement, text)); } @@ -63,29 +164,14 @@ protected void ButtonElement(string buttonName) if (buttonName == "Save") { - wait.Until(ExpectedConditions.ElementExists(saveButton)); - wait.Until(ExpectedConditions.ElementToBeClickable(saveButton)); - FocusAndClick(saveButton); + SafeClick(saveButton); } else { - wait.Until(ExpectedConditions.ElementExists(cancelButton)); - wait.Until(ExpectedConditions.ElementToBeClickable(cancelButton)); - FocusAndClick(cancelButton); + SafeClick(cancelButton); } } - protected void ButtonElement(By button) - { - Wait(); - - var js = (IJavaScriptExecutor)webDriver; - - wait.Until(ExpectedConditions.ElementExists(button)); - wait.Until(ExpectedConditions.ElementToBeClickable(button)); - webDriver.FindElement(button).Click(); - } - protected void FocusAndClick(By element) { wait.Until(ExpectedConditions.ElementExists(element)); @@ -106,23 +192,40 @@ protected void ScrollToElement(By element) js.ExecuteScript("arguments[0].scrollIntoView();", selectedElement); } - protected void ChooseSpecificSelectOption(By parentElement, string option) + protected void ChooseSelectOption(By parentElement, string option) { - Wait(); + wait.IgnoreExceptionTypes( + typeof(StaleElementReferenceException), + typeof(NoSuchElementException) + ); - var js = (IJavaScriptExecutor)webDriver; + // Wait until the parent select is visible + wait.Until(webDriver => + { + var parent = webDriver.FindElement(parentElement); + return parent.Displayed ? parent : null; + }); - var selectElement = webDriver.FindElement(parentElement); - wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(selectElement.FindElements(By.TagName("option")))); + // Wait until the desired option exists under the parent + wait.Until(webDriver => + { + var parent = webDriver.FindElement(parentElement); + var options = parent.FindElements(By.TagName("option")); - var childrenElements = selectElement.FindElements(By.TagName("option")); - var selectedOption = childrenElements.Should().ContainSingle(b => b.Text.Equals(option)).Subject; + return options.Any(o => o.Text.Trim().Equals(option, StringComparison.OrdinalIgnoreCase)); + }); - js.ExecuteScript("arguments[0].scrollIntoView();", selectedOption); + // Re-locate after the wait to avoid stale references + var selectElement = webDriver.FindElement(parentElement); + var selectedOption = selectElement + .FindElements(By.TagName("option")) + .Single(o => o.Text.Trim().Equals(option, StringComparison.OrdinalIgnoreCase)); + + ((IJavaScriptExecutor)webDriver).ExecuteScript("arguments[0].scrollIntoView({block:'center'});", selectedOption); selectedOption.Click(); } - protected void ChooseSpecificRadioButton(By parentName, string option) + protected void ChooseRadioButton(By parentName, string option) { var js = (IJavaScriptExecutor)webDriver; @@ -135,16 +238,38 @@ protected void ChooseSpecificRadioButton(By parentName, string option) js.ExecuteScript("arguments[0].click();", selectedOption); } - protected void ChooseMultiSelectSpecificOption(By element, string option) + protected void ChooseMultiSelectOption(By openLocator, By optionsContainerLocator, By closeLocator, string optionText) { var js = (IJavaScriptExecutor)webDriver; - var parentElement = webDriver.FindElement(element); - var childrenElements = parentElement.FindElements(By.TagName("li")); - var selectedOption = childrenElements.Should().ContainSingle(o => o.Text.Equals(option)).Subject; + SafeClick(closeLocator); - js.ExecuteScript("arguments[0].scrollIntoView();", selectedOption); - selectedOption.Click(); + Wait(); + SafeClick(openLocator); + + var optionElement = wait.Until(driver => + { + var container = driver.FindElement(optionsContainerLocator); + + var items = container.FindElements(By.TagName("li")) + .Where(x => x.Displayed) + .ToList(); + + return items.FirstOrDefault(x => + !string.IsNullOrWhiteSpace(x.Text) && + x.Text.Trim().Equals(optionText.Trim(), StringComparison.OrdinalIgnoreCase)); + }); + + if (optionElement == null) + { + throw new NoSuchElementException( + $"Could not find option '{optionText}' in multiselect."); + } + + js.ExecuteScript("arguments[0].scrollIntoView({block:'center'});", optionElement); + optionElement.Click(); + + SafeClick(closeLocator); } protected void ClearInput(By elementBy) @@ -247,10 +372,23 @@ protected void AssertTrueIsDisplayed(By elementBy) Assert.True(webDriver.FindElement(elementBy).Displayed); } - protected void AssertTrueContentEquals(By elementBy, string text = "") + protected void AssertTrueContentEquals(By elementBy, string expectedText = "") { - Wait(); - Assert.Equal(text, webDriver.FindElement(elementBy).Text); + wait.IgnoreExceptionTypes( + typeof(StaleElementReferenceException), + typeof(NoSuchElementException) + ); + + bool textMatched = wait.Until(webDriver => + { + var element = webDriver.FindElement(elementBy); + return element.Displayed && element.Text.Trim().Equals(expectedText.Trim(), StringComparison.Ordinal); + }); + + Assert.True( + textMatched, + $"Expected element '{elementBy}' text to equal '{expectedText}'." + ); } protected void AssertTrueElementValueEquals(By elementBy, string text = "") diff --git a/testing/PIMS.Tests.Automation/PageObjects/Projects.cs b/testing/PIMS.Tests.Automation/PageObjects/Projects.cs index 75c708f1f9..6f082e8d01 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/Projects.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/Projects.cs @@ -108,36 +108,28 @@ public Projects(IWebDriver webDriver) : base(webDriver) public void NavigateToCreateNewProject() { - Wait(3000); - - WaitUntilClickable(projectMenuBttn); - FocusAndClick(projectMenuBttn); - - WaitUntilClickable(createProjectButton); - FocusAndClick(createProjectButton); + SafeClick(projectMenuBttn); + SafeClick(createProjectButton); } public void NavigateProjectDetails() { - WaitUntilClickable(projectDetailTabLink); - FocusAndClick(projectDetailTabLink); + SafeClick(projectDetailTabLink); } public void CreateProject(Project project) { - WaitUntilVisible(projectNameInput); - + WaitUntilClickable(projectNameInput); webDriver.FindElement(projectNameInput).SendKeys(project.Name); + if (project.Number != "") - { webDriver.FindElement(projectNumberInput).SendKeys(project.Number); - } - ChooseSpecificSelectOption(projectStatusSelect, project.ProjectStatus); - ChooseSpecificSelectOption(projectMOTIRegionInput, project.ProjectMOTIRegion); + + ChooseSelectOption(projectStatusSelect, project.ProjectStatus); + ChooseSelectOption(projectMOTIRegionInput, project.ProjectMOTIRegion); if (project.Summary != "") - { webDriver.FindElement(projectSummaryTextarea).SendKeys(project.Summary); - } + if (project.CostType != "") { webDriver.FindElement(projectCostTypeInput).SendKeys(project.CostType); @@ -160,8 +152,6 @@ public void CreateProject(Project project) public void CreateProduct(Product product, int index) { - Wait(2000); - By productCodeDynamicInput = By.Id("input-products."+ index +".code"); By productNameDynamicInput = By.Id("input-products."+ index +".description"); By productStartDateDynamicInput = By.Id("datepicker-products."+ index +".startDate"); @@ -171,7 +161,7 @@ public void CreateProduct(Product product, int index) By productScopeDynamicInput = By.Id("input-products."+ index +".scope"); WaitUntilClickable(projectAddProductButton); - FocusAndClick(projectAddProductButton); + SafeClick(projectAddProductButton); webDriver.FindElement(productCodeDynamicInput).SendKeys(product.ProductCode); webDriver.FindElement(productNameDynamicInput).SendKeys(product.ProductName); @@ -227,10 +217,10 @@ public void UpdateProject(Project project) webDriver.FindElement(projectNumberInput).SendKeys(project.Number); if (project.ProjectStatus != "") - ChooseSpecificSelectOption(projectStatusSelect, project.ProjectStatus); + ChooseSelectOption(projectStatusSelect, project.ProjectStatus); if (project.ProjectMOTIRegion != "") - ChooseSpecificSelectOption(projectMOTIRegionInput, project.ProjectMOTIRegion); + ChooseSelectOption(projectMOTIRegionInput, project.ProjectMOTIRegion); if (project.Summary != "") webDriver.FindElement(projectSummaryTextarea).SendKeys(project.Summary); @@ -264,7 +254,6 @@ public void UpdateProduct(Product product, int index) By productEstimateDateDynamicInput = By.Id("datepicker-products."+ index +".costEstimateDate"); By productObjectiveDynamicInput = By.Id("input-products."+ index +".objective"); By productScopeDynamicInput = By.Id("input-products."+ index +".scope"); - //Cleaning previous input if (webDriver.FindElements(productEstimateDateDynamicInput).Count > 0) @@ -311,7 +300,6 @@ public void DeleteProduct(int productIndex) if (webDriver.FindElements(productDeleteModal).Count > 0) { - Wait(); Assert.Equal("Remove Product", sharedModals.ModalHeader()); Assert.Equal("Deleting this product will remove it from all \"Product\" dropdowns. Are you certain you wish to proceed?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); @@ -336,7 +324,7 @@ public void DeleteTeamMembers() public void SaveProject() { - Wait(); + WaitUntilClickable(projectSaveButton); webDriver.FindElement(projectSaveButton).Click(); Wait(); @@ -363,7 +351,7 @@ public void CancelProject() public void VerifyCreateProjectForm() { - Wait(); + WaitUntilVisible(projectNameLabel); //AssertTrueIsDisplayed(projectCreateTitle); //AssertTrueIsDisplayed(projectInstructionParagraph); @@ -401,7 +389,7 @@ public void VerifyCreateProductForm() WaitUntilClickable(projectAddProductButton); webDriver.FindElement(projectAddProductButton).Click(); - Wait(); + WaitUntilVisible(productCodeLabel); AssertTrueIsDisplayed(productCodeLabel); AssertTrueIsDisplayed(productCodeInput); AssertTrueIsDisplayed(productNameLabel); @@ -548,9 +536,7 @@ public void VerifyTeamMemberViewForm(List teamMembers) public void DuplicateProject() { - Wait(); - - Wait(); + WaitUntilVisible(projectOverrideConfirmationModal); if (webDriver.FindElements(projectOverrideConfirmationModal).Count() > 0 && sharedModals.ModalHeader().Equals("Error")) { Assert.Contains("Project will not be duplicated.", sharedModals.ModalContent()); diff --git a/testing/PIMS.Tests.Automation/PageObjects/PropertyImprovements.cs b/testing/PIMS.Tests.Automation/PageObjects/PropertyImprovements.cs index 1e73c84100..e054e3df5c 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/PropertyImprovements.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/PropertyImprovements.cs @@ -45,8 +45,8 @@ public void NavigateToImprovementSection() public void EditNthImprovements(int index) { Wait(); - By editBttn = By.CssSelector("button[data-testid='improvements['"+ index +"'].edit-btn']"); - webDriver.FindElement(editBttn).Click(); + By editBttn = By.CssSelector("button[data-testid='improvements["+ index +"].edit-btn']"); + SafeClick(editBttn); WaitUntilSpinnerDisappear(); } @@ -61,7 +61,7 @@ public void AddImprovementBttn() //Create Improvements public void AddUpdateImprovement(PropertyImprovement improvement) { - Wait(); + WaitUntilVisible(improvementDetailsTitle); AssertTrueIsDisplayed(improvementDetailsTitle); AssertTrueIsDisplayed(improvementDetailsNameLabel); @@ -69,10 +69,10 @@ public void AddUpdateImprovement(PropertyImprovement improvement) webDriver.FindElement(improvementDetailsNameInput).SendKeys(improvement.ImprovementName); AssertTrueIsDisplayed(improvementDetailsTypeLabel); - ChooseSpecificSelectOption(improvementDetailsTypeSelect, improvement.ImprovementType); + ChooseSelectOption(improvementDetailsTypeSelect, improvement.ImprovementType); AssertTrueIsDisplayed(improvementDetailsStatusLabel); - ChooseSpecificSelectOption(improvementDetailsStatusSelect, improvement.ImprovementStatus); + ChooseSelectOption(improvementDetailsStatusSelect, improvement.ImprovementStatus); AssertTrueIsDisplayed(improvementDetailsDateLabel); if (improvement.ImprovementDate != "") @@ -93,7 +93,7 @@ public void VerifyImprovementView(int index, PropertyImprovement improvement) { int elementIdx = index + 1; - AssertTrueIsDisplayed(improvementDetailsTitle); + Wait(); AssertTrueIsDisplayed(improvementDetailsNameLabel); AssertTrueContentEquals(By.CssSelector("div[data-testid='improvement["+ elementIdx +"].name']"), improvement.ImprovementName); @@ -102,7 +102,7 @@ public void VerifyImprovementView(int index, PropertyImprovement improvement) AssertTrueContentEquals(By.CssSelector("div[data-testid='improvement["+ elementIdx +"].type']"), improvement.ImprovementType); AssertTrueIsDisplayed(improvementDetailsDateLabel); - AssertTrueContentEquals(By.CssSelector("div[data-testid='improvement["+ elementIdx +"].date']"), improvement.ImprovementDate); + AssertTrueContentEquals(By.CssSelector("div[data-testid='improvement["+ elementIdx +"].date']"), TransformDateFormat(improvement.ImprovementDate)); AssertTrueIsDisplayed(improvementDetailsStatusLabel); AssertTrueContentEquals(By.CssSelector("div[data-testid='improvement["+ elementIdx +"].status']"), improvement.ImprovementStatus); @@ -114,21 +114,18 @@ public void VerifyImprovementView(int index, PropertyImprovement improvement) public void SaveImprovement() { - Wait(); ButtonElement("Save"); } public void CancelImprovement() { - Wait(); ButtonElement("Cancel"); - sharedModals.CancelActionModal(); } public int ImprovementTotal() { - Wait(); + WaitUntilVisible(licenseImproTotal); return webDriver.FindElements(licenseImproTotal).Count; } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/PropertyInformation.cs b/testing/PIMS.Tests.Automation/PageObjects/PropertyInformation.cs index 1af9a714b3..0a13c8e8e2 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/PropertyInformation.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/PropertyInformation.cs @@ -359,7 +359,7 @@ public void HideLeftSideForms() { WaitUntilSpinnerDisappear(); - Wait(); + WaitUntilClickable(propertyHideWindowBttn); webDriver.FindElement(propertyHideWindowBttn).Click(); } @@ -367,7 +367,7 @@ public void ShowLeftSideForms() { WaitUntilSpinnerDisappear(); - Wait(); + WaitUntilClickable(propertyShowWindowBttn); webDriver.FindElement(propertyShowWindowBttn).Click(); } @@ -391,33 +391,32 @@ public void OpenMoreOptionsPopUp() public void ChooseCreationOptionFromPin(string option) { - Wait(); switch(option) { case "View Property Info": - ButtonElement(propertyViewInfoBttn); + SafeClick(propertyViewInfoBttn); break; case "Research File": - ButtonElement(propertyNewResearchFileBttn); + SafeClick(propertyNewResearchFileBttn); break; case "Acquisition File": - ButtonElement(propertyNewAcquisitionFileBttn); + SafeClick(propertyNewAcquisitionFileBttn); break; case "Lease/License": - ButtonElement(propertyNewLeaseFileBttn); + SafeClick(propertyNewLeaseFileBttn); break; case "Disposition File": - ButtonElement(propertyNewDispositionFileBttn); + SafeClick(propertyNewDispositionFileBttn); break; case "Subdivision": - ButtonElement(propertyNewSubdivisionFileBttn); + SafeClick(propertyNewSubdivisionFileBttn); break; case "Consolidation": - ButtonElement(propertyNewConsolidationFileBttn); + SafeClick(propertyNewConsolidationFileBttn); break; } - Wait(); + WaitUntilVisible(propertyInformationConfirmationModal); while (webDriver.FindElements(propertyInformationConfirmationModal).Count > 0) { Assert.Equal("User Override Required", sharedModals.ModalHeader()); @@ -443,8 +442,6 @@ public void ChooseCreationOptionFromPin(string option) sharedModals.ModalClickOKBttn(); break; } - - Wait(); } } @@ -468,8 +465,7 @@ public void NavigatePropertyValueTab() public void NavigatePropertyHighwayTab() { - WaitUntilClickable(propertyInformationHwyTab); - webDriver.FindElement(propertyInformationHwyTab).Click(); + SafeClick(propertyInformationHwyTab); } public void NavigatePropertyOtherTab() @@ -492,19 +488,18 @@ public void NavigatePropertyCrownTab() public void EditPropertyInfoBttn() { - Wait(); - FocusAndClick(propertyDetailsEditBttn); + SafeClick(propertyDetailsEditBttn); } public void SavePropertyDetails() { - Wait(); + WaitUntilClickable(propertyDetailsSaveButton); webDriver.FindElement(propertyDetailsSaveButton).Click(); } public void CancelPropertyDetails() { - webDriver.FindElement(propertyDetailsCancelButton).Click(); + SafeClick(propertyDetailsCancelButton); Wait(); if (webDriver.FindElements(propertyInformationConfirmationModal).Count > 0) @@ -513,13 +508,12 @@ public void CancelPropertyDetails() public void UpdatePropertyDetails(Property property) { - Wait(); + WaitUntilVisible(propertyDetailsAddressLine1Input); //PROPERTY ADDRESS //Delete previous Line 2 or Line 3 if existing while (webDriver.FindElements(propertyDetailsAddressLineDeleteBttn).Count > 0) - webDriver.FindElements(propertyDetailsAddressLineDeleteBttn)[0].Click(); - + webDriver.FindElements(propertyDetailsAddressLineDeleteBttn)[0].Click(); if (property.Address.AddressLine1 != "") { @@ -573,16 +567,16 @@ public void UpdatePropertyDetails(Property property) } if (property.MOTIRegion != "") - ChooseSpecificSelectOption(propertyDetailsMotiRegionSelect, property.MOTIRegion); + ChooseSelectOption(propertyDetailsMotiRegionSelect, property.MOTIRegion); if (property.HighwaysDistrict != "") - ChooseSpecificSelectOption(propertyDetailsHighwayDistrictSelect, property.HighwaysDistrict); + ChooseSelectOption(propertyDetailsHighwayDistrictSelect, property.HighwaysDistrict); if (property.RailwayBelt != "") - ChooseSpecificSelectOption(propertyDetailsRailwaySelect, property.RailwayBelt); + ChooseSelectOption(propertyDetailsRailwaySelect, property.RailwayBelt); if (property.LandParcelType != "") - ChooseSpecificSelectOption(propertyDetailsLandTypeSelect, property.LandParcelType); + ChooseSelectOption(propertyDetailsLandTypeSelect, property.LandParcelType); if (property.MunicipalZoning != "") { @@ -598,16 +592,9 @@ public void UpdatePropertyDetails(Property property) } if (property.Anomalies.First() != "") - { foreach (string anomaly in property.Anomalies) - { - FocusAndClick(propertyDetailsAnomaliesInput); - - WaitUntilClickable(propertyDetailsAnomaliesOptions); - ChooseMultiSelectSpecificOption(propertyDetailsAnomaliesOptions, anomaly); - } - } - + ChooseMultiSelectOption(propertyDetailsAnomaliesInput, propertyDetailsAnomaliesOptions, propertyDetailsAttrAnomaliesLabel, anomaly); + //Delete Tenure status previously selected if any if (webDriver.FindElements(propertyDetailsTenureDeleteBttns).Count > 0) { @@ -622,19 +609,9 @@ public void UpdatePropertyDetails(Property property) //TENURE STATUS if (property.TenureStatus.First() != "") - { foreach (string status in property.TenureStatus) - { - Wait(2000); - webDriver.FindElement(propertyDetailsTenureStatusLabel).Click(); - FocusAndClick(propertyDetailsTenureStatusInput); - - WaitUntilClickable(propertyDetailsTenureOptions); - ChooseMultiSelectSpecificOption(propertyDetailsTenureOptions, status); - webDriver.FindElement(propertyDetailsTenureStatusLabel).Click(); - } - } - + ChooseMultiSelectOption(propertyDetailsTenureStatusInput, propertyDetailsTenureOptions, propertyDetailsTenureStatusLabel, status); + //Delete Tenure cleanup previously selected if any if (webDriver.FindElements(propertyDetailsTenureCleanupDeleteBttns).Count > 0) { @@ -649,21 +626,11 @@ public void UpdatePropertyDetails(Property property) //TENURE CLEANUP if (property.TenureCleanup.First() != "") - { foreach (string status in property.TenureCleanup) - { - Wait(2000); - webDriver.FindElement(propertyDetailsTenureCleanupLabel).Click(); - FocusAndClick(propertyDetailsTenureCleanupInput); - - WaitUntilClickable(propertyDetailsTenureCleanupOptions); - ChooseMultiSelectSpecificOption(propertyDetailsTenureCleanupOptions, status); - webDriver.FindElement(propertyDetailsTenureCleanupLabel).Click(); - } - } + ChooseMultiSelectOption(propertyDetailsTenureCleanupInput, propertyDetailsTenureCleanupOptions, propertyDetailsTenureCleanupLabel, status); if (property.TenureProvHwy != "") - ChooseSpecificSelectOption(propertyDetailsTenureProvincialHwySelect, property.TenureProvHwy); + ChooseSelectOption(propertyDetailsTenureProvincialHwySelect, property.TenureProvHwy); //Delete Highway Road Details if (webDriver.FindElements(propertyDetailsTenureHwyDetailsDeleteBttns).Count > 0) @@ -672,21 +639,10 @@ public void UpdatePropertyDetails(Property property) webDriver.FindElements(propertyDetailsTenureHwyDetailsDeleteBttns)[0].Click(); } - if (property.TenureHighwayDetails.First() != "") - { foreach (string hwyDetail in property.TenureHighwayDetails) - { - Wait(2000); - webDriver.FindElement(propertyDetailsHighwayRoadLabel).Click(); - FocusAndClick(propertyDetailsTenureHwyDetailsMultiselect); - - WaitUntilClickable(propertyDetailsTenureHwyDetailsOptions); - ChooseMultiSelectSpecificOption(propertyDetailsTenureHwyDetailsOptions, hwyDetail); - webDriver.FindElement(propertyDetailsHighwayRoadLabel).Click(); - } - } - + ChooseMultiSelectOption(propertyDetailsTenureHwyDetailsMultiselect, propertyDetailsTenureHwyDetailsOptions, propertyDetailsProvPublicHwyLabel, hwyDetail); + //MEASUREMENTS if (property.SqrMeters != "") { @@ -706,11 +662,11 @@ public void UpdatePropertyDetails(Property property) } if (property.VolumeType != "") - ChooseSpecificSelectOption(propertyDetailsVolTypeSelect, property.VolumeType); + ChooseSelectOption(propertyDetailsVolTypeSelect, property.VolumeType); //SURPLUS DECLARATION if (property.SurplusDeclarationType != "") - ChooseSpecificSelectOption(propertyDetailsSurplusDeclarationTypeSelect, property.SurplusDeclarationType); + ChooseSelectOption(propertyDetailsSurplusDeclarationTypeSelect, property.SurplusDeclarationType); if (property.SurplusDeclarationDate != "") { @@ -770,7 +726,7 @@ public void VerifyTitleTab() public void VerifyValueTab() { - Wait(); + WaitUntilVisible(propertyValueInfo); AssertTrueIsDisplayed(propertyValueInfo); @@ -805,7 +761,7 @@ public void VerifyValueTab() public void VerifyHwyTab() { - Wait(); + WaitUntilVisible(propertyHWYTitle); AssertTrueIsDisplayed(propertyHWYTitle); AssertTrueIsDisplayed(propertyHWYTooltip); @@ -846,11 +802,11 @@ public void VerifyPMBCTab() AssertTrueIsDisplayed(propertyPMBCPIDLabel); AssertTrueIsDisplayed(propertyPMBCPINLabel); AssertTrueIsDisplayed(propertyPMBCPlanNbrLabel); - AssertTrueIsDisplayed(propertyPMBCOwnerTypeLabel); + //AssertTrueIsDisplayed(propertyPMBCOwnerTypeLabel); AssertTrueIsDisplayed(propertyPMBCMunicipalityLabel); AssertTrueIsDisplayed(propertyPMBCRegionalDistrictLabel); AssertTrueIsDisplayed(propertyPMBCDistrictLabel); - AssertTrueIsDisplayed(propertyPMBCAreaLabel); + //AssertTrueIsDisplayed(propertyPMBCAreaLabel); AssertTrueIsDisplayed(propertyPMBCParcelClassLabel); AssertTrueIsDisplayed(propertyPMBCSUrveyDesignation1Label); AssertTrueIsDisplayed(propertyPMBCSUrveyDesignation2Label); @@ -862,7 +818,7 @@ public void VerifyCrownTab() AssertTrueIsDisplayed(propertyCrownTitle); AssertTrueIsDisplayed(propertyCrownIntridSidLabel); AssertTrueIsDisplayed(propertyCrownTenureStageLabel); - AssertTrueIsDisplayed(propertyCrownTenureStatusLabel); + //AssertTrueIsDisplayed(propertyCrownTenureStatusLabel); AssertTrueIsDisplayed(propertyCrownTenureTypeLabel); AssertTrueIsDisplayed(propertyCrownTenureSubtypeLabel); AssertTrueIsDisplayed(propertyCrownTenurePurposeLabel); @@ -896,7 +852,7 @@ public void VerifyOtherTab() public void VerifyPropertyInformationHeader(bool hasHistoricalFile) { - Wait(); + WaitUntilVisible(propertyInformationHeaderTitle); AssertTrueContentEquals(propertyInformationHeaderTitle, "Property Information"); @@ -918,7 +874,7 @@ public void VerifyPropertyInformationHeader(bool hasHistoricalFile) public void VerifyPropertyDetailsView() { - Wait(); + WaitUntilVisible(propertyDetailsAddressTitle); AssertTrueIsDisplayed(propertyDetailsAddressTitle); @@ -962,10 +918,6 @@ public void VerifyPropertyDetailsView() AssertTrueIsDisplayed(propertyDetailsTenureStatusDiv); AssertTrueIsDisplayed(propertyDetailsTenureCleanupLabel); AssertTrueIsDisplayed(propertyDetailsTenureCleanupDiv); - //AssertTrueIsDisplayed(propertyDetailsProvPublicHwyLabel); - //AssertTrueIsDisplayed(propertyDetailsProvPublicHwyDiv); - //AssertTrueIsDisplayed(propertyDetailsHighwayRoadLabel); - //AssertTrueIsDisplayed(propertyDetailsHighwayRoadDiv); if (webDriver.FindElements(propertyDetailsFirstNationTitle).Count() > 0) { @@ -1098,27 +1050,6 @@ public void VerifyUpdatePropertyDetailsView(Property property) Assert.True(Enumerable.SequenceEqual(tenureCleanupUI, property.TenureCleanup)); } - //AssertTrueIsDisplayed(propertyDetailsProvPublicHwyLabel); - //if (property.TenureCleanup.First() != "") - // AssertTrueContentEquals(propertyDetailsProvPublicHwyDiv, property.TenureProvHwy); - - - //AssertTrueIsDisplayed(propertyDetailsHighwayRoadLabel); - //if (property.TenureCleanup.First() != "") - //{ - // var tenureCleanupUI = GetViewFieldListContent(propertyDetailsHighwayRoadDiv); - // Assert.True(Enumerable.SequenceEqual(tenureCleanupUI, property.TenureHighwayDetails)); - //} - - //if (webDriver.FindElements(propertyDetailsFirstNationTitle).Count() > 0) - //{ - // AssertTrueIsDisplayed(propertyDetailsFirstNationTitle); - // AssertTrueIsDisplayed(propertyDetailsFirstNationBandNameLabel); - // AssertTrueIsDisplayed(propertyDetailsFirstNationBandNameDiv); - // AssertTrueIsDisplayed(propertyDetailsFirstNationReserveLabel); - // AssertTrueIsDisplayed(propertyDetailsFirstNationReserveDiv); - //} - //MEASUREMENTS AssertTrueIsDisplayed(propertyDetailsMeasurementsTitle); AssertTrueIsDisplayed(propertyDetailsMeasurementsAreaLabel); @@ -1263,7 +1194,7 @@ public void VerifyPlanInventoryPropertyTabs() { WaitUntilVisible(propertyInformationPlanTab); - Assert.Equal(9, webDriver.FindElements(propertyInformationTabsTotal).Count); + Assert.Equal(10, webDriver.FindElements(propertyInformationTabsTotal).Count); AssertTrueIsDisplayed(propertyInformationPlanTab); webDriver.FindElement(propertyInformationPlanTab).Click(); @@ -1271,7 +1202,7 @@ public void VerifyPlanInventoryPropertyTabs() public void VerifyPlanTabDetails() { - Wait(); + WaitUntilVisible(propertyStrataPlanTitle); AssertTrueIsDisplayed(propertyStrataPlanTitle); AssertTrueIsDisplayed(propertyStrataPlanNumberLabel); @@ -1292,7 +1223,7 @@ public void VerifyPlanTabDetails() public int PropertyTabs() { - Wait(5000); + Wait(2000); return webDriver.FindElements(propertyInformationTabsTotal).Count(); } @@ -1307,18 +1238,16 @@ private void AddHistoricalFile(HistoricalFile historicalFile) WaitUntilClickable(propertyAttrAddHistoricalFileButton); FocusAndClick(propertyAttrAddHistoricalFileButton); - Wait(); + WaitUntilVisible(propertyAttrHistoricalFilesTotalCount); var historicalFileIndex = webDriver.FindElements(propertyAttrHistoricalFilesTotalCount).Count() -1; WaitUntilVisible(By.Id("input-historicalNumbers."+ historicalFileIndex +".historicalNumber")); webDriver.FindElement(By.Id("input-historicalNumbers."+ historicalFileIndex +".historicalNumber")).SendKeys(historicalFile.HistoricalFileNumber); - ChooseSpecificSelectOption(By.Id("input-historicalNumbers."+ historicalFileIndex +".historicalNumberType"), historicalFile.HistoricalFileType); + ChooseSelectOption(By.Id("input-historicalNumbers."+ historicalFileIndex +".historicalNumberType"), historicalFile.HistoricalFileType); if(historicalFile.HistoricalFileOtherDetails != "") webDriver.FindElement(By.Id("input-historicalNumbers."+ historicalFileIndex +".otherHistoricalNumberType")).SendKeys(historicalFile.HistoricalFileOtherDetails); - - Wait(); } } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/PropertyManagementTab.cs b/testing/PIMS.Tests.Automation/PageObjects/PropertyManagementTab.cs index 06f61267f1..0eb8e5bc75 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/PropertyManagementTab.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/PropertyManagementTab.cs @@ -98,7 +98,7 @@ public void UpdateManagementSummaryButton() public void UpdateLastContactButton() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); var lastInsertedContactIndex = webDriver.FindElements(managementContactsBodyCount).Count; webDriver.FindElement(By.CssSelector("div[data-testid='PropertyContactsTable'] div[class='tbody'] div[class='tr-wrapper']:nth-child("+ lastInsertedContactIndex +") div[role='cell']:nth-child(4) button:nth-child(1)")).Click(); @@ -106,7 +106,7 @@ public void UpdateLastContactButton() public void ViewLastActivityButton() { - Wait(); + WaitUntilVisible(managementActivitiesBodyCount); var lastInsertedActivityIndex = webDriver.FindElements(managementActivitiesBodyCount).Count; webDriver.FindElement(By.XPath("//div[@data-testid='adhoc-activity-list']/div[@class='tbody']/div[@class='tr-wrapper']["+ lastInsertedActivityIndex +"]/div/div[@role='cell'][5]/div/button[1]")).Click(); @@ -114,7 +114,7 @@ public void ViewLastActivityButton() public void AddNewPropertyContactButton() { - Wait(); + WaitUntilClickable(managementeAddContactBttn); webDriver.FindElement(managementeAddContactBttn).Click(); } @@ -126,7 +126,7 @@ public void AddNewPropertyActivityButton() public void InsertManagementSummaryInformation(PropertyManagement managementProperty) { - Wait(); + WaitUntilClickable(managementPropertyPurposeInput); //Delete Property Purpose if any if (webDriver.FindElements(managementPropertyPurposeDeleteBttns).Count > 0) @@ -138,23 +138,15 @@ public void InsertManagementSummaryInformation(PropertyManagement managementProp } //Add Property Purpose if (managementProperty.ManagementPropertyPurpose.First() != "") - { ClearMultiSelectInput(managementPropertyPurposeInput); foreach (string purpose in managementProperty.ManagementPropertyPurpose) - { - Wait(); - webDriver.FindElement(managementPropertyPurposeLabel).Click(); - FocusAndClick(managementPropertyPurposeInput); - - ChooseMultiSelectSpecificOption(managementPropertyPurposeOptions, purpose); - webDriver.FindElement(managementPropertyPurposeLabel).Click(); - } - } + ChooseMultiSelectOption(managementPropertyPurposeInput, managementPropertyPurposeOptions, managementPropertyPurposeLabel, purpose); + if (managementProperty.ManagementUtilitiesPayable != "") - ChooseSpecificSelectOption(managementUtilitiesPayableSelect, managementProperty.ManagementUtilitiesPayable); + ChooseSelectOption(managementUtilitiesPayableSelect, managementProperty.ManagementUtilitiesPayable); if (managementProperty.ManagementTaxesPayable != "") - ChooseSpecificSelectOption(managementTaxesPayableSelect, managementProperty.ManagementTaxesPayable); + ChooseSelectOption(managementTaxesPayableSelect, managementProperty.ManagementTaxesPayable); ClearInput(managementAdditionalDetailsTextarea); if (managementProperty.ManagementPropertyAdditionalDetails != "") @@ -164,16 +156,19 @@ public void InsertManagementSummaryInformation(PropertyManagement managementProp public void InsertNewPropertyContact(PropertyContact contact) { - Wait(); + WaitUntilClickable(managementContactsButton); //Choosing a contact webDriver.FindElement(managementContactsButton).Click(); sharedSelectContact.SelectContact(contact.PropertyContactFullName, contact.PropertyContactType); //Choosing Primary Contact - Wait(); if (contact.PropertyPrimaryContact != "" && webDriver.FindElements(managementContactPrimaryContactSelect).Count > 0) - ChooseSpecificSelectOption(managementContactPrimaryContactSelect, contact.PropertyPrimaryContact); + { + WaitUntilClickable(managementContactPrimaryContactSelect); + ChooseSelectOption(managementContactPrimaryContactSelect, contact.PropertyPrimaryContact); + } + //Inserting Purpose Description webDriver.FindElement(managementContactsPurposeDescriptionTextarea).Click(); @@ -183,7 +178,7 @@ public void InsertNewPropertyContact(PropertyContact contact) public void UpdatePropertyContact(PropertyContact contact) { - Wait(); + WaitUntilClickable(managementContactsPurposeDescriptionTextarea); //Update Purpose Description webDriver.FindElement(managementContactsPurposeDescriptionTextarea).Click(); @@ -199,36 +194,34 @@ public void SavePropertyManagement() public void DeleteAllContacts() { - Wait(); while (webDriver.FindElements(managementContactsDeleteBttns).Count > 0) { - Wait(); + WaitUntilClickable(managementContactsFirstDeleteBttn); webDriver.FindElement(managementContactsFirstDeleteBttn).Click(); Assert.Equal("Confirm delete", sharedModals.ModalHeader()); Assert.Equal("This contact will be removed from the Property contacts. Do you wish to proceed?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); } } public void DeleteAllActivities() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); while (webDriver.FindElements(managementActivitiesDeleteBttns).Count > 0) { - Wait(); + WaitUntilClickable(managementActivitiesDeleteBttns); webDriver.FindElements(managementActivitiesDeleteBttns)[0].Click(); - Wait(); Assert.Equal("Confirm Delete", sharedModals.ModalHeader()); Assert.Equal("Are you sure you want to delete this item?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); } } @@ -297,7 +290,7 @@ public void VerifyCreateContactsInitForm() public void VerifyInsertedSummaryForm(PropertyManagement managementProperty) { - Wait(); + WaitUntilVisible(managementSummaryTitle); AssertTrueIsDisplayed(managementSummaryTitle); AssertTrueIsDisplayed(managementPropertyPurposeLabel); @@ -320,7 +313,7 @@ public void VerifyInsertedSummaryForm(PropertyManagement managementProperty) public void VerifyLastInsertedPropertyContactTable(PropertyContact contact) { - Wait(3000); + WaitUntilVisible(managementContactsBodyCount); var lastInsertedContactIndex = webDriver.FindElements(managementContactsBodyCount).Count; @@ -339,7 +332,7 @@ public void VerifyLastInsertedPropertyContactTable(PropertyContact contact) public void VerifyLastInsertedActivityTable(PropertyActivity activity) { - Wait(); + WaitUntilVisible(managementActivitiesBodyCount); var lastInsertedActivityIndex = webDriver.FindElements(managementActivitiesBodyCount).Count; @@ -356,13 +349,12 @@ public void VerifyLastInsertedActivityTable(PropertyActivity activity) public void ViewLastActivityFromList() { var paginationLastPage = webDriver.FindElements(managementActivityPaginationOptions).Count() -1; - webDriver.FindElement(By.XPath("//div[@data-testid='adhoc-activity-list']/following-sibling::div/div/ul[@class='pagination']/li["+ paginationLastPage +"]")).Click(); } public string VerifyLeaseActiveStatus() { - Wait(); + WaitUntilVisible(managementLeaseContent); return webDriver.FindElement(managementLeaseContent).Text; } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/PropertyPIMSFiles.cs b/testing/PIMS.Tests.Automation/PageObjects/PropertyPIMSFiles.cs index b65ea28a11..9dd9d458cb 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/PropertyPIMSFiles.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/PropertyPIMSFiles.cs @@ -45,8 +45,6 @@ public void NavigatePIMSFiles() public void VerifyPimsFiles() { - Wait(); - WaitUntilClickable(propertyPimsFilesLinkTab); webDriver.FindElement(propertyPimsFilesLinkTab).Click(); @@ -65,7 +63,7 @@ public void VerifyPimsFiles() AssertTrueIsDisplayed(propertyAcquisitionFileSubtitle); AssertTrueIsDisplayed(propertyAcquisitionCountLabel); - Wait(); + WaitUntilClickable(propertyAcquisitionExpandTableBttn); webDriver.FindElement(propertyAcquisitionExpandTableBttn).Click(); AssertTrueIsDisplayed(propertyAcquisitionTable); @@ -74,7 +72,7 @@ public void VerifyPimsFiles() AssertTrueIsDisplayed(propertyLeasesSubtitle); AssertTrueIsDisplayed(propertyLeaseCountLabel); - Wait(); + WaitUntilClickable(propertyLeaseExpandTableBttn); webDriver.FindElement(propertyLeaseExpandTableBttn).Click(); AssertTrueIsDisplayed(propertyLeaseTable); @@ -83,7 +81,7 @@ public void VerifyPimsFiles() AssertTrueIsDisplayed(propertyManagementSubtitle); AssertTrueIsDisplayed(propertyManagementCountLabel); - Wait(); + WaitUntilClickable(propertyManagementExpandTableBttn); webDriver.FindElement(propertyManagementExpandTableBttn).Click(); AssertTrueIsDisplayed(propertyManagementTable); @@ -127,9 +125,5 @@ public int GetManagementFilesCount() WaitUntilVisible(propertyManagementCountLabel); return int.Parse(webDriver.FindElement(propertyManagementCountLabel).Text); } - - - - } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/ResearchFiles.cs b/testing/PIMS.Tests.Automation/PageObjects/ResearchFiles.cs index 3322b303b0..dcaf5183bc 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/ResearchFiles.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/ResearchFiles.cs @@ -156,10 +156,10 @@ public ResearchFiles(IWebDriver webDriver) : base(webDriver) } public void NavigateToCreateNewResearchFile() { - Wait(); + WaitUntilClickable(menuResearchButton); FocusAndClick(menuResearchButton); - Wait(); + WaitUntilClickable(createResearchFileButton); FocusAndClick(createResearchFileButton); } @@ -180,8 +180,7 @@ public void NavigateToAddPropertiesReseachFile() Wait(); totalAssociatedProps = webDriver.FindElements(researchFilePropertyCountProps).Count() - 1; - WaitUntilClickable(researchEditPropertiesBttn); - webDriver.FindElement(researchEditPropertiesBttn).Click(); + SafeClick(researchEditPropertiesBttn); } public void ChooseFirstPropertyOption() @@ -198,27 +197,27 @@ public void CreateResearchFile(ResearchFile researchFile) public void AddAdditionalResearchFileInfo(ResearchFile researchFile) { - Wait(); + WaitUntilClickable(researchFileEditButton); webDriver.FindElement(researchFileEditButton).Click(); //Status if (researchFile.Status != "") - ChooseSpecificSelectOption(researchFileStatusSelect, researchFile.Status); + ChooseSelectOption(researchFileStatusSelect, researchFile.Status); //Projects if (researchFile.Projects.First() != "") { for (int i = 0; i < researchFile.Projects.Count; i++) { - webDriver.FindElement(researchFileDetailsProjectAddBttn).Click(); + SafeClick(researchFileDetailsProjectAddBttn); By projectInput = By.Id("typeahead-researchFileProjects["+ i +"].project"); webDriver.FindElement(projectInput).SendKeys(researchFile.Projects[i]); - Wait(); + WaitUntilClickable(projectInput); webDriver.FindElement(projectInput).SendKeys(Keys.Space); - Wait(); + WaitUntilClickable(projectInput); webDriver.FindElement(projectInput).SendKeys(Keys.Backspace); By projectOptions = By.Id("typeahead-researchFileProjects["+ i +"].project-item-0"); @@ -254,15 +253,9 @@ public void AddAdditionalResearchFileInfo(ResearchFile researchFile) //Research Request if (researchFile.ResearchPurpose.First() != "") - { foreach (string purpose in researchFile.ResearchPurpose) - { - webDriver.FindElement(researchPurposeMultiselect).Click(); - - Wait(); - ChooseMultiSelectSpecificOption(researchRequestPurposeOptions, purpose); - } - } + ChooseMultiSelectOption(researchPurposeMultiselect, researchRequestPurposeOptions, researchFileDetailsRequestPurposeLabel, purpose); + if (researchFile.RequestDate != "") { webDriver.FindElement(researchRequestDateInput).SendKeys(researchFile.RequestDate); @@ -270,7 +263,7 @@ public void AddAdditionalResearchFileInfo(ResearchFile researchFile) } if (researchFile.RequestSource != "") { - ChooseSpecificSelectOption(researchRequestSourceSelect, researchFile.RequestSource); + ChooseSelectOption(researchRequestSourceSelect, researchFile.RequestSource); } if (researchFile.RequestDescription != "") @@ -288,7 +281,6 @@ public void AddAdditionalResearchFileInfo(ResearchFile researchFile) public void AddPropertyResearchInfo(PropertyResearch propertyResearch, int index) { //Pick Property - Wait(); By propertyLink = By.CssSelector("div[data-testid='menu-item-property-" + index + "']"); WaitUntilClickable(propertyLink); webDriver.FindElement(propertyLink).Click(); @@ -303,23 +295,16 @@ public void AddPropertyResearchInfo(PropertyResearch propertyResearch, int index webDriver.FindElement(researchPropertyNameInput).SendKeys(propertyResearch.DescriptiveName); } if (propertyResearch.PropertyResearchPurpose.Count > 0) - { for (int i = 0; i < propertyResearch.PropertyResearchPurpose.Count; i++) - { - webDriver.FindElement(researchPropertyPurposeSelect).Click(); - - WaitUntilVisible(researchPropertyPurposeOptions); - ChooseMultiSelectSpecificOption(researchPropertyPurposeOptions, propertyResearch.PropertyResearchPurpose[i]); - } - webDriver.FindElement(researchPropertyPurposeLabel).Click(); - } + ChooseMultiSelectOption(researchPropertyPurposeSelect, researchPropertyPurposeOptions, researchPropertyPurposeLabel, propertyResearch.PropertyResearchPurpose[i]); + if (propertyResearch.LegalOpinionRequest != "") { - ChooseSpecificSelectOption(researchPropertyLegalOpinionReqSelect, propertyResearch.LegalOpinionRequest); + ChooseSelectOption(researchPropertyLegalOpinionReqSelect, propertyResearch.LegalOpinionRequest); } if (propertyResearch.LegalOpinionObtained != "") { - ChooseSpecificSelectOption(researchPropertyLegalOpinionObtSelect, propertyResearch.LegalOpinionObtained); + ChooseSelectOption(researchPropertyLegalOpinionObtSelect, propertyResearch.LegalOpinionObtained); } if (propertyResearch.DocumentReference != "") { @@ -338,7 +323,7 @@ public void EditResearchFileForm(ResearchFile researchFile) //Status if (researchFile.Status != "") - ChooseSpecificSelectOption(researchFileStatusSelect, researchFile.Status); + ChooseSelectOption(researchFileStatusSelect, researchFile.Status); //File Name if (researchFile.ResearchFileName != "") @@ -398,10 +383,7 @@ public void EditResearchFileForm(ResearchFile researchFile) { //Add new Research Purpose foreach (string purpose in researchFile.ResearchPurpose) - { - webDriver.FindElement(researchPurposeMultiselect).Click(); - ChooseMultiSelectSpecificOption(researchRequestPurposeOptions, purpose); - } + ChooseMultiSelectOption(researchPurposeMultiselect, researchRequestPurposeOptions, researchFileDetailsRequestPurposeLabel, purpose); } if (researchFile.RequestDate != "") { @@ -411,7 +393,7 @@ public void EditResearchFileForm(ResearchFile researchFile) } if (researchFile.RequestSource != "") { - ChooseSpecificSelectOption(researchRequestSourceSelect, researchFile.RequestSource); + ChooseSelectOption(researchRequestSourceSelect, researchFile.RequestSource); } if (researchFile.Requester != "") { @@ -458,7 +440,7 @@ public void EditPropertyResearchInfo(PropertyResearch propertyResearch, int inde //Pick Property By propertyLink = By.CssSelector("div[data-testid='menu-item-property-" + index + "']"); - Wait(2000); + Wait(); if(webDriver.FindElements(propertyLink).Count > 0) webDriver.FindElement(propertyLink).Click(); @@ -484,20 +466,16 @@ public void EditPropertyResearchInfo(PropertyResearch propertyResearch, int inde } foreach (string purpose in propertyResearch.PropertyResearchPurpose) { - FocusAndClick(researchPropertyPurposeInput); - - WaitUntilClickable(researchPropertyPurposeOptions); - ChooseMultiSelectSpecificOption(researchPropertyPurposeOptions, purpose); + ChooseMultiSelectOption(researchPropertyPurposeInput, researchPropertyPurposeOptions, researchPropertyPurposeLabel, purpose); } - webDriver.FindElement(researchPropertyPurposeLabel).Click(); } if (propertyResearch.LegalOpinionRequest != "") { - ChooseSpecificSelectOption(researchPropertyLegalOpinionReqSelect, propertyResearch.LegalOpinionRequest); + ChooseSelectOption(researchPropertyLegalOpinionReqSelect, propertyResearch.LegalOpinionRequest); } if (propertyResearch.LegalOpinionObtained != "") { - ChooseSpecificSelectOption(researchPropertyLegalOpinionObtSelect, propertyResearch.LegalOpinionObtained); + ChooseSelectOption(researchPropertyLegalOpinionObtSelect, propertyResearch.LegalOpinionObtained); } if (propertyResearch.DocumentReference != "") { @@ -513,7 +491,6 @@ public void EditPropertyResearchInfo(PropertyResearch propertyResearch, int inde public void SaveResearchFile() { - Wait(); ButtonElement("Save"); Wait(); @@ -525,6 +502,7 @@ public void SaveResearchFile() Assert.Equal("You have made changes to the properties in this file.", sharedModals.ConfirmationModalText1()); Assert.Equal("Do you want to save these changes?", sharedModals.ConfirmationModalText2()); sharedModals.ModalClickOKBttn(); + Wait(500); } else if (sharedModals.ModalHeader() == "User Override Required") { @@ -532,6 +510,7 @@ public void SaveResearchFile() Assert.Contains("The selected property already exists in the system's inventory. However, the record is missing spatial details.", sharedModals.ModalContent()); Assert.Contains("To add the property, the spatial details for this property will need to be updated. The system will attempt to update the property record with spatial information from the current selection.", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); + Wait(500); } else if (sharedModals.ModalHeader() == "Confirm status change") { @@ -539,9 +518,8 @@ public void SaveResearchFile() Assert.Contains("If you save it, only the administrator can turn it back on. You will still see it in the management table.", sharedModals.ConfirmationModalParagraph1()); Assert.Equal("Do you want to acknowledge and proceed?", sharedModals.ConfirmationModalParagraph2()); sharedModals.ModalClickOKBttn(); + Wait(500); } - - Wait(); } } @@ -554,14 +532,14 @@ public void CancelResearchFile() //Get the research file number public string GetResearchFileCode() { - Wait(); + WaitUntilVisible(researchFileHeaderNbrContent); return webDriver.FindElement(researchFileHeaderNbrContent).Text; } //Verify Create Research Init Form public void VerifyResearchFileCreateInitForm() { - Wait(); + WaitUntilVisible(researchFileNameLabel); //Title and Name //AssertTrueIsDisplayed(researchFileCreateHeader); @@ -628,7 +606,7 @@ public void VerifyResearchFileEditInitForm(ResearchFile researchFile, string use //Verify UI/UX Elements - Research Main Form - View Form public void VerifyResearchFileMainFormView(ResearchFile researchFile, string user) { - Wait(2000); + WaitUntilVisible(researchFileHeaderStatusContent); //Header VerifyResearchFileHeader(researchFile, user); @@ -692,7 +670,7 @@ public void VerifyResearchFileMainFormView(ResearchFile researchFile, string use //Verify UI/UX Elements - Research Properties - Property Research - View Form public void VerifyPropResearchTabFormView(PropertyResearch propertyResearch) { - Wait(); + WaitUntilVisible(researchPropertyInterestLabel); AssertTrueIsDisplayed(researchPropertyInterestLabel); AssertTrueIsDisplayed(researchPropertyNameLabel); @@ -725,7 +703,7 @@ public void VerifyPropResearchTabFormView(PropertyResearch propertyResearch) private void VerifyResearchFileHeader(ResearchFile researchFile, string user) { - Wait(); + WaitUntilVisible(researchFileViewTitle); AssertTrueIsDisplayed(researchFileViewTitle); diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchAcquisitionFiles.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchAcquisitionFiles.cs index a3e93bae68..b1b31852bd 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchAcquisitionFiles.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchAcquisitionFiles.cs @@ -62,18 +62,17 @@ public SearchAcquisitionFiles(IWebDriver webDriver) : base(webDriver) //Navigates to Search an Acquisition File public void NavigateToSearchAcquisitionFile() { - Wait(3000); + WaitUntilClickable(menuAcquisitionButton); FocusAndClick(menuAcquisitionButton); - Wait(3000); + WaitUntilClickable(searchAcquisitionButton); FocusAndClick(searchAcquisitionButton); } public void OrderByAcquisitionFileNumber() { Wait(); - WaitUntilClickable(searchAcquisitionOrderFileNumberBttn); - webDriver.FindElement(searchAcquisitionOrderFileNumberBttn).Click(); + SafeClick(searchAcquisitionOrderFileNumberBttn); } public void OrderByAcquisitionFileHistoricalNumber() @@ -92,7 +91,7 @@ public void SelectFirstOption() { var originalWindowHandle = webDriver.CurrentWindowHandle; - Wait(); + WaitUntilClickable(searchAcquisitionFile1stResultLink); webDriver.FindElement(searchAcquisitionFile1stResultLink).Click(); Wait(); @@ -100,7 +99,6 @@ public void SelectFirstOption() var newWindowHandle = allWindowsHandle.Where(handle => handle != originalWindowHandle).First(); webDriver.SwitchTo().Window(newWindowHandle); - WaitUntilClickable(searchAcquisitionFileHeaderCode); AssertTrueIsDisplayed(searchAcquisitionFileHeaderCode); } @@ -108,25 +106,24 @@ public void SelectFirstOption() public void FilterAcquisitionFiles(string pid = "", string pin = "", string address = "", string name = "", string teamMember = "", string status = "", string project = "", string owner = "") { - Wait(5000); + WaitUntilClickable(searchAcquisitionFileResetButton); webDriver.FindElement(searchAcquisitionFileResetButton).Click(); - Wait(); if (pid != "") { - ChooseSpecificSelectOption(searchAcquisitionFileSearchBySelect, "PID"); + ChooseSelectOption(searchAcquisitionFileSearchBySelect, "PID"); webDriver.FindElement(searchAcquisitionFileSearchByPIDInput).SendKeys(pid); } if (pin != "") { - ChooseSpecificSelectOption(searchAcquisitionFileSearchBySelect, "PIN"); + ChooseSelectOption(searchAcquisitionFileSearchBySelect, "PIN"); webDriver.FindElement(searchAcquisitionFileSearchByPINInput).SendKeys(pin); } if (address != "") { - ChooseSpecificSelectOption(searchAcquisitionFileSearchBySelect, "Civic Address"); + ChooseSelectOption(searchAcquisitionFileSearchBySelect, "Civic Address"); webDriver.FindElement(searchAcquisitionFileSearchByAddressInput).SendKeys(address); } if (name != "") @@ -140,7 +137,7 @@ public void FilterAcquisitionFiles(string pid = "", string pin = "", string addr } if(status != "") - ChooseSpecificSelectOption(searchAcquisitionFileStatusSelect, status); + ChooseSelectOption(searchAcquisitionFileStatusSelect, status); if (project != "") webDriver.FindElement(searchAcquisitionFileOwnerInput).SendKeys(project); @@ -153,37 +150,37 @@ public void FilterAcquisitionFiles(string pid = "", string pin = "", string addr public Boolean SearchFoundResults() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchAcquisitionFile1stResult).Count > 0; } public string FirstAcquisitionFileNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchAcquisitionFile1stResultLink).Text; } public string FirstAcquisitionLegacyFileNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchAcquisitionFile1stResultHistoricalFile).Text; } public string FirstAcquisitionFileName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchAcquisitionFile1stResultName).Text; } public int AcquisitionFileTableResultNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchAcquisitionFileTableContent).Count; } public void VerifyAcquisitionFileListView() { - Wait(); + WaitUntilVisible(searchAcquisitionFileTitle); //Acquisition File Title AssertTrueIsDisplayed(searchAcquisitionFileTitle); diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchActivities.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchActivities.cs index 5a2d9524a0..b936d1713b 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchActivities.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchActivities.cs @@ -63,10 +63,10 @@ public SearchActivities(IWebDriver webDriver) : base(webDriver) public void NavigateToSearchActivities() { - Wait(); + WaitUntilClickable(managementMainMenu); FocusAndClick(managementMainMenu); - Wait(); + WaitUntilClickable(managementMainMenuActivitiesListViewLink); FocusAndClick(managementMainMenuActivitiesListViewLink); } @@ -102,58 +102,58 @@ public void OrderByActStatus() public string FirstActDescription() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementListViewDescription1stRecord).Text; } public string FirstActName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementListViewName1stRecord).Text; } public string FirstActHistoricalFile() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementListViewHistoricalFile1stRecord).Text; } public string FirstActType() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementListViewType1stRecord).Text; } public string FirstActMgmtStatus() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementListViewStatus1stRecord).Text; } public void FilterManagementActivities(string pid = "", string pin = "", string address = "", string actName = "", string actStatus = "", string mgmtStatus = "", string actType = "", string mgmtPurpose = "", string project = "") { - Wait(); + WaitUntilClickable(managementListResetButton); webDriver.FindElement(managementListResetButton).Click(); if (pid != "") { WaitUntilClickable(managementListSearchBySelect); - ChooseSpecificSelectOption(managementListSearchBySelect, "PID"); + ChooseSelectOption(managementListSearchBySelect, "PID"); webDriver.FindElement(managementListSearchByPIDInput).SendKeys(pid); } if (pin != "") { WaitUntilClickable(managementListSearchBySelect); - ChooseSpecificSelectOption(managementListSearchBySelect, "PIN"); + ChooseSelectOption(managementListSearchBySelect, "PIN"); webDriver.FindElement(managementListSearchByPINInput).SendKeys(pin); } if (address != "") { WaitUntilClickable(managementListSearchBySelect); - ChooseSpecificSelectOption(managementListSearchBySelect, "Address"); + ChooseSelectOption(managementListSearchBySelect, "Address"); webDriver.FindElement(managementListSearchByAddressInput).SendKeys(address); } @@ -166,19 +166,19 @@ public void FilterManagementActivities(string pid = "", string pin = "", string if (actStatus != "") { WaitUntilClickable(managementListSearchByActivityStatusSelect); - ChooseSpecificSelectOption(managementListSearchByActivityStatusSelect, actStatus); + ChooseSelectOption(managementListSearchByActivityStatusSelect, actStatus); } if (mgmtStatus != "") { WaitUntilClickable(managementListSearchByFileStatusSelect); - ChooseSpecificSelectOption(managementListSearchByFileStatusSelect, mgmtStatus); + ChooseSelectOption(managementListSearchByFileStatusSelect, mgmtStatus); } if (actType != "") { WaitUntilClickable(managementListSearchByActivityTypeSelect); - ChooseSpecificSelectOption(managementListSearchByActivityTypeSelect, actType); + ChooseSelectOption(managementListSearchByActivityTypeSelect, actType); } if (mgmtPurpose != "") { @@ -197,13 +197,13 @@ public void FilterManagementActivities(string pid = "", string pin = "", string public Boolean SearchFoundResults() { - Wait(2000); + WaitUntilVisible(managementListViewViewMgmtFile1stRecord); return webDriver.FindElements(managementListViewViewMgmtFile1stRecord).Count > 0; } public int MgmtActsTableResultNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(managementFilesResultsTable).Count; } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchContacts.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchContacts.cs index 2c8d0c3169..144e1d2788 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchContacts.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchContacts.cs @@ -6,6 +6,7 @@ public class SearchContacts : PageObjectBase { private readonly By menuContactsButton = By.CssSelector("div[data-testid='nav-tooltip-contacts'] a"); private readonly By searchContactButton = By.XPath("//a[contains(text(),'Manage Contacts')]"); + private readonly By consolidationsBttn = By.CssSelector("div[data-testid='nav-tooltip-subdivision&consolidation']"); private readonly By searchContactOrgRadioBttn = By.Id("input-organizations"); private readonly By searchContactIndRadioBttn = By.Id("input-persons"); @@ -15,7 +16,6 @@ public class SearchContacts : PageObjectBase private readonly By searchContactResetBttn = By.Id("reset-button"); private readonly By searchContactActiveChckBox = By.Id("input-activeContactsOnly"); private readonly By searchContactActiveSpan = By.XPath("//span[contains(text(),'Show active only')]"); - private readonly By searchContactAddNewBttn = By.XPath("//body/div[@id='root']/div[2]/div[2]/div[1]/div[1]/h1[1]/div[1]/button[1]"); private readonly By searchContactTableSummaryColumn = By.XPath("//div[contains(text(),'Summary')]"); private readonly By searchContactOrderBySummaryBttn = By.CssSelector("div[data-testid='sort-column-summary']"); @@ -51,31 +51,23 @@ public class SearchContacts : PageObjectBase private readonly By searchContactUpdateBttn = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(11) button:nth-child(1)"); private readonly By searchContactViewBttn = By.CssSelector("div[class='tr-wrapper']:nth-child(1) div:nth-child(11) button:nth-child(2)"); - private readonly By searchUpdateForm = By.Id("updateForm"); - private readonly By searchContactViewContactInfoHeader = By.XPath("//h2[contains(text(), 'Contact info')]"); - private readonly By searchContactBackLink = By.XPath("//a[contains(text(), 'Contact Search')]"); - public SearchContacts(IWebDriver webDriver) : base(webDriver) { } //Navigates to Search a Contact public void NavigateToSearchContact() { - Wait(); - FocusAndClick(menuContactsButton); - - Wait(); - FocusAndClick(searchContactButton); + SafeClick(consolidationsBttn); + SafeClick(menuContactsButton); + SafeClick(searchContactButton); } //Search For a general contact public void FilterContacts(string contactType = "", string summary = "", string city = "") { - Wait(); - + WaitUntilClickable(searchContactResetBttn); webDriver.FindElement(searchContactResetBttn).Click(); - Wait(); if (contactType != "") { if(contactType == "Individual") @@ -91,13 +83,13 @@ public void FilterContacts(string contactType = "", string summary = "", string webDriver.FindElement(searchContactCityInput).SendKeys(city); webDriver.FindElement(searchContactResultsBttn).Click(); - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); } //Pick the first Search Result public void SelectFirstResultLink() { - Wait(2000); + WaitUntilClickable(searchContact1stResultLink); webDriver.FindElement(searchContact1stResultLink).Click(); } @@ -159,8 +151,8 @@ public void OrderByContactLastName() public void OrderByContactOrganization() { - Wait(4000); - webDriver.FindElement(searchContactOrderByOrganizationBttn).Click(); + Wait(); + SafeClick(searchContactOrderByOrganizationBttn); } public void OrderByContactCity() @@ -171,49 +163,49 @@ public void OrderByContactCity() public string FirstContactSummary() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchContact1stResultLink).Text; } public string FirstContactFirstName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchContact1stFirstNameContent).Text; } public string FirstContactLastName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchContact1stLastNameContent).Text; } public string FirstContactOrganization() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchContact1stOrganizationContent).Text; } public string FirstContactCity() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchContact1stCityContent).Text; } public int ContactsTableResultNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchContactTableContent).Count; } public Boolean SearchFoundResults() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchContact1stRowResult).Count > 0; } public void VerifyContactTableContent(string summary, string firstName, string lastName, string organization, string email, string address, string city, string province, string country) { - Wait(2000); + Wait(); AssertTrueContentEquals(searchContact1stResultLink,summary); AssertTrueContentEquals(searchContact1stFirstNameContent, firstName); diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchDispositionFiles.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchDispositionFiles.cs index f8e322d15e..b39834d1b8 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchDispositionFiles.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchDispositionFiles.cs @@ -5,6 +5,7 @@ namespace PIMS.Tests.Automation.PageObjects { public class SearchDispositionFiles : PageObjectBase { + private readonly By menuManagementLeaseButton = By.CssSelector("div[data-testid='nav-tooltip-leases&licences'] a"); private readonly By menuDispositionButton = By.CssSelector("div[data-testid='nav-tooltip-disposition'] a"); private readonly By searcDispositionButton = By.XPath("//a[contains(text(),'Manage Disposition Files')]"); @@ -69,78 +70,70 @@ public SearchDispositionFiles(IWebDriver webDriver) : base(webDriver) //Navigates to Search an DispositionFile public void NavigateToSearchDispositionFile() { - Wait(3000); - FocusAndClick(menuDispositionButton); - - Wait(3000); - FocusAndClick(searcDispositionButton); + SafeClick(menuManagementLeaseButton); + SafeClick(menuDispositionButton); + SafeClick(searcDispositionButton); } public void SearchLastDispositionFile() { - Wait(2000); + WaitUntilClickable(searchDispositionFileResetButton); webDriver.FindElement(searchDispositionFileResetButton).Click(); - Wait(2000); + WaitUntilClickable(searchDispositionFileNameInput); webDriver.FindElement(searchDispositionFileNameInput).SendKeys("Automated"); webDriver.FindElement(searchDispositionFileSearchButton).Click(); WaitUntilClickable(searchDispositionOrderFileNumberBttn); webDriver.FindElement(searchDispositionOrderFileNumberBttn).Click(); - Wait(); + WaitUntilClickable(searchDispositionOrderFileNumberBttn); webDriver.FindElement(searchDispositionOrderFileNumberBttn).Click(); } public void OrderByDispositionFileNumber() { - Wait(2000); - WaitUntilClickable(searchDispositionOrderFileNumberBttn); - webDriver.FindElement(searchDispositionOrderFileNumberBttn).Click(); + Wait(); + SafeClick(searchDispositionOrderFileNumberBttn); } public void OrderByDispositionFileReferenceNumber() { - Wait(2000); WaitUntilClickable(searchDispositionOrderReferenceBttn); webDriver.FindElement(searchDispositionOrderReferenceBttn).Click(); } public void OrderByDispositionFileName() { - Wait(2000); WaitUntilClickable(searchDispositionOrderFileNameBttn); webDriver.FindElement(searchDispositionOrderFileNameBttn).Click(); } public void OrderByDispositionFileType() { - Wait(2000); WaitUntilClickable(searchDispositionFileOrderTypeBttn); webDriver.FindElement(searchDispositionFileOrderTypeBttn).Click(); } public void OrderByDispositionStatus() { - Wait(2000); WaitUntilClickable(searchDispositionFileOrderDispositionStatusBttn); FocusAndClick(searchDispositionFileOrderDispositionStatusBttn); } public void OrderByDispositionFileStatus() { - Wait(2000); WaitUntilClickable(searchDispositionFileOrderStatusBttn); webDriver.FindElement(searchDispositionFileOrderStatusBttn).Click(); } public void SelectFirstOption() { - Wait(2000); + WaitUntilClickable(searchDispositionFile1stResultLink); webDriver.FindElement(searchDispositionFile1stResultLink).Click(); - Wait(); + WaitUntilVisible(searchDispositionFileHeaderCode); AssertTrueIsDisplayed(searchDispositionFileHeaderCode); } @@ -148,47 +141,45 @@ public void SelectLastOption() { var originalWindowHandle = webDriver.CurrentWindowHandle; - Wait(2000); WaitUntilClickable(searchDispositionOrderFileNumberBttn); - webDriver.FindElement(searchDispositionOrderFileNumberBttn).Click(); + SafeClick(searchDispositionOrderFileNumberBttn); - Wait(2000); - webDriver.FindElement(searchDispositionOrderFileNumberBttn).Click(); + WaitUntilClickable(searchDispositionOrderFileNumberBttn); + SafeClick(searchDispositionOrderFileNumberBttn); - Wait(); - webDriver.FindElement(searchDispositionFile1stResultLink).Click(); + WaitUntilClickable(searchDispositionFile1stResultLink); + SafeClick(searchDispositionFile1stResultLink); Wait(); var allWindowsHandle = webDriver.WindowHandles; var newWindowHandle = allWindowsHandle.Where(handle => handle != originalWindowHandle).First(); webDriver.SwitchTo().Window(newWindowHandle); - Wait(); + WaitUntilVisible(searchDispositionFileHeaderCode); AssertTrueIsDisplayed(searchDispositionFileHeaderCode); } public void FilterDispositionFiles(string pid = "", string pin = "", string address = "", string name = "", string teamMember = "", string status = "", string dispStatus = "", string type = "") { - Wait(); + WaitUntilClickable(searchDispositionFileResetButton); webDriver.FindElement(searchDispositionFileResetButton).Click(); - Wait(); if (pid != "") { - ChooseSpecificSelectOption(searchDispositionFileSearchBySelect, "PID"); + ChooseSelectOption(searchDispositionFileSearchBySelect, "PID"); webDriver.FindElement(searchDispositionFileSearchByPIDInput).SendKeys(pid); } if (pin != "") { - ChooseSpecificSelectOption(searchDispositionFileSearchBySelect, "PIN"); + ChooseSelectOption(searchDispositionFileSearchBySelect, "PIN"); webDriver.FindElement(searchDispositionFileSearchByPINInput).SendKeys(pin); } if (address != "") { - ChooseSpecificSelectOption(searchDispositionFileSearchBySelect, "Address"); + ChooseSelectOption(searchDispositionFileSearchBySelect, "Address"); webDriver.FindElement(searchDispositionFileSearchByAddressInput).SendKeys(address); } @@ -203,68 +194,68 @@ public void FilterDispositionFiles(string pid = "", string pin = "", string addr } if(status != "") - ChooseSpecificSelectOption(searchDispositionFileStatusSelect, status); + ChooseSelectOption(searchDispositionFileStatusSelect, status); if (dispStatus != "") - ChooseSpecificSelectOption(searchDispositionStatusSelect, dispStatus); + ChooseSelectOption(searchDispositionStatusSelect, dispStatus); if (type != "") - ChooseSpecificSelectOption(searchDispositionTypeSelect, type); + ChooseSelectOption(searchDispositionTypeSelect, type); webDriver.FindElement(searchDispositionFileSearchButton).Click(); } public Boolean SearchFoundResults() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchDispositionFile1stResult).Count > 0; } public string FirstDispositionFileNumber() { - WaitUntilTableSpinnerDisappear(); + Wait(); return webDriver.FindElement(searchDispositionFile1stResultLink).Text; } public string FirstDispositionReferenceNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchDispositionFile1stResultReference).Text; } public string FirstDispositionFileName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchDispositionFile1stResultName).Text; } public string FirstDispositionFileType() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchDispositionFile1stResultType).Text; } public string FirstDispositionStatus() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchDispositionFile1stResultStatus).Text; } public string FirstDispositionFileStatus() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchDispositionFile1stResultStatusFile).Text; } public int DispositionFileTableResultNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchDispositionFileTableContent).Count; } public void VerifyDispositionFileListView() { - Wait(4000); + WaitUntilVisible(searchAcquisitionFileTitle); //Disposition File Title AssertTrueIsDisplayed(searchAcquisitionFileTitle); diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchLease.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchLease.cs index a088862634..453c96c822 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchLease.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchLease.cs @@ -77,43 +77,26 @@ public SearchLease(IWebDriver webDriver) : base(webDriver) public void NavigateToSearchLicense() { - Wait(); + WaitUntilClickable(menuManagementButton); FocusAndClick(menuManagementButton); - Wait(); + WaitUntilClickable(searchLicenseButton); FocusAndClick(searchLicenseButton); } public void SearchLicenseByLFile(string lFile) { - Wait(2000); + WaitUntilClickable(searchLicenseLFileInput); webDriver.FindElement(searchLicenseLFileInput).SendKeys(lFile); - //webDriver.FindElement(searchLicenseActiveStatusDeleteBttn).Click(); - FocusAndClick(searchLicenseSearchButton); - } - - public void SearchLastLease() - { - Wait(2000); - webDriver.FindElement(searchLicenseResetButton).Click(); - - Wait(2000); - webDriver.FindElement(searchLicenseActiveStatusDeleteBttn).Click(); - webDriver.FindElement(searchLicenseSearchButton).Click(); - - WaitUntilClickable(searchLicenseOrderByLFileBttn); - webDriver.FindElement(searchLicenseOrderByLFileBttn).Click(); - - Wait(); - webDriver.FindElement(searchLicenseOrderByLFileBttn).Click(); + SafeClick(searchLicenseSearchButton); } public void SearchAllLeases() { - Wait(2000); + WaitUntilClickable(searchLicenseResetButton); webDriver.FindElement(searchLicenseResetButton).Click(); - Wait(2000); + WaitUntilClickable(searchLicenseActiveStatusDeleteBttn); webDriver.FindElement(searchLicenseActiveStatusDeleteBttn).Click(); webDriver.FindElement(searchLicenseSearchButton).Click(); } @@ -123,7 +106,7 @@ public void OrderByLastLease() WaitUntilClickable(searchLicenseOrderByLFileBttn); webDriver.FindElement(searchLicenseOrderByLFileBttn).Click(); - Wait(); + WaitUntilClickable(searchLicenseOrderByLFileBttn); webDriver.FindElement(searchLicenseOrderByLFileBttn).Click(); } @@ -169,25 +152,25 @@ public void SelectFirstOption() public string FirstLeaseFileNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchLicense1stResultLink).Text; } public string FirstLeaseExpiryDate() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchLicense1stResultExpiryDateContent).Text; } public string FirstLeaseProgramName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchLicense1stResultProgramContent).Text; } public string FirstLeaseStatus() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchLicense1stResultStatusContent).Text; } @@ -195,69 +178,56 @@ public void FilterLeasesFiles(string pid = "", string pin = "", string address = string status = "", string tenant = "", string expiryDateFrom = "", string expiryDateTo = "", string accountType = "", string region = "", string keyword = "") { Wait(); - webDriver.FindElement(searchLicenseResetButton).Click(); + SafeClick(searchLicenseResetButton); webDriver.FindElement(searchLicenseActiveStatusDeleteBttn).Click(); if (pid != "") { WaitUntilClickable(searchBySelect); - ChooseSpecificSelectOption(searchBySelect, "PID"); + ChooseSelectOption(searchBySelect, "PID"); webDriver.FindElement(searchLicensePIDInput).SendKeys(pid); } if (pin != "") { WaitUntilClickable(searchBySelect); - ChooseSpecificSelectOption(searchBySelect, "PIN"); + ChooseSelectOption(searchBySelect, "PIN"); webDriver.FindElement(searchLicensePINInput).SendKeys(pin); } if (address != "") { WaitUntilClickable(searchBySelect); - ChooseSpecificSelectOption(searchBySelect, "Address"); + ChooseSelectOption(searchBySelect, "Address"); webDriver.FindElement(searchLicenseAddressInput).SendKeys(address); } if (lfile != "") { WaitUntilClickable(searchBySelect); - ChooseSpecificSelectOption(searchBySelect, "L-File #"); + ChooseSelectOption(searchBySelect, "L-File #"); webDriver.FindElement(searchLicenseLFileInput).SendKeys(lfile); } if (historicalFile != "") { WaitUntilClickable(searchBySelect); - ChooseSpecificSelectOption(searchBySelect, "Historical File #"); + ChooseSelectOption(searchBySelect, "Historical File #"); webDriver.FindElement(searchLicenseHistoricalFile).SendKeys(historicalFile); } if (program != "") - { - WaitUntilClickable(searchLicenseProgramSelect); - - webDriver.FindElement(searchLicenseProgramSelect).Click(); - WaitUntilClickable(searchLicenseProgramOptions); - ChooseMultiSelectSpecificOption(searchLicenseProgramOptions, program); + { + ChooseMultiSelectOption(searchLicenseProgramSelect, searchLicenseProgramOptions, searchLicenseTitle, program); } - if (teamMember != "") { - WaitUntilClickable(searchLicenseTeamMemberInput); - - webDriver.FindElement(searchLicenseTeamMemberInput).Click(); - WaitUntilClickable(searchLicenseTeamMemberOptions); - ChooseMultiSelectSpecificOption(searchLicenseTeamMemberOptions, teamMember); + ChooseMultiSelectOption(searchLicenseTeamMemberInput, searchLicenseTeamMemberOptions, searchLicenseTitle, teamMember); } if (status != "") { - WaitUntilClickable(searchLicenseStatusInput); - - webDriver.FindElement(searchLicenseStatusInput).Click(); - WaitUntilClickable(searchLicenseStatusOptions); - ChooseMultiSelectSpecificOption(searchLicenseStatusOptions, status); + ChooseMultiSelectOption(searchLicenseStatusInput, searchLicenseStatusOptions, searchLicenseTitle, status); } if (tenant != "") @@ -281,13 +251,13 @@ public void FilterLeasesFiles(string pid = "", string pin = "", string address = if (accountType != "") { WaitUntilClickable(searchLicenseAccountTypeSelect); - ChooseMultiSelectSpecificOption(searchLicenseAccountTypeSelect, accountType); + ChooseSelectOption(searchLicenseAccountTypeSelect, accountType); } if (region != "") { WaitUntilClickable(searchLicenseRegionsSelect); - ChooseSpecificSelectOption(searchLicenseRegionsSelect, region); + ChooseSelectOption(searchLicenseRegionsSelect, region); } if (keyword != "") @@ -302,13 +272,13 @@ public void FilterLeasesFiles(string pid = "", string pin = "", string address = public Boolean SearchFoundResults() { - Wait(2000); + Wait(); return webDriver.FindElements(searchLicenseResultsTable1stResult).Count > 0; } public int LeasesTableResultNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchLicenseResultsTable).Count; } @@ -354,8 +324,7 @@ public void VerifySearchLeasesView() public void VerifyLeaseTableContent(Lease lease) { - Wait(); - + WaitUntilVisible(searchLicense1stResultLink); AssertTrueIsDisplayed(searchLicense1stResultLink); if(lease.LeaseExpiryDate != "") diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchManagement.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchManagement.cs index 1b15e5e5b3..589485adc5 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchManagement.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchManagement.cs @@ -65,10 +65,10 @@ public SearchManagement(IWebDriver driver) : base(driver) public void NavigateToSearchManagement() { - Wait(); + WaitUntilClickable(managementMainMenu); FocusAndClick(managementMainMenu); - Wait(); + WaitUntilClickable(managementMainMenuListViewLink); FocusAndClick(managementMainMenuListViewLink); } @@ -86,8 +86,7 @@ public void OrderByMgmtHistoricalFileNbr() public void OrderByMgmtPurpose() { - WaitUntilClickable(managementListViewOrderByPurpose); - webDriver.FindElement(managementListViewOrderByPurpose).Click(); + SafeClick(managementListViewOrderByPurpose); } public void OrderByMgmtStatus() @@ -114,52 +113,52 @@ public void SelectFirstOption() public string FirstMgmtFileName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementListViewFileName1stRecord).Text; } public string FirstMgmtHistoricalFile() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementListViewHistFile1stRecord).Text; } public string FirstMgmtPurpose() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementListViewPurpose1stRecord).Text; } public string FirstMgmtStatus() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementListViewStatus1stRecord).Text; } public void FilterManagementFiles(string pid = "", string pin = "", string address = "", string mgmtfile = "", string teamMember = "", string status = "", string purpose = "", string project = "", string region = "") { - Wait(); + WaitUntilClickable(managementListResetButton); webDriver.FindElement(managementListResetButton).Click(); if (pid != "") { WaitUntilClickable(managementListSearchBySelect); - ChooseSpecificSelectOption(managementListSearchBySelect, "PID"); + ChooseSelectOption(managementListSearchBySelect, "PID"); webDriver.FindElement(managementListSearchByPIDInput).SendKeys(pid); } if (pin != "") { WaitUntilClickable(managementListSearchBySelect); - ChooseSpecificSelectOption(managementListSearchBySelect, "PIN"); + ChooseSelectOption(managementListSearchBySelect, "PIN"); webDriver.FindElement(managementListSearchByPINInput).SendKeys(pin); } if (address != "") { WaitUntilClickable(managementListSearchBySelect); - ChooseSpecificSelectOption(managementListSearchBySelect, "Address"); + ChooseSelectOption(managementListSearchBySelect, "Address"); webDriver.FindElement(managementListSearchByAddressInput).SendKeys(address); } @@ -181,13 +180,13 @@ public void FilterManagementFiles(string pid = "", string pin = "", string addre if (status != "") { WaitUntilClickable(managementListSearchByStatusSelect); - ChooseSpecificSelectOption(managementListSearchByStatusSelect, status); + ChooseSelectOption(managementListSearchByStatusSelect, status); } if (purpose != "") { WaitUntilClickable(managementListSearchByPurposeSelect); - ChooseSpecificSelectOption(managementListSearchByPurposeSelect, purpose); + ChooseSelectOption(managementListSearchByPurposeSelect, purpose); } if (project != "") { @@ -197,7 +196,7 @@ public void FilterManagementFiles(string pid = "", string pin = "", string addre if (region != "") { WaitUntilClickable(managementListSearchByRegionSelect); - ChooseSpecificSelectOption(managementListSearchByRegionSelect, region); + ChooseSelectOption(managementListSearchByRegionSelect, region); } @@ -207,13 +206,13 @@ public void FilterManagementFiles(string pid = "", string pin = "", string addre public Boolean SearchFoundResults() { - Wait(2000); + WaitUntilVisible(managementListViewViewMgmtFile1stRecord); return webDriver.FindElements(managementListViewViewMgmtFile1stRecord).Count > 0; } public int MgmtTableResultNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(managementFilesResultsTable).Count; } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchManagementActivities.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchManagementActivities.cs index 1010dbc107..0a6b5ed837 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchManagementActivities.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchManagementActivities.cs @@ -59,10 +59,10 @@ public SearchManagementActivities(IWebDriver webDriver) : base(webDriver) public void NavigateToSearchManagementActivities() { - Wait(); + WaitUntilClickable(managementMainMenu); FocusAndClick(managementMainMenu); - Wait(); + WaitUntilClickable(managementMainMenuActsListViewLink); FocusAndClick(managementMainMenuActsListViewLink); } @@ -98,58 +98,58 @@ public void OrderByMgmtActStatus() public string FirstMgmtActDescription() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementActListViewDescription1stRecord).Text; } public string FirstMgmtActFileName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementActListViewFileName1stRecord).Text; } public string FirstMgmtActHistoricalFile() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementActListViewHistFile1stRecord).Text; } public string FirstMgmtActType() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementActListViewType1stRecord).Text; } public string FirstMgmtActStatus() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(managementActListViewStatus1stRecord).Text; } public void FilterManagementActivities(string pid = "", string pin = "", string address = "", string mgmtfile = "", string activityStatus = "", string activityType = "", string project = "", string mgmtFileStatus = "", string purpose = "") { - Wait(); + WaitUntilClickable(managementActListResetButton); webDriver.FindElement(managementActListResetButton).Click(); if (pid != "") { WaitUntilClickable(managementActListSearchBySelect); - ChooseSpecificSelectOption(managementActListSearchBySelect, "PID"); + ChooseSelectOption(managementActListSearchBySelect, "PID"); webDriver.FindElement(managementActListSearchByPIDInput).SendKeys(pid); } if (pin != "") { WaitUntilClickable(managementActListSearchBySelect); - ChooseSpecificSelectOption(managementActListSearchBySelect, "PIN"); + ChooseSelectOption(managementActListSearchBySelect, "PIN"); webDriver.FindElement(managementActListSearchByPINInput).SendKeys(pin); } if (address != "") { WaitUntilClickable(managementActListSearchBySelect); - ChooseSpecificSelectOption(managementActListSearchBySelect, "Address"); + ChooseSelectOption(managementActListSearchBySelect, "Address"); webDriver.FindElement(managementActListSearchByAddressInput).SendKeys(address); } @@ -162,13 +162,13 @@ public void FilterManagementActivities(string pid = "", string pin = "", string if (activityStatus != "") { WaitUntilClickable(managementActListSearchByActivityStatusSelect); - ChooseSpecificSelectOption(managementActListSearchByActivityStatusSelect, activityStatus); + ChooseSelectOption(managementActListSearchByActivityStatusSelect, activityStatus); } if (activityType != "") { WaitUntilClickable(managementActListSearchByActivityType); - ChooseSpecificSelectOption(managementActListSearchByActivityType, activityType); + ChooseSelectOption(managementActListSearchByActivityType, activityType); } if (project != "") @@ -180,13 +180,13 @@ public void FilterManagementActivities(string pid = "", string pin = "", string if (mgmtFileStatus != "") { WaitUntilClickable(managementActListSearchByFileStatusSelect); - ChooseSpecificSelectOption(managementActListSearchByFileStatusSelect, mgmtFileStatus); + ChooseSelectOption(managementActListSearchByFileStatusSelect, mgmtFileStatus); } if (purpose != "") { WaitUntilClickable(managementActListSearchByPurposeSelect); - ChooseSpecificSelectOption(managementActListSearchByPurposeSelect, purpose); + ChooseSelectOption(managementActListSearchByPurposeSelect, purpose); } WaitUntilClickable(managementActListSearchButton); @@ -195,13 +195,13 @@ public void FilterManagementActivities(string pid = "", string pin = "", string public Boolean SearchFoundResults() { - Wait(2000); + WaitUntilVisible(managementActListViewDescription1stRecord); return webDriver.FindElements(managementActListViewDescription1stRecord).Count > 0; } public int MgmtActivitiesTableResultNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(managementActivitiesResultsTable).Count; } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchProjects.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchProjects.cs index 11333620b2..781b7a7b5c 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchProjects.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchProjects.cs @@ -55,13 +55,8 @@ public SearchProjects(IWebDriver webDriver) : base(webDriver) //Navigates to Search a Project public void NavigateToSearchProject() { - Wait(3000); - - WaitUntilClickable(projectMenuBttn); - FocusAndClick(projectMenuBttn); - - WaitUntilClickable(manageProjectButton); - FocusAndClick(manageProjectButton); + SafeClick(projectMenuBttn); + SafeClick(manageProjectButton); } public void SearchProjectByName(string projectName) @@ -71,7 +66,7 @@ public void SearchProjectByName(string projectName) WaitUntilVisible(searchProjectNameInput); webDriver.FindElement(searchProjectNameInput).SendKeys(projectName); - ChooseSpecificSelectOption(searchProjectStatusSelect, "All Status"); + ChooseSelectOption(searchProjectStatusSelect, "All Status"); webDriver.FindElement(searchProjectButton).Click(); } @@ -83,7 +78,7 @@ public void SearchProjectByNumber(string projectNumber) WaitUntilVisible(searchProjectNumberInput); webDriver.FindElement(searchProjectNumberInput).SendKeys(projectNumber); - ChooseSpecificSelectOption(searchProjectStatusSelect, "All Status"); + ChooseSelectOption(searchProjectStatusSelect, "All Status"); webDriver.FindElement(searchProjectButton).Click(); } @@ -95,7 +90,7 @@ public void SearchProjectByRegion(string projectRegion) WaitUntilVisible(searchProjectRegionSelect); webDriver.FindElement(searchProjectRegionSelect).SendKeys(projectRegion); - ChooseSpecificSelectOption(searchProjectStatusSelect, "All Status"); + ChooseSelectOption(searchProjectStatusSelect, "All Status"); webDriver.FindElement(searchProjectButton).Click(); } @@ -106,7 +101,7 @@ public void SearchProjectByStatus(string projectStatus) webDriver.FindElement(searchProjectResetButton).Click(); WaitUntilVisible(searchProjectStatusSelect); - ChooseSpecificSelectOption(searchProjectStatusSelect, projectStatus); + ChooseSelectOption(searchProjectStatusSelect, projectStatus); webDriver.FindElement(searchProjectButton).Click(); } @@ -115,7 +110,7 @@ public void SelectFirstResult() { var originalWindowHandle = webDriver.CurrentWindowHandle; - Wait(); + WaitUntilClickable(searchProject1stResultNbrLink); webDriver.FindElement(searchProject1stResultNbrLink).Click(); Wait(); @@ -194,37 +189,37 @@ public void VerifyViewSearchResult(Project project) public int ProjectsTableResultNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchProjectTotalCount).Count(); } public Boolean SearchFoundResults() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchProject1stResult).Count > 0; } public string FirstProjectCode() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchProject1stResultNbrLink).Text; } public string FirstProjectName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchProject1stResultNameLink).Text; } public string FirstProjectLastUpdatedBy() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchProject1stResultLastUpdatedByContent).Text; } public string FirstProjectLastUpdatedDate() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchProject1stResultLastUpdatedDateContent).Text; } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchProperties.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchProperties.cs index 7158fa26ac..921c1a4a4f 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchProperties.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchProperties.cs @@ -53,10 +53,8 @@ public class SearchProperties : PageObjectBase private readonly By search1stPMBCResultCreateLeaseOption = By.CssSelector("div[aria-labelledby='dropdown-ellipsis'] a[aria-label='Create Lease File']"); private readonly By search1stPMBCResultCreateDispositionOption = By.CssSelector("div[aria-labelledby='dropdown-ellipsis'] a[aria-label='Create Disposition File']"); private readonly By search1stPMBCResultAddToFileOption = By.CssSelector("div[aria-labelledby='dropdown-ellipsis'] a[aria-label='Add to Open File']"); - private readonly By quickInfoCloseModalBttn = By.CssSelector("div[data-testid='quick-info-header'] *[data-testid='close-icon']"); private readonly By search1stPIMSResult = By.XPath("//div[text()='Results (PIMS)']/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div[@data-testid='search-property-0']/div[1]/div"); - private readonly By search1stPIMSResultEllipsisBttn = By.XPath("//div[text()='Results (PIMS)']/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div[@data-testid='search-property-0']/div[2]/div/div/button"); private readonly By searchPropertyMoreOptionsBttn = By.CssSelector("button[data-testid='quick-info-more-options']"); private readonly By searchPropertyAddToFileOption = By.CssSelector("div[aria-labelledby='dropdown-ellipsis'] a[aria-label='Add to Open File']"); @@ -113,7 +111,7 @@ public SearchProperties(IWebDriver webDriver) : base(webDriver) public void NavigateToHomePage() { - Wait(); + WaitUntilClickable(homePageBttn); webDriver.FindElement(homePageBttn).Click(); } @@ -124,53 +122,52 @@ public void SearchProperty(string PID = "", string PIN = "", string address = "" if (PID != "") { - ChooseSpecificSelectOption(searchPropertyTypeSelect, "PID"); + ChooseSelectOption(searchPropertyTypeSelect, "PID"); ClearInput(searchPropertyByPIDInput); webDriver.FindElement(searchPropertyByPIDInput).SendKeys(PID); } if (PIN != "") { - ChooseSpecificSelectOption(searchPropertyTypeSelect, "PIN"); + ChooseSelectOption(searchPropertyTypeSelect, "PIN"); ClearInput(searchPropertyByPINInput); webDriver.FindElement(searchPropertyByPINInput).SendKeys(PIN); } if (address != "") { - ChooseSpecificSelectOption(searchPropertyTypeSelect, "Address"); + ChooseSelectOption(searchPropertyTypeSelect, "Address"); webDriver.FindElement(searchPropertyByAddressInput).SendKeys(address); - WaitUntilVisible(searchPropertyAddressSuggestionsGroup); - FocusAndClick(searchPropertyAddressSuggestions1stOption); + Wait(); + SafeClick(searchPropertyAddressSuggestions1stOption); } if (plan != "") { - ChooseSpecificSelectOption(searchPropertyTypeSelect, "Plan #"); + ChooseSelectOption(searchPropertyTypeSelect, "Plan #"); webDriver.FindElement(searchPropertyByPlanInput).SendKeys(plan); } if (historicFile != "") { - ChooseSpecificSelectOption(searchPropertyTypeSelect, "Historical File #"); + ChooseSelectOption(searchPropertyTypeSelect, "Historical File #"); webDriver.FindElement(searchPropertyByHistoricalFileInput).SendKeys(historicFile); } if (POIName != "") { - ChooseSpecificSelectOption(searchPropertyTypeSelect, "POI Name"); + ChooseSelectOption(searchPropertyTypeSelect, "POI Name"); webDriver.FindElement(searchPropertyByPOINameInput).SendKeys(POIName); - Wait(); WaitUntilVisible(searchPropertyPOINameFirstOption); webDriver.FindElement(searchPropertyPOINameFirstOption).Click(); } if (coordinates != null) { - ChooseSpecificSelectOption(searchPropertyTypeSelect, "Lat/Long"); + ChooseSelectOption(searchPropertyTypeSelect, "Lat/Long"); webDriver.FindElement(searchPropertyByLatDegreesInput).SendKeys(coordinates.LatitudeDegree); webDriver.FindElement(searchPropertyByLatMinsInput).SendKeys(coordinates.LatitudeMinutes); @@ -185,8 +182,8 @@ public void SearchProperty(string PID = "", string PIN = "", string address = "" if (surveyParcel != null) { - ChooseSpecificSelectOption(searchPropertyTypeSelect, "Survey Parcel"); - ChooseSpecificSelectOption(searchSurveyDistricSelect, surveyParcel.District); + ChooseSelectOption(searchPropertyTypeSelect, "Survey Parcel"); + ChooseSelectOption(searchSurveyDistricSelect, surveyParcel.District); webDriver.FindElement(searchSurveySectionInput).SendKeys(surveyParcel.Section); webDriver.FindElement(searchSurveyTownshipInput).SendKeys(surveyParcel.Township); webDriver.FindElement(searchSurveyRangeInput).SendKeys(surveyParcel.Range); @@ -194,18 +191,17 @@ public void SearchProperty(string PID = "", string PIN = "", string address = "" if (project != "") { - ChooseSpecificSelectOption(searchPropertyTypeSelect, "Project"); + ChooseSelectOption(searchPropertyTypeSelect, "Project"); webDriver.FindElement(searchPropertyProjectInput).SendKeys(project); webDriver.FindElement(searchPropertyProjectInput).SendKeys(Keys.Space); webDriver.FindElement(searchPropertyProjectInput).SendKeys(Keys.Backspace); - Wait(); + WaitUntilClickable(searchProject1stOption); FocusAndClick(searchProject1stOption); } - Wait(); - webDriver.FindElement(searchPropertySearchBttn).Click(); + SafeClick(searchPropertySearchBttn); WaitUntilSpinnerDisappear(); } @@ -214,29 +210,24 @@ public void SearchPropertyByAddressList(string address) Wait(); WaitUntilClickable(searchPropertyTypeSelect); - ChooseSpecificSelectOption(searchPropertyTypeSelect, "Address"); + ChooseSelectOption(searchPropertyTypeSelect, "Address"); webDriver.FindElement(searchPropertyByAddressInput).SendKeys(address); webDriver.FindElement(searchPropertySearchBttn).Click(); - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); } public void SelectOwnershipSearch(string ownership) { - Wait(); while (webDriver.FindElements(searchPropertyOwnershipDeleteBttns).Count > 0) webDriver.FindElements(searchPropertyOwnershipDeleteBttns)[0].Click(); - Wait(); - webDriver.FindElement(searchPropertyListViewOwnershipInput).Click(); - - WaitUntilVisible(searchPropertyListOwnershipOptions); - ChooseMultiSelectSpecificOption(searchPropertyListOwnershipOptions, ownership); + ChooseMultiSelectOption(searchPropertyListViewOwnershipInput, searchPropertyListOwnershipOptions, searchPropertyListHeaderAddress, ownership); } public void ResetPropertySearch() { - Wait(); + WaitUntilClickable(searchPropertyResetBttn); webDriver.FindElement(searchPropertyResetBttn).Click(); WaitUntilSpinnerDisappear(); @@ -244,22 +235,21 @@ public void ResetPropertySearch() public void SelectFound1stPropFromMap() { - Wait(); + WaitUntilClickable(searchPropertyFoundLocationPin); webDriver.FindElement(searchPropertyFoundLocationPin).Click(); } public void SelectFound1stPropAddToFile() { - Wait(); + WaitUntilClickable(searchPropertyFoundLocationPin); FocusAndClick(searchPropertyFoundLocationPin); - Wait(); - webDriver.FindElement(searchPropertyMoreOptionsBttn).Click(); + WaitUntilClickable(searchPropertyMoreOptionsBttn); + SafeClick(searchPropertyMoreOptionsBttn); WaitUntilVisible(searchPropertyAddToFileOption); webDriver.FindElement(searchPropertyAddToFileOption).Click(); - Wait(); if (webDriver.FindElements(searchPropertyConfirmationModal).Count > 0 && sharedModals.ModalContent().Contains("You have selected a property not previously in the inventory")) { Assert.Equal("Not inventory property", sharedModals.ModalHeader()); @@ -270,7 +260,7 @@ public void SelectFound1stPropAddToFile() public void SelectFirstFoundPropertyList() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); webDriver.FindElement(searchPropertyListContent1stViewTabBttn).Click(); } @@ -279,8 +269,8 @@ public void SelectFirstPMBCResult(string action = "") Wait(); webDriver.FindElement(search1stPMBCResult).Click(); - Wait(); - FocusAndClick(searchInfoEllipsisBttn); + WaitUntilClickable(searchInfoEllipsisBttn); + SafeClick(searchInfoEllipsisBttn); switch (action) { @@ -311,16 +301,15 @@ public void SelectFirstPMBCResult(string action = "") Assert.Contains("You have selected a property not previously in the inventory. Do you want to add this property to the lease?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); } - - //Wait(10000); - //webDriver.FindElement(quickInfoCloseModalBttn).Click(); } public void SelectSecondPMBCResult(string action = "") { Wait(); - Actions hoverAction = new(webDriver); - hoverAction.MoveToElement(webDriver.FindElement(search2ndPMBCResult)).MoveToElement(webDriver.FindElement(search2ndPMBCResultEllipsisBttn)).Click().Build().Perform(); + webDriver.FindElement(search2ndPMBCResult).Click(); + + WaitUntilClickable(searchInfoEllipsisBttn); + SafeClick(searchInfoEllipsisBttn); switch (action) { @@ -345,24 +334,14 @@ public void SelectSecondPMBCResult(string action = "") } } - public void SelectFirstPIMSResultToFile() - { - Wait(); - Actions action = new(webDriver); - action.MoveToElement(webDriver.FindElement(search1stPIMSResult)).MoveToElement(webDriver.FindElement(search1stPIMSResultEllipsisBttn)).Click().Build().Perform(); - webDriver.FindElement(search1stPMBCResultAddToFileOption).Click(); - } - public void SelectFirstPIMSResult() { - Wait(); - webDriver.FindElement(search1stPIMSResult).Click(); + SafeClick(search1stPIMSResult); } public void NavigatePropertyListView() { - Wait(10000); - webDriver.FindElement(searchPropertyListViewBttn).Click(); + SafeClick(searchPropertyListViewBttn); } public void ChooseFirstPropertyFromList() @@ -391,25 +370,25 @@ public void OrderByPropertyOwnership() public string FirstPropertyPID() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchPropertyListContent1stPID).Text; } public string FirstPropertyLocation() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchPropertyListContent1stLocation).Text; } public string FirstPropertyLotSize() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchPropertyListContent1stLotSize).Text; } public string FirstPropertyOwnership() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchPropertyListContent1stOwnership).Text; } @@ -454,33 +433,34 @@ public void ValidatePropertyListView() public int PropertiesPinMapFoundCount() { - Wait(); + WaitUntilVisible(searchPropertyFoundLocationPin); return webDriver.FindElements(searchPropertyFoundLocationPin).Count; } public int PropertiesListFoundCount() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchPropertyListContent).Count(); } public void NoPropertiesFound() { - Assert.True(sharedModals.ToastifyText() == "No search results found"); + Assert.True(sharedModals.ToastifyMainText() == "No search results found"); } public void DuplicatePropertyInserted() { - Wait(); - webDriver.FindElement(search1stPMBCResult).Click(); + WaitUntilClickable(search1stPMBCResult); + SafeClick(search1stPMBCResult); - Wait(); - FocusAndClick(searchInfoEllipsisBttn); + WaitUntilClickable(searchInfoEllipsisBttn); + SafeClick(searchInfoEllipsisBttn); - Wait(); - webDriver.FindElement(search1stPMBCResultAddToFileOption).Click(); + WaitUntilClickable(search1stPMBCResultAddToFileOption); + SafeClick(search1stPMBCResultAddToFileOption); - Assert.Equal("Skipped 1 duplicate property(s).", sharedModals.ToastifyText()); + Wait(); + Assert.Equal("Skipped 1 duplicate property(s).", sharedModals.ToastifyMainText()); } } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SearchResearchFiles.cs b/testing/PIMS.Tests.Automation/PageObjects/SearchResearchFiles.cs index 6c42193881..04e29d61eb 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SearchResearchFiles.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SearchResearchFiles.cs @@ -71,19 +71,19 @@ public SearchResearchFiles(IWebDriver webDriver) : base(webDriver) //Navigates to Search a Research File public void NavigateToSearchResearchFile() { - Wait(4000); + WaitUntilClickable(menuResearchButton); FocusAndClick(menuResearchButton); - Wait(); + WaitUntilClickable(searchResearchButton); FocusAndClick(searchResearchButton); } public void SearchResearchFileByRFile(string RFile) { - Wait(2000); - ChooseSpecificSelectOption(searchResearchBySelect, "Research file #"); + WaitUntilClickable(searchResearchBySelect); + ChooseSelectOption(searchResearchBySelect, "Research file #"); webDriver.FindElement(searchResearchFileNbrInput).SendKeys(RFile); - ChooseSpecificSelectOption(searchResearchStatusSelect, "All Status"); + ChooseSelectOption(searchResearchStatusSelect, "All Status"); WaitUntilClickable(searchResearchFileButton); FocusAndClick(searchResearchFileButton); @@ -91,8 +91,8 @@ public void SearchResearchFileByRFile(string RFile) public void SearchAllResearchFiles() { - Wait(2000); - ChooseSpecificSelectOption(searchResearchStatusSelect, "All Status"); + WaitUntilClickable(searchResearchStatusSelect); + ChooseSelectOption(searchResearchStatusSelect, "All Status"); WaitUntilClickable(searchResearchFileButton); webDriver.FindElement(searchResearchFileButton).Click(); @@ -142,43 +142,43 @@ public void OrderByResearchStatus() public string FirstResearchFileNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchResearchFile1stResultLink).Text; } public string FirstResearchFileName() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchResearchFile1stResultFileName).Text; } public string FirstResearchCreatedBy() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchResearchFile1stResultCreator).Text; } public string FirstResearchCreatedDate() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchResearchFile1stResultCreateDate).Text; } public string FirstResearchUpdatedBy() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchResearchFile1stResultUpdatedBy).Text; } public string FirstResearchUpdatedDate() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchResearchFile1stResultUpdateDate).Text; } public string FirstResearchFileStatus() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElement(searchResearchFile1stResultStatus).Text; } @@ -224,7 +224,7 @@ public void VerifyResearchFileListView() public void VerifyResearchFileTableContent(ResearchFile researchFile, string user) { - Wait(2000); + Wait(); AssertTrueIsDisplayed(searchResearchFile1stResultLink); AssertTrueContentEquals(searchResearchFile1stResultFileName, researchFile.ResearchFileName); @@ -243,29 +243,29 @@ public void FilterResearchFiles(string region = "", string status = "", string webDriver.FindElement(searchResearchFileResetButton).Click(); if(region != "") - ChooseSpecificSelectOption(searchResearchRegionInput, region); + ChooseSelectOption(searchResearchRegionInput, region); if(status != "") - ChooseSpecificSelectOption(searchResearchStatusSelect, status); + ChooseSelectOption(searchResearchStatusSelect, status); if (pid != "") { - ChooseSpecificSelectOption(searchResearchBySelect, "PID"); + ChooseSelectOption(searchResearchBySelect, "PID"); webDriver.FindElement(searchResearchByPID).SendKeys(pid); } else if (pin != "") { - ChooseSpecificSelectOption(searchResearchBySelect, "PIN"); + ChooseSelectOption(searchResearchBySelect, "PIN"); webDriver.FindElement(searchResearchByPIN).SendKeys(pin); } else if (name != "") { - ChooseSpecificSelectOption(searchResearchBySelect, "Research file name"); + ChooseSelectOption(searchResearchBySelect, "Research file name"); webDriver.FindElement(searchResearchNameInput).SendKeys(name); } else if (fileNumber != "") { - ChooseSpecificSelectOption(searchResearchBySelect, "Research file #"); + ChooseSelectOption(searchResearchBySelect, "Research file #"); webDriver.FindElement(searchResearchFileNbrInput).SendKeys(fileNumber); } if (roadName != "") @@ -274,23 +274,23 @@ public void FilterResearchFiles(string region = "", string status = "", string } if (createdDate != "") { - ChooseSpecificSelectOption(searchResearchCreateUpdateDateSelect, "Created date"); + ChooseSelectOption(searchResearchCreateUpdateDateSelect, "Created date"); webDriver.FindElement(searchResearchCreateDateInput).SendKeys(createdDate); } else if (updatedDate != "") { - ChooseSpecificSelectOption(searchResearchCreateUpdateDateSelect, "Updated date"); + ChooseSelectOption(searchResearchCreateUpdateDateSelect, "Updated date"); webDriver.FindElement(searchResearchUpdateDateInput).SendKeys(updatedDate); } if (createdBy != "") { - ChooseSpecificSelectOption(searchResearchCreateUpdateBySelect, "Created by"); + ChooseSelectOption(searchResearchCreateUpdateBySelect, "Created by"); webDriver.FindElement(searchResearchFileUserCreatedIdirInput).SendKeys(createdBy); } else if (updatedBy != "") { - ChooseSpecificSelectOption(searchResearchCreateUpdateBySelect, "Updated by"); + ChooseSelectOption(searchResearchCreateUpdateBySelect, "Updated by"); webDriver.FindElement(searchResearchUserUpdatedIdirInput).SendKeys(createdBy); } @@ -299,13 +299,13 @@ public void FilterResearchFiles(string region = "", string status = "", string public Boolean SearchFoundResults() { - Wait(2000); + Wait(); return webDriver.FindElements(searchResearchFile1stResult).Count > 0; } public int ResearchFileTableResultNumber() { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); return webDriver.FindElements(searchResearchFileTableContent).Count; } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SharedActivities.cs b/testing/PIMS.Tests.Automation/PageObjects/SharedActivities.cs index 5f6477c4a4..5cda5d2a94 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SharedActivities.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SharedActivities.cs @@ -120,10 +120,9 @@ public void SaveManagementActivity(string type) public void InsertNewPropertyActivity(PropertyActivity activity) { - Wait(); //Choosing Activity type, Sub-type, status - ChooseSpecificSelectOption(managementActTypeInput, activity.PropertyActivityType); + ChooseSelectOption(managementActTypeInput, activity.PropertyActivityType); Wait(); if (webDriver.FindElements(managementActSubTypeDeleteBttns).Count > 0) @@ -136,14 +135,11 @@ public void InsertNewPropertyActivity(PropertyActivity activity) { foreach (string subtype in activity.PropertyActivitySubTypeList) { - webDriver.FindElement(managementActSubTypeSelect).Click(); - - WaitUntilVisible(managementActSubTypeSelectOptions); - ChooseMultiSelectSpecificOption(managementActSubTypeSelectOptions, subtype); + ChooseMultiSelectOption(managementActSubTypeSelect, managementActSubTypeSelectOptions, managementActSubTypeLabel, subtype); } } - ChooseSpecificSelectOption(managementActStatusInput, activity.PropertyActivityStatus); + ChooseSelectOption(managementActStatusInput, activity.PropertyActivityStatus); //Inserting Requested Added Date ClearInput(managementActRequestAddedCommenceDateInput); @@ -226,7 +222,6 @@ public void InsertNewPropertyActivity(PropertyActivity activity) { webDriver.FindElements(managementActInvoicesDeleteBttns)[0].Click(); - Wait(); Assert.Equal("Remove Invoice", sharedModals.ModalHeader()); Assert.Contains("You have selected to delete an invoice. Are you sure you want to proceed?", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); @@ -240,7 +235,6 @@ public void CancelPropertyManagement() { ButtonElement("Cancel"); - Wait(); Assert.Equal("Confirm Changes", sharedModals.ModalHeader()); Assert.Contains("If you choose to cancel now, your changes will not be saved.", sharedModals.ModalContent()); Assert.Contains("Do you want to proceed?", sharedModals.ModalContent()); @@ -265,7 +259,7 @@ public void CloseActivityTray(string type) public void VerifyInsertedActivity(PropertyActivity activity, string activityType) { - Wait(2000); + Wait(); //Activity Details section AssertTrueIsDisplayed(managementActivityDetailsTitle); @@ -391,10 +385,10 @@ public void VerifyCreateActivityInitForm(string activityType = "", int propsCoun private void AddInvoice(ManagementPropertyActivityInvoice invoice, int index) { - Wait(); + WaitUntilClickable(managementAddInvoiceBttn); webDriver.FindElement(managementAddInvoiceBttn).Click(); - Wait(); + WaitUntilClickable(By.Id("input-invoices."+ index +".invoiceNum")); webDriver.FindElement(By.Id("input-invoices."+ index +".invoiceNum")).SendKeys(invoice.PropertyActivityInvoiceNumber); webDriver.FindElement(By.Id("datepicker-invoices."+ index +".invoiceDateTime")).SendKeys(invoice.PropertyActivityInvoiceDate); @@ -405,7 +399,7 @@ private void AddInvoice(ManagementPropertyActivityInvoice invoice, int index) CleanUpCurrencyInput(By.Id("input-invoices."+ index +".pretaxAmount")); SendKeysToCurrencyInput(By.Id("input-invoices."+ index +".pretaxAmount"), invoice.PropertyActivityInvoicePretaxAmount); - ChooseSpecificSelectOption(By.Id("input-invoices."+ index +".isPstRequired"), invoice.PropertyActivityInvoicePSTApplicable); + ChooseSelectOption(By.Id("input-invoices."+ index +".isPstRequired"), invoice.PropertyActivityInvoicePSTApplicable); AssertTrueElementValueEquals(By.Id("input-invoices."+ index +".gstAmount"), TransformCurrencyFormat(invoice.PropertyActivityInvoiceGSTAmount)); diff --git a/testing/PIMS.Tests.Automation/PageObjects/SharedAgreements.cs b/testing/PIMS.Tests.Automation/PageObjects/SharedAgreements.cs index a3424d812e..bc9f0f51ff 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SharedAgreements.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SharedAgreements.cs @@ -61,22 +61,18 @@ public void NavigateAgreementsTab() public void EditAgreementButton(int index) { - Wait(); var elementNumber = index + 1; webDriver.FindElement(By.CssSelector("button[data-testid='agreements["+ elementNumber +"].edit-btn']")).Click(); } public void CreateNewAgreementBttn() { - Wait(); - WaitUntilClickable(agreementsCreateNewAgreementBttn); webDriver.FindElement(agreementsCreateNewAgreementBttn).Click(); } public void SaveAcquisitionFileAgreement() { - Wait(); ButtonElement("Save"); AssertTrueIsDisplayed(agreementsCreateNewAgreementBttn); @@ -84,19 +80,21 @@ public void SaveAcquisitionFileAgreement() public void CancelAcquisitionFileAgreement() { - Wait(); ButtonElement("Cancel"); sharedModals.CancelActionModal(); - AssertTrueIsDisplayed(agreementsCreateNewAgreementBttn); } public void CreateUpdateAgreement(Agreement agreement) { - Wait(); + WaitUntilClickable(agreementsStatusInput); + + ChooseSelectOption(agreementsStatusInput, agreement.AgreementStatus); - ChooseSpecificSelectOption(agreementsStatusInput, agreement.AgreementStatus); + Wait(); + if(webDriver.FindElements(acquisitionFileConfirmationModal).Count > 0) + sharedModals.ModalClickOKBttn(); if (agreement.AgreementCancellationReason != "") { @@ -111,7 +109,7 @@ public void CreateUpdateAgreement(Agreement agreement) } if(agreement.AgreementType != "") - ChooseSpecificSelectOption(agreementsTypeSelect, agreement.AgreementType); + ChooseSelectOption(agreementsTypeSelect, agreement.AgreementType); if (agreement.AgreementDate != "") { @@ -162,8 +160,8 @@ public void CreateUpdateAgreement(Agreement agreement) public void DeleteLastAgreement() { - Wait(); - var lastAgreement = webDriver.FindElements(agreementsTotalCount).Count(); + WaitUntilVisible(agreementsTotalCount); + var lastAgreement = webDriver.FindElements(agreementsTotalCount).Count() -1; webDriver.FindElement(By.CssSelector("button[data-testid='agreements["+ lastAgreement +"].delete-btn']")).Click(); @@ -229,46 +227,45 @@ public void VerifyCreateAgreementForm() public void VerifyViewAgreementForm(Agreement agreement, int index) { var agreementNbr = index + 1; + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/preceding-sibling::div"), "Agreement " + agreementNbr); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/preceding-sibling::div"), "Agreement " + agreementNbr); - - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement status')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement status')]/parent::div/following-sibling::div"), agreement.AgreementStatus); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement status')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement status')]/parent::div/following-sibling::div"), agreement.AgreementStatus); if (agreement.AgreementCancellationReason != "") { - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Cancellation reason')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Cancellation reason')]/parent::div/following-sibling::div"), agreement.AgreementCancellationReason); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Cancellation reason')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Cancellation reason')]/parent::div/following-sibling::div"), agreement.AgreementCancellationReason); } - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Legal survey plan')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Legal survey plan')]/parent::div/following-sibling::div"), agreement.AgreementLegalSurveyPlan); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Legal survey plan')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Legal survey plan')]/parent::div/following-sibling::div"), agreement.AgreementLegalSurveyPlan); - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement type')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement type')]/parent::div/following-sibling::div"), agreement.AgreementType); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement type')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement type')]/parent::div/following-sibling::div"), agreement.AgreementType); - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement date')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement date')]/parent::div/following-sibling::div"), TransformDateFormat(agreement.AgreementDate)); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement date')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Agreement date')]/parent::div/following-sibling::div"), TransformDateFormat(agreement.AgreementDate)); - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Completion date')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Completion date')]/parent::div/following-sibling::div"), TransformDateFormat(agreement.AgreementCompletionDate)); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Completion date')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Completion date')]/parent::div/following-sibling::div"), TransformDateFormat(agreement.AgreementCompletionDate)); - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Termination date')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Termination date')]/parent::div/following-sibling::div"), TransformDateFormat(agreement.AgreementTerminationDate)); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Termination date')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Termination date')]/parent::div/following-sibling::div"), TransformDateFormat(agreement.AgreementTerminationDate)); - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Possession date')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Possession date')]/parent::div/following-sibling::div"), TransformDateFormat(agreement.AgreementPossessionDate)); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Possession date')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Possession date')]/parent::div/following-sibling::div"), TransformDateFormat(agreement.AgreementPossessionDate)); - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div[contains(text(),'Financial')]")); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div[contains(text(),'Financial')]")); - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Purchase price')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Purchase price')]/parent::div/following-sibling::div"), TransformCurrencyFormat(agreement.AgreementPurchasePrice)); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Purchase price')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Purchase price')]/parent::div/following-sibling::div"), TransformCurrencyFormat(agreement.AgreementPurchasePrice)); - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Deposit due no later than')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Deposit due no later than')]/parent::div/following-sibling::div"), agreement.AgreementDepositDue + " days"); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Deposit due no later than')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Deposit due no later than')]/parent::div/following-sibling::div"), agreement.AgreementDepositDue + " days"); - AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Deposit amount')]")); - AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ agreementNbr +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Deposit amount')]/parent::div/following-sibling::div"), TransformCurrencyFormat(agreement.AgreementDepositAmount)); + AssertTrueIsDisplayed(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Deposit amount')]")); + AssertTrueContentEquals(By.XPath("//button[@data-testid='agreements["+ index +"].edit-btn']/parent::div/parent::div/parent::div/parent::div/parent::div/parent::h2/following-sibling::div/div/div/label[contains(text(),'Deposit amount')]/parent::div/following-sibling::div"), TransformCurrencyFormat(agreement.AgreementDepositAmount)); } } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SharedCompensations.cs b/testing/PIMS.Tests.Automation/PageObjects/SharedCompensations.cs index a33a4ad353..6e0c862c84 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SharedCompensations.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SharedCompensations.cs @@ -88,7 +88,7 @@ public class SharedCompensations : PageObjectBase private readonly By requisitionCostTypeContent = By.XPath("//label[contains(text(),'Cost type')]/parent::div/following-sibling::div"); private readonly By requisitionFiscalYearLabel = By.XPath("//label[contains(text(),'Fiscal year')]"); private readonly By requisitionFiscalYearContent = By.XPath("//label[contains(text(),'Fiscal year')]/parent::div/following-sibling::div"); - private readonly By requisitionFiscalYearSelect = By.Id("input-fiscalYear"); + private readonly By requisitionFiscalYearSelect = By.CssSelector("select[id='input-fiscalYear']"); private readonly By requisitionSTOBLabel = By.XPath("//label[contains(text(),'STOB')]"); private readonly By requisitionSTOBContent = By.XPath("//label[contains(text(),'STOB')]/parent::div/following-sibling::div"); private readonly By requisitionSTOBInput = By.Id("typeahead-select-stob"); @@ -110,7 +110,7 @@ public class SharedCompensations : PageObjectBase private readonly By requisitionPayeeContentCount = By.XPath("//label[contains(text(),'Payee')]/parent::div/following-sibling::div/div"); private readonly By requisitionPayeeMultiselect = By.Id("multiselect-payees_input"); private readonly By requisitionPayeeDeleteBttns = By.CssSelector("div[id='multiselect-payees'] i[class='custom-close']"); - private readonly By requisitionPayeeOptions = By.XPath("//input[@id='multiselect-payees_input']/parent::div/following-sibling::div/ul[@class='optionContainer']"); + private readonly By requisitionPayeeOptions = By.XPath("//input[@id='multiselect-payees_input']/parent::div/following-sibling::div[contains(@class,'optionListContainer')]"); private readonly By requisitionPaymentInTrustLabel = By.XPath("//label[contains(text(),'Payment in Trust?')]"); private readonly By requisitionPaymentInTrustContent1 = By.XPath("//label[contains(text(),'Payee')]/parent::div/following-sibling::div/div/label[1]"); private readonly By requisitionPaymentInTrustContent2 = By.XPath("//label[contains(text(),'Payee')]/parent::div/following-sibling::div/div/label[2]"); @@ -168,7 +168,7 @@ public void NavigateCompensationTab() public void UpdateTotalAllowableCompensation(string allowableAmount) { - Wait(); + WaitUntilClickable(compensationTotalAllowableEdiBttn); FocusAndClick(compensationTotalAllowableEdiBttn); WaitUntilVisible(compensationTotalAllowableInput); @@ -180,32 +180,24 @@ public void UpdateTotalAllowableCompensation(string allowableAmount) public void AddCompensationBttn() { - Wait(4000); - webDriver.FindElement(compensationAddBttn).Click(); - + SafeClick(compensationAddBttn); WaitUntilSpinnerDisappear(); } public void OpenCompensationDetails(int index) { - Wait(); - - WaitUntilClickable(By.CssSelector("div[data-testid='AcquisitionCompensationTable'] div[class='tbody'] div[class='tr-wrapper'] div div button[data-testid='compensation-view-"+ index +"']")); - webDriver.FindElement(By.CssSelector("div[data-testid='AcquisitionCompensationTable'] div[class='tbody'] div[class='tr-wrapper'] div div button[data-testid='compensation-view-"+ index +"']")).Click(); + SafeClick(By.CssSelector("div[data-testid='AcquisitionCompensationTable'] div[class='tbody'] div[class='tr-wrapper'] div div button[data-testid='compensation-view-" + index + "']")); } public void GenerateH120Document() { - Wait(); - WaitUntilClickable(requisitionGenerateH120Bttn); webDriver.FindElement(requisitionGenerateH120Bttn).Click(); } public void DeleteCompensationRequisition(int index) { - Wait(); - //WaitUntilVisible(compensationH120Table); + WaitUntilVisible(compensationH120Table); FocusAndClick(By.CssSelector("div[data-testid='AcquisitionCompensationTable'] div[class='tbody'] div[class='tr-wrapper'] div button[data-testid='compensation-delete-"+ index +"']")); if (webDriver.FindElements(acquisitionFileConfirmationModal).Count() > 0) @@ -220,7 +212,6 @@ public void DeleteCompensationRequisition(int index) public void SaveAcquisitionFileCompensation() { - Wait(); ButtonElement("Save"); Wait(); @@ -239,7 +230,7 @@ public void SaveAcquisitionFileCompensation() public void CancelAcquisitionFileCompensation() { - Wait(); + WaitUntilClickable(requisitionCancelBttn); FocusAndClick(requisitionCancelBttn); sharedModals.CancelActionModal(); @@ -249,15 +240,13 @@ public void CancelAcquisitionFileCompensation() public string GetCompensationFileNumber(int compFileNbr) { - Wait(); WaitUntilVisible(By.CssSelector("div[data-testid='AcquisitionCompensationTable'] div[class='tr-wrapper']:nth-child("+ compFileNbr +") div:nth-child(2) div")); - return webDriver.FindElement(By.CssSelector("div[data-testid='AcquisitionCompensationTable'] div[class='tr-wrapper']:nth-child("+ compFileNbr +") div:nth-child(2) div")).Text; } public void DeleteFirstActivity() { - Wait(); + WaitUntilClickable(By.XPath("//div[@data-testid='finacialActivity[0]']/div/button[@title='Delete Financial Activity']")); FocusAndClick(By.XPath("//div[@data-testid='finacialActivity[0]']/div/button[@title='Delete Financial Activity']")); if (webDriver.FindElements(acquisitionFileConfirmationModal).Count() > 0) @@ -276,25 +265,25 @@ public void EditCompensationDetails() public void UpdateCompensationDetails(Compensation compensation, string fileType) { - Wait(); + WaitUntilClickable(requisitionStatusSelect); //Requisition Details if (compensation.CompensationStatus != "") - ChooseSpecificSelectOption(requisitionStatusSelect, compensation.CompensationStatus); + ChooseSelectOption(requisitionStatusSelect, compensation.CompensationStatus); if (compensation.CompensationAlternateProject != "") { ClearInput(requisitionAltProjectInput); webDriver.FindElement(requisitionAltProjectInput).SendKeys(compensation.CompensationAlternateProject); - Wait(); + WaitUntilClickable(requisitionAltProjectInput); webDriver.FindElement(requisitionAltProjectInput).SendKeys(Keys.Space); - Wait(); + WaitUntilClickable(requisitionAltProjectInput); webDriver.FindElement(requisitionAltProjectInput).SendKeys(Keys.Backspace); - Wait(); - webDriver.FindElement(requisitionAltProject1stOption).Click(); + WaitUntilClickable(requisitionAltProject1stOption); + SafeClick(requisitionAltProject1stOption); } if (compensation.CompensationAgreementDate != "") @@ -342,7 +331,7 @@ public void UpdateCompensationDetails(Compensation compensation, string fileType //Delete Payees previously selected if any if (webDriver.FindElements(requisitionPayeeDeleteBttns).Count > 0) { - Wait(); + WaitUntilClickable(requisitionPayeeMultiselect); FocusAndClick(requisitionPayeeMultiselect); while (webDriver.FindElements(requisitionPayeeDeleteBttns).Count > 0) { @@ -356,16 +345,9 @@ public void UpdateCompensationDetails(Compensation compensation, string fileType { foreach (string payee in compensation.CompensationPayee) { - Wait(); - webDriver.FindElement(requisitionPayeeLabel).Click(); - FocusAndClick(requisitionPayeeMultiselect); - - Wait(); - ChooseMultiSelectSpecificOption(requisitionPayeeOptions, payee); - webDriver.FindElement(requisitionPayeeLabel).Click(); + System.Diagnostics.Debug.WriteLine("Adding payee: " + payee); + ChooseMultiSelectOption(requisitionPayeeMultiselect, requisitionPayeeOptions, requisitionPayeeLabel, payee); } - - webDriver.FindElement(requisitionPayeeLabel).Click(); } if (compensation.CompensationPaymentInTrust) @@ -431,7 +413,7 @@ public void VerifyCompensationInitTabView(string fileType) public int TotalActivitiesCount() { - Wait(); + WaitUntilVisible(requisitionFinancialActivitiesCount); return webDriver.FindElements(requisitionFinancialActivitiesCount).Count(); } @@ -443,6 +425,8 @@ public int TotalCompensationCount() public void VerifyCompensationDetailsInitViewForm() { + Wait(); + //Title AssertTrueIsDisplayed(compensationDetailsTitle); @@ -525,7 +509,7 @@ public void VerifyCompensationDetailsInitCreateForm() AssertTrueIsDisplayed(requisitionWorkActivityLabel); AssertTrueIsDisplayed(requisitionCostTypeLabel); AssertTrueIsDisplayed(requisitionFiscalYearLabel); - AssertTrueIsDisplayed(requisitionFiscalYearSelect); + //AssertTrueIsDisplayed(requisitionFiscalYearSelect); AssertTrueIsDisplayed(requisitionSTOBLabel); AssertTrueIsDisplayed(requisitionSTOBInput); AssertTrueIsDisplayed(requisitionServiceLineLabel); @@ -560,7 +544,7 @@ public void VerifyCompensationDetailsInitCreateForm() public void VerifyCompensationDetailsViewForm(Compensation compensation, string fileType) { - Wait(); + WaitUntilVisible(compensationDetailsTitle); //Title AssertTrueIsDisplayed(compensationDetailsTitle); @@ -670,7 +654,7 @@ public void VerifyCompensationDetailsViewForm(Compensation compensation, string public void VerifyCompensationsTotalDetails(AcquisitionFile acquisition, string fileType) { - Wait(); + WaitUntilVisible(compensationTotalAllowableContent); AssertTrueIsDisplayed(compensationTotalAllowableLabel); AssertTrueContentEquals(compensationTotalAllowableContent, TransformCurrencyFormat(acquisition.AcquisitionCompensationTotalAllowableAmount)); @@ -711,26 +695,24 @@ public void VerifyCompensationListView(Compensation compensation) public void VerifyMissingTemplateErrorMessage() { - Wait(3000); - Assert.Equal("The requested document template was not found. This indicates that the PIMS administrator needs to add a template to the system for this document type. Please contact your system administrator, and ask them to add a template for this document type.", sharedModals.ToastifyText()); + Assert.Equal("The requested document template was not found. This indicates that the PIMS administrator needs to add a template to the system for this document type. Please contact your system administrator, and ask them to add a template for this document type.", sharedModals.ToastifyMainText()); } public void VerifyIncompleteAgreementH120ErrorMessage() { - Wait(3000); Assert.Contains("You cannot complete a file when there are one or more draft agreements, or one or more draft compensations requisitions.", sharedModals.ModalContent()); Assert.Contains("Remove any draft compensations requisitions. Agreements should be set to final, cancelled, or removed.", sharedModals.ModalContent()); } public void VerifyDeletePayeeErrorMessage() { - Wait(3000); + Wait(); Assert.Contains("Lease File Stakeholder can not be removed since it's assigned as a payee for a compensation requisition", sharedModals.ModalContent()); } private void CreateFinancialActivity(CompensationActivity activity) { - Wait(); + WaitUntilVisible(requisitionAddActivityBttn); //Get index by counting number of activities var index = webDriver.FindElements(requisitionFinancialActivitiesCount).Count; @@ -776,7 +758,7 @@ private void CreateFinancialActivity(CompensationActivity activity) } if (activity.ActGSTEligible!= "") - ChooseSpecificSelectOption(By.Id("input-financials["+ index +"].isGstRequired"), activity.ActGSTEligible); + ChooseSelectOption(By.Id("input-financials["+ index +"].isGstRequired"), activity.ActGSTEligible); if (activity.ActGSTAmount != "") { diff --git a/testing/PIMS.Tests.Automation/PageObjects/SharedFileProperties.cs b/testing/PIMS.Tests.Automation/PageObjects/SharedFileProperties.cs index 6ace7619d8..61e2e8ab00 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SharedFileProperties.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SharedFileProperties.cs @@ -144,7 +144,7 @@ public void DisableEnableProperty(int index, string status) { Wait(); var propertystatusSelectElement = By.CssSelector("select[id='input-properties."+ index +".isActive']"); - ChooseSpecificSelectOption(propertystatusSelectElement, status); + ChooseSelectOption(propertystatusSelectElement, status); } public void SaveFileProperties() diff --git a/testing/PIMS.Tests.Automation/PageObjects/SharedImprovementsTab.cs b/testing/PIMS.Tests.Automation/PageObjects/SharedImprovementsTab.cs index a799db57be..d934f27406 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SharedImprovementsTab.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SharedImprovementsTab.cs @@ -18,14 +18,13 @@ public SharedImprovementsTab(IWebDriver webDriver) : base(webDriver) public void NavigateImprovementTab() { - Wait(); + WaitUntilClickable(sharedImprovementTab); webDriver.FindElement(sharedImprovementTab).Click(); } public void VerifyImprovementsTab(List propertiesList) { - Wait(); - + WaitUntilVisible(sharedImprovementTitle); AssertTrueIsDisplayed(sharedImprovementTitle); webDriver.FindElement(sharedImprovementExpandBttn).Click(); @@ -54,7 +53,7 @@ public void VerifyImprovementsTab(List propertiesList) public int CountProperties() { - Wait(); + WaitUntilVisible(sharedImprovementsPropertiesCount); return webDriver.FindElements(sharedImprovementsPropertiesCount).Count; } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SharedModals.cs b/testing/PIMS.Tests.Automation/PageObjects/SharedModals.cs index 8332bdc1af..b0639461dc 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SharedModals.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SharedModals.cs @@ -36,19 +36,19 @@ public string ModalHeader() public string ModalContent() { WaitUntilVisible(generalModal); - return (webDriver.FindElement(generalModalContent).Text); + return (webDriver.FindElements(generalModalContent).Last().Text); } public void ModalClickOKBttn() { - Wait(); - webDriver.FindElement(generalModalOkBttn).Click(); + WaitUntilClickable(generalModalOkBttn); + SafeClick(generalModalOkBttn); } public void ModalClickCancelBttn() { - Wait(); - webDriver.FindElement(generalModalCancelBttn).Click(); + WaitUntilClickable(generalModalCancelBttn); + SafeClick(generalModalCancelBttn); } public string SecondaryModalHeader() @@ -69,12 +69,13 @@ public void SecondaryModalClickOKBttn() webDriver.FindElement(secondaryModalOkBttn).Click(); } - public string ToastifyText() + public string ToastifyMainText() { - WaitUntilVisible(generalToastBody); - return (webDriver.FindElement(generalToastBody).Text); + Wait(); + return (webDriver.FindElements(generalToastBody).Last().Text); } + public string ConfirmationModalText1() { WaitUntilVisible(generalConfirmationModalBody1); diff --git a/testing/PIMS.Tests.Automation/PageObjects/SharedPagination.cs b/testing/PIMS.Tests.Automation/PageObjects/SharedPagination.cs index 1f03757a7d..7393b200b7 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SharedPagination.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SharedPagination.cs @@ -21,31 +21,29 @@ public SharedPagination(IWebDriver webDriver) : base(webDriver) public void ChoosePaginationOption(int pagination) { - Wait(); - WaitUntilVisible(searchTableEntriesSpan); - FocusAndClick(searchTableEntriesSpan); + SafeClick(searchTableEntriesSpan); switch (pagination) { case 5: - //WaitUntilClickable(searchTablePagination5); + WaitUntilClickable(searchTablePagination5); FocusAndClick(searchTablePagination5); break; case 10: - //WaitUntilVisible(searchTablePagination10); + WaitUntilVisible(searchTablePagination10); FocusAndClick(searchTablePagination10); break; case 20: - //WaitUntilClickable(searchTablePagination20); + WaitUntilClickable(searchTablePagination20); FocusAndClick(searchTablePagination20); break; case 50: - //WaitUntilClickable(searchTablePagination50); + WaitUntilClickable(searchTablePagination50); FocusAndClick(searchTablePagination50); break; case 100: - //WaitUntilClickable(searchTablePagination100); + WaitUntilClickable(searchTablePagination100); FocusAndClick(searchTablePagination100); break; } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SharedSelectContact.cs b/testing/PIMS.Tests.Automation/PageObjects/SharedSelectContact.cs index 92557a2b95..64994c4fba 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SharedSelectContact.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SharedSelectContact.cs @@ -16,15 +16,15 @@ public SharedSelectContact(IWebDriver webDriver) : base(webDriver) public void SelectContact(string contactSearchName, string contactType) { - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); switch (contactType) { case "Individual": - ChooseSpecificRadioButton(selectContactRadioBttnGroup, "persons"); + ChooseRadioButton(selectContactRadioBttnGroup, "persons"); break; case "Organization": - ChooseSpecificRadioButton(selectContactRadioBttnGroup, "organizations"); + ChooseRadioButton(selectContactRadioBttnGroup, "organizations"); break; default: break; @@ -32,13 +32,11 @@ public void SelectContact(string contactSearchName, string contactType) Wait(); webDriver.FindElement(selectContactSearchInput).SendKeys(contactSearchName); - webDriver.FindElement(selectContactSearchButton).Click(); + SafeClick(selectContactSearchButton); - Wait(5000); - webDriver.FindElement(selectContactSearch1stResultRadioBttn).Click(); - - WaitUntilClickable(selectContactOkButton); - webDriver.FindElement(selectContactOkButton).Click(); + Wait(); + SafeClick(selectContactSearch1stResultRadioBttn); + SafeClick(selectContactOkButton); } } } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SharedTeamMembers.cs b/testing/PIMS.Tests.Automation/PageObjects/SharedTeamMembers.cs index cbcbf20145..9127097b56 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SharedTeamMembers.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SharedTeamMembers.cs @@ -26,42 +26,42 @@ public SharedTeamMembers(IWebDriver webDriver) : base(webDriver) public void AddTeamMembers(TeamMember teamMember) { - Wait(); + WaitUntilClickable(membersTeamAddAnotherMemberLink); FocusAndClick(membersTeamAddAnotherMemberLink); - Wait(); var teamMemberIndex = webDriver.FindElements(fileTeamMembersGroup).Count() -1; WaitUntilVisible(By.CssSelector("select[id='input-team."+ teamMemberIndex +".contactTypeCode']")); - ChooseSpecificSelectOption(By.CssSelector("select[id='input-team."+ teamMemberIndex +".contactTypeCode']"), teamMember.TeamMemberRole); + ChooseSelectOption(By.CssSelector("select[id='input-team."+ teamMemberIndex +".contactTypeCode']"), teamMember.TeamMemberRole); FocusAndClick(By.CssSelector("div[data-testid='teamMemberRow["+ teamMemberIndex +"]'] div[data-testid='contact-input'] button[title='Select Contact']")); - Wait(); sharedSelectContact.SelectContact(teamMember.TeamMemberContactName, teamMember.TeamMemberContactType); Wait(); if (webDriver.FindElements(By.Id("input-team."+ teamMemberIndex +".primaryContactId")).Count > 0) - ChooseSpecificSelectOption(By.Id("input-team."+ teamMemberIndex +".primaryContactId"), teamMember.TeamMemberPrimaryContact); + { + WaitUntilClickable(By.Id("input-team."+ teamMemberIndex +".primaryContactId")); + ChooseSelectOption(By.Id("input-team."+ teamMemberIndex +".primaryContactId"), teamMember.TeamMemberPrimaryContact); + } } public void AddMgmtTeamMembers(TeamMember teamMember) { - Wait(); + WaitUntilClickable(membersTeamAddAnotherMemberLink); FocusAndClick(membersTeamAddAnotherMemberLink); - Wait(); + WaitUntilVisible(fileTeamMembersGroup); var teamMemberIndex = webDriver.FindElements(fileTeamMembersGroup).Count() -1; WaitUntilVisible(By.CssSelector("select[id='input-team."+ teamMemberIndex +".teamProfileTypeCode']")); - ChooseSpecificSelectOption(By.CssSelector("select[id='input-team."+ teamMemberIndex +".teamProfileTypeCode']"), teamMember.TeamMemberRole); + ChooseSelectOption(By.CssSelector("select[id='input-team."+ teamMemberIndex +".teamProfileTypeCode']"), teamMember.TeamMemberRole); FocusAndClick(By.CssSelector("div[data-testid='teamMemberRow["+ teamMemberIndex +"]'] div[data-testid='contact-input'] button[title='Select Contact']")); - Wait(); sharedSelectContact.SelectContact(teamMember.TeamMemberContactName, teamMember.TeamMemberContactType); - Wait(); + WaitUntilClickable(By.Id("input-team."+ teamMemberIndex +".primaryContactId")); if (webDriver.FindElements(By.Id("input-team."+ teamMemberIndex +".primaryContactId")).Count > 0) - ChooseSpecificSelectOption(By.Id("input-team."+ teamMemberIndex +".primaryContactId"), teamMember.TeamMemberPrimaryContact); + ChooseSelectOption(By.Id("input-team."+ teamMemberIndex +".primaryContactId"), teamMember.TeamMemberPrimaryContact); } public void VerifyTeamMembersViewForm(List teamMembers) @@ -86,19 +86,17 @@ public void VerifyTeamMembersViewForm(List teamMembers) public void VerifyRequiredTeamMemberMessages() { //Add a new Team member form - Wait(); - WaitUntilClickable(membersTeamAddAnotherMemberLink); - webDriver.FindElement(membersTeamAddAnotherMemberLink).Click(); + SafeClick(membersTeamAddAnotherMemberLink); //Verify that invalid team member message is displayed - ChooseSpecificSelectOption(By.Id("input-team.0.contactTypeCode"), "Expropriation agent"); + ChooseSelectOption(By.Id("input-team.0.contactTypeCode"), "Expropriation agent"); webDriver.FindElement(membersTeamSubtitle).Click(); AssertTrueIsDisplayed(membersTeamInvalidTeamMemberMessage); //verify that invalid profile message is displayed webDriver.FindElement(By.CssSelector("div[data-testid='contact-input'] button[title='Select Contact']")).Click(); sharedSelectContact.SelectContact("Test", ""); - ChooseSpecificSelectOption(By.Id("input-team.0.contactTypeCode"), "Select profile..."); + ChooseSelectOption(By.Id("input-team.0.contactTypeCode"), "Select profile..."); webDriver.FindElement(membersTeamSubtitle).Click(); AssertTrueIsDisplayed(membersTeamInvalidProfileMessage); } diff --git a/testing/PIMS.Tests.Automation/PageObjects/SubdivisionConsolidationProperties.cs b/testing/PIMS.Tests.Automation/PageObjects/SubdivisionConsolidationProperties.cs index 416531a51c..992ccfa640 100644 --- a/testing/PIMS.Tests.Automation/PageObjects/SubdivisionConsolidationProperties.cs +++ b/testing/PIMS.Tests.Automation/PageObjects/SubdivisionConsolidationProperties.cs @@ -117,7 +117,7 @@ public SubdivisionConsolidationProperties(IWebDriver webDriver) : base(webDriver public void NavigateToCreateNewSubdivision() { - Wait(); + WaitUntilClickable(menuSubdivisionConsolidationButton); FocusAndClick(menuSubdivisionConsolidationButton); WaitUntilVisible(createSubdivisionFileButton); @@ -126,7 +126,7 @@ public void NavigateToCreateNewSubdivision() public void NavigateToCreateNewConsolidation() { - Wait(); + WaitUntilClickable(menuSubdivisionConsolidationButton); FocusAndClick(menuSubdivisionConsolidationButton); WaitUntilVisible(createConsolidationFileButton); @@ -135,10 +135,10 @@ public void NavigateToCreateNewConsolidation() public void SaveSubdivision() { - Wait(); + WaitUntilClickable(subdivisionPropertiesCreateButton); webDriver.FindElement(subdivisionPropertiesCreateButton).Click(); - Wait(); + WaitUntilVisible(subconModalWindow); if (webDriver.FindElements(subconModalWindow).Count > 0) { WaitUntilVisible(subconWarningHeader); @@ -151,10 +151,10 @@ public void SaveSubdivision() public void SaveConsolidation() { - Wait(); + WaitUntilClickable(consolidationPropertiesCreateButton); webDriver.FindElement(consolidationPropertiesCreateButton).Click(); - Wait(); + WaitUntilVisible(subconModalWindow); if (webDriver.FindElements(subconModalWindow).Count > 0) { WaitUntilVisible(subconWarningHeader); @@ -167,7 +167,7 @@ public void SaveConsolidation() public void CancelSubdivisionConsolidation() { - Wait(4000); + WaitUntilClickable(subconPropertiesCancelButton); webDriver.FindElement(subconPropertiesCancelButton).Click(); sharedModals.CancelActionModal(); @@ -175,7 +175,7 @@ public void CancelSubdivisionConsolidation() public void CreateSubdivision(PropertySubdivision subdivision) { - Wait(); + WaitUntilClickable(subdconSearchParentByPIDInput); webDriver.FindElement(subdconSearchParentByPIDInput).SendKeys(subdivision.SubdivisionSource.PropertyHistoryIdentifier); webDriver.FindElement(subconSearchParentBttn).Click(); @@ -183,12 +183,12 @@ public void CreateSubdivision(PropertySubdivision subdivision) webDriver.FindElement(subconChildrenSearchTab).Click(); foreach (PropertyHistory child in subdivision.SubdivisionDestination) { - Wait(); + WaitUntilClickable(subconChildrenResetButton); webDriver.FindElement(subconChildrenResetButton).Click(); webDriver.FindElement(subconChildrenSearchByPIDInput).SendKeys(child.PropertyHistoryIdentifier); webDriver.FindElement(subconChildrenSearchButton).Click(); - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); webDriver.FindElement(subconChildren1stResultCheckbox).Click(); webDriver.FindElement(subconChildernAddToSelectionBttn).Click(); } @@ -203,14 +203,14 @@ public void CreateConsolidation(PropertyConsolidation consolidation) webDriver.FindElement(subconChildrenSearchByPIDInput).SendKeys(consolidation.ConsolidationDestination.PropertyHistoryIdentifier); webDriver.FindElement(subconChildrenSearchButton).Click(); - WaitUntilTableSpinnerDisappear(); + WaitForTableToLoad(); webDriver.FindElement(subconChildren1stResultCheckbox).Click(); webDriver.FindElement(subconChildernAddToSelectionBttn).Click(); } public void InsertParentConsolidation(string propertyID) { - Wait(); + WaitUntilClickable(subconSearchParentResetBttn); webDriver.FindElement(subconSearchParentResetBttn).Click(); webDriver.FindElement(subdconSearchParentByPIDInput).SendKeys(propertyID); webDriver.FindElement(subconSearchParentBttn).Click(); @@ -303,7 +303,6 @@ public void VerifyInvalidSubdivisionChildrenMessage() public void VerifyInvalidConsolidationChildMessage() { - Wait(); WaitUntilVisible(subconErrorHeader); Assert.Equal("Consolidated child property may not be in the PIMS inventory unless also in the parent property list.", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); @@ -311,8 +310,6 @@ public void VerifyInvalidConsolidationChildMessage() public void VerifyInvalidConsolidationRepeatedParentMessage() { - Wait(); - WaitUntilVisible(subconErrorHeader); Assert.Equal("Consolidations must contain at least two different parent properties.", sharedModals.ModalContent()); sharedModals.ModalClickOKBttn(); @@ -320,8 +317,7 @@ public void VerifyInvalidConsolidationRepeatedParentMessage() public void VerifyInvalidSubdivisionChildMessage() { - Wait(); - Assert.Equal("A property that the user is trying to select has already been added to the selected properties list", sharedModals.ToastifyText()); + Assert.Equal("A property that the user is trying to select has already been added to the selected properties list", sharedModals.ToastifyMainText()); } public void VerifyMissingParentMessageModal() @@ -345,7 +341,7 @@ public void VerifyMissingChildMessage() public void VerifySubdivisionHistory(PropertySubdivision subdivision) { - Wait(); + WaitUntilVisible(subdivisionHistorySubtitle); AssertTrueIsDisplayed(subdivisionHistorySubtitle); @@ -384,7 +380,6 @@ public void VerifyConsolidationHistory(PropertyConsolidation consolidation) AssertTrueIsDisplayed(subconHistoryTableStatusColumn); AssertTrueIsDisplayed(subconHistoryTableAreaColumn); - Wait(); for (int i = 0; i < consolidation.ConsolidationSource.Count; i++) { var parentsElementNbr = i + 1; diff --git a/testing/PIMS.Tests.Automation/Reports/TestHooks.cs b/testing/PIMS.Tests.Automation/Reports/TestHooks.cs index db0dad8c1c..92c68a22f9 100644 --- a/testing/PIMS.Tests.Automation/Reports/TestHooks.cs +++ b/testing/PIMS.Tests.Automation/Reports/TestHooks.cs @@ -7,6 +7,7 @@ using OpenQA.Selenium.Firefox; using DotNetEnv; using DotNetEnv.Configuration; +using System.Drawing; namespace PIMS.Tests.Automation.Reports { @@ -152,14 +153,18 @@ private IWebDriver CreateChromeWebDriver() if (runAutomationHeadless) { - options.AddArgument("window-size=1014,768"); + options.AddArgument("--window-size=1920,1080"); options.AddArgument("--headless=new"); + options.AddArgument("--disable-gpu"); } else options.AddArgument("start-maximized"); var chromeDriver = new ChromeDriver(ChromeDriverService.CreateDefaultService(), options, TimeSpan.FromMinutes(2)); + if (runAutomationHeadless) + chromeDriver.Manage().Window.Size = new Size(1920, 1080); + chromeDriver.Url = Configuration.GetValue("Base_url"); return chromeDriver; diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/AcquisitionFileSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/AcquisitionFileSteps.cs index cbfb91dd13..368a9337b2 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/AcquisitionFileSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/AcquisitionFileSteps.cs @@ -445,7 +445,7 @@ public void UpdateAgreement(int rowNumber) agreements.SaveAcquisitionFileAgreement(); //Verify Edit Agreement form - agreements.VerifyViewAgreementForm(acquisitionFile.AcquisitionAgreements[1], 0); + agreements.VerifyViewAgreementForm(acquisitionFile.AcquisitionAgreements[1], 1); var agreementsBeforeDelete = agreements.TotalAgreementsCount(); diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/DigitalDocumentSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/DigitalDocumentSteps.cs index cc9e1a304f..bc27b41767 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/DigitalDocumentSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/DigitalDocumentSteps.cs @@ -235,13 +235,6 @@ public void UpdateDigitalDocuments(string fileType, int rowNumber) //Edit digital document's details digitalDocumentsTab.NavigateToFirstPageDocumentsTable(); - //Disable Order by Document's type - if (fileType != "Lease" || fileType != "Management") - { - digitalDocumentsTab.OrderByDocumentFileType(); - digitalDocumentsTab.OrderByDocumentFileType(); - } - //Pick 1st available digital document digitalDocumentsTab.View1stDocument(); digitalDocumentsTab.EditDocumentButton(); @@ -261,7 +254,7 @@ public void UpdateDigitalDocuments(string fileType, int rowNumber) digitalDocumentsTab.SaveEditDigitalDocument(); //Verify Details View Form - digitalDocumentsTab.OrderByDocumentFileType(); + digitalDocumentsTab.FilterByType(digitalDocumentList[0].DocumentType); digitalDocumentsTab.View1stDocument(); digitalDocumentsTab.VerifyDocumentDetailsViewForm(digitalDocumentList[0]); @@ -269,6 +262,7 @@ public void UpdateDigitalDocuments(string fileType, int rowNumber) digitalDocumentsTab.CloseDigitalDocumentViewDetails(); //Verify Pagination Elements + digitalDocumentsTab.ResetFilters(); digitalDocumentsTab.VerifyPaginationElements(); //Verify Pagination Functionality diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/DispositionFileSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/DispositionFileSteps.cs index 3bfba4b7ff..62977da9e6 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/DispositionFileSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/DispositionFileSteps.cs @@ -185,7 +185,8 @@ public void AddProperties() if (dispositionFile.DispositionSearchProperties.HistoricFile != "") { searchProperties.SearchProperty(historicFile: dispositionFile.DispositionSearchProperties.HistoricFile); - searchProperties.SelectFirstPIMSResultToFile(); + searchProperties.SelectFirstPIMSResult(); + sharedFileProperties.AddPropertyToFile(); searchProperties.ResetPropertySearch(); } diff --git a/testing/PIMS.Tests.Automation/StepDefinitions/PropertiesSteps.cs b/testing/PIMS.Tests.Automation/StepDefinitions/PropertiesSteps.cs index 0f4eaa17a0..d677836b8e 100644 --- a/testing/PIMS.Tests.Automation/StepDefinitions/PropertiesSteps.cs +++ b/testing/PIMS.Tests.Automation/StepDefinitions/PropertiesSteps.cs @@ -322,7 +322,7 @@ public void UpdatePropertyImprovements(int rowNumber) propertyImprovement.AddUpdateImprovement(property.PropertyImprovements[0]); propertyImprovement.SaveImprovement(); - propertyImprovement.VerifyImprovementView(0, property.PropertyImprovements[0]); + propertyImprovement.VerifyImprovementView(1, property.PropertyImprovements[0]); } [StepDefinition(@"I insert information in the Property Management Tab from row number (.*)")] @@ -523,7 +523,7 @@ public void SearchPropertyPlan(int rowNumber) searchProperties.SearchProperty(plan: searchProperty.PlanNumber); //Click on first property found - searchProperties.SelectFirstPMBCResult(); + searchProperties.SelectFirstPIMSResult(); } [StepDefinition(@"I verify the MultiProperty Tabs")]