public void AuthenticateMobileWithSessionTokenTest() { var username = RandomString(); var password = RandomString(); var user = CreateUser(username, password); var requestManager = FakeRequestManager.Create(); var sessionToken = new ApiSession { CreatedDate = DateTime.Now, LastAccessedDate = DateTime.Now, SessionToken = Guid.NewGuid(), UserId = user.UserId, }; db.ApiSessions.InsertOnSubmit(sessionToken); db.SubmitChanges(); requestManager.CurrentHttpContext.Request.Headers["SessionToken"] = sessionToken.SessionToken.ToString(); var membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; var roleProvider = new MockCMSRoleProvider(); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); var result = AccountModel.AuthenticateMobile(requestManager.CurrentDatabase, requestManager.CurrentImageDatabase); result.ErrorMessage.ShouldBeNullOrEmpty(); result.IsValid.ShouldBeTrue(); result.Status.ShouldBe(UserValidationStatus.Success); }
public void GetCouplesBothList_Should_Pull_Proper_HoHPeopleID() { /* Excel export should pull proper Head of Household PeopleID*/ var requestManager = FakeRequestManager.Create(); var db = requestManager.CurrentDatabase; var controller = new OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var m = OrganizationModel.Create(db, requestManager.CurrentUser); var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager); var oid = FakeOrg.org.OrganizationId; m.OrgId = oid; var wife = CreateUser(RandomString(), RandomString()); //Create family and then Execute GetCouplesBothList to see if the right HeadOfHouseHoldId is retrieved... var p = CreateFakeFamily(oid, m, controller); var mailingModel = new MailingController(requestManager); var ExcelCouplesBoth = mailingModel.GetCouplesBothList(m.QueryId, 500); FakeOrganizationUtils.DeleteOrg(FakeOrg.org.OrganizationId); RemoveFakePeopleFromDB(ToPeople(ExcelCouplesBoth), db); }
public void ApiUserInfoTest(string password) { var username = RandomString(); var apiKey = RandomString(); var IP = "127.0.0.1"; var requestManager = FakeRequestManager.Create(); var membershipProvider = new MockCMSMembershipProvider(); membershipProvider.ValidUsers.Add(new CmsData.User { Username = username, Password = password }); var roleProvider = new MockCMSRoleProvider(); db.SetSetting("ApiUserInfoKey", apiKey); db.SetSetting("ApiUserInfoIPList", IP); CreateUser(username, password); requestManager.CurrentHttpContext.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); requestManager.CurrentHttpContext.Request.Headers["ApiKey"] = apiKey; requestManager.CurrentHttpContext.Request.ServerVariables["REMOTE_ADDR"] = IP; CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); var controller = new ExternalServicesController(requestManager); controller.ApiUserInfo(); }
public void FetchInvolvementTest() { var username = RandomString(); var password = RandomString(); var user = CreateUser(username, password); var requestManager = FakeRequestManager.Create(); var membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; var roleProvider = new MockCMSRoleProvider(); db.OrganizationMembers.InsertOnSubmit(new OrganizationMember { Organization = db.Organizations.First(), Person = user.Person, MemberTypeId = MemberTypeCode.Member }); db.SubmitChanges(); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); requestManager.CurrentHttpContext.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); var controller = new MobileAPIv2Controller(requestManager); var message = new MobileMessage { argInt = user.PeopleId.Value }; var data = message.ToString(); var result = controller.FetchInvolvement(data) as MobileMessage; result.ShouldNotBeNull(); result.count.ShouldBe(1); result.error.ShouldBe(0); var orgs = JsonConvert.DeserializeObject <List <MobileInvolvement> >(result.data); orgs.Count.ShouldBe(1); }
public void UpdatePersonTest(int electronic, int statement, int envelope) { var username = RandomString(); var password = RandomString(); var user = CreateUser(username, password); var requestManager = FakeRequestManager.Create(); var membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; var roleProvider = new MockCMSRoleProvider(); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); requestManager.CurrentHttpContext.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); var controller = new MobileAPIv2Controller(requestManager); var message = new MobileMessage { argInt = user.PeopleId.Value, instance = RandomString(), data = $@"[{{""type"":62,""value"":{electronic}}},{{""type"":63,""value"":{statement}}},{{""type"":64,""value"":{envelope}}}]", }; var data = message.ToString(); var result = controller.UpdatePerson(data) as MobileMessage; result.ShouldNotBeNull(); result.count.ShouldBe(1); result.error.ShouldBe(0); db.Refresh(RefreshMode.OverwriteCurrentValues, user.Person); user.Person.EnvelopeOptionsId.ShouldBe(envelope); user.Person.ElectronicStatement.ShouldBe(electronic != 0); user.Person.ContributionOptionsId.ShouldBe(statement); }
public void ShouldPassAskChurchQuestions(bool memberus, bool otherchurch, bool nochurch) { var requestManager = FakeRequestManager.Create(); var controller = new CmsWeb.Areas.OnlineReg.Controllers.OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager); OrgId = FakeOrg.org.OrganizationId; var model = FakeOrganizationUtils.GetFakeOnlineRegModel(OrgId); model.List[0].memberus = memberus; model.List[0].otherchurch = otherchurch; model.List[0].nochurch = nochurch; model.List[0].paydeposit = true; var resultSubmitQuestions = controller.SubmitQuestions(0, model); var resultCompleteRegistration = controller.CompleteRegistration(model); Assert.NotNull(resultSubmitQuestions); Assert.NotNull(resultCompleteRegistration); FakeOrganizationUtils.DeleteOrg(OrgId); }
public void FetchGivingSummaryTest(decimal contribution, string count, string comment, string total, string contribCount) { var username = RandomString(); var password = RandomString(); var user = CreateUser(username, password); var requestManager = FakeRequestManager.Create(); var membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; var roleProvider = new MockCMSRoleProvider(); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); requestManager.CurrentHttpContext.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); var year = DateTime.Now.Year; if (contribution > 0) { var c = new Contribution() { PeopleId = user.PeopleId, ContributionAmount = contribution, ContributionDate = new DateTime(year, 7, 2), ContributionStatusId = ContributionStatusCode.Recorded, ContributionTypeId = ContributionTypeCode.Online, CreatedDate = DateTime.Now, FundId = 1 }; db.Contributions.InsertOnSubmit(c); db.SubmitChanges(); } var controller = new MobileAPIv2Controller(requestManager); var message = new MobileMessage { argInt = 0 }; var data = message.ToString(); var result = controller.FetchGivingSummary(data) as MobileMessage; result.ShouldNotBeNull(); result.count.ShouldBe(1); result.error.ShouldBe(0); var summary = JsonConvert.DeserializeObject <MobileGivingSummary>(result.data); summary.Count.ShouldBe(1); var current = summary[$"{year}"]; current.ShouldNotBeNull(); current.title.ShouldBe($"{year}"); current.comment.ShouldBe(comment); current.count.ShouldBe(count); current.loaded.ShouldBe(1); current.total.ShouldBe(total); current.summary[0].title.ShouldBe("Contributions"); current.summary[0].comment.ShouldBe(comment); current.summary[0].count.ShouldBe(contribCount); current.summary[0].showAsPledge.ShouldBe(0); }
public void Should_Use_MasterOrg_DOB_Phone_Settings() { int MasterOrgId = 0; int ChildOrgId = 0; var requestManager = FakeRequestManager.Create(); var controller = new CmsWeb.Areas.OnlineReg.Controllers.OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); // Create Master Org var MasterOrgconfig = new Organization() { OrganizationName = "MockMasterName", RegistrationTitle = "MockMasterTitle", Location = "MockLocation", RegistrationTypeId = 20, RegSetting = XMLSettings(MasterOrgId) }; var FakeMasterOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, MasterOrgconfig); MasterOrgId = FakeMasterOrg.org.OrganizationId; // Create Child Org var ChildOrgconfig = new Organization() { OrganizationName = "MockMasterName", RegistrationTitle = "MockMasterTitle", Location = "MockLocation", RegistrationTypeId = 8, ParentOrgId = MasterOrgId }; var FakeChildOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, ChildOrgconfig); ChildOrgId = FakeChildOrg.org.OrganizationId; var MasterOnlineRegModel = FakeOrganizationUtils.GetFakeOnlineRegModel(ChildOrgId); var ChildOnlineRegModel = FakeOrganizationUtils.GetFakeOnlineRegModel(MasterOrgId); var MasterOnlineRegPersonModel = MasterOnlineRegModel.LoadExistingPerson(ChildOnlineRegModel.UserPeopleId ?? 0, 0); var ChildOnlineRegPersonModel = ChildOnlineRegModel.LoadExistingPerson(ChildOnlineRegModel.UserPeopleId ?? 0, 0); ChildOnlineRegPersonModel.ShowDOBOnFind().ShouldBe(true); ChildOnlineRegPersonModel.ShowPhoneOnFind().ShouldBe(true); FakeOrganizationUtils.DeleteOrg(MasterOrgId); FakeOrganizationUtils.DeleteOrg(ChildOrgId); }
public void RecordAttendTest(string setting) { var now = DateTime.Now; db.SetSetting("AttendCountUpdatesOffline", setting); db.SubmitChanges(); var username = RandomString(); var password = RandomString(); var user = CreateUser(username, password); var org = CreateOrganization(); org.FirstMeetingDate = now.AddDays(-7); org.RollSheetVisitorWks = 2; org.AllowAttendOverlap = true; org.CanSelfCheckin = true; org.NoSecurityLabel = true; org.NumCheckInLabels = 0; db.SubmitChanges(); var meetingTime = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute - (now.Minute % 15), 0); Meeting.FetchOrCreateMeeting(db, org.OrganizationId, meetingTime, noautoabsents: true); var requestManager = FakeRequestManager.Create(); var context = requestManager.CurrentHttpContext; var membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; var roleProvider = new MockCMSRoleProvider(); roleProvider.UserRoles.Add("Checkin"); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); context.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); var controller = new CheckInAPIController(requestManager); var json = $@"{{ ""rebranded"": ""false"", ""argInt"": ""0"", ""version"": ""2"", ""id"": ""0"", ""data"": ""{{\""orgID\"":{org.OrganizationId},\""present\"":true,\""datetime\"":\""{meetingTime:s}\"",\""peopleID\"":{user.PeopleId}}}"", ""device"": ""1"", ""argString"": """", ""count"": ""0"" }}"; var result = controller.RecordAttend(json) as CheckInMessage; db.DeleteSetting("AttendCountUpdatesOffline"); result.error.ShouldBe(0); result.count.ShouldBe(1); }
public void Column_Number_Out_Of_Range_Should_Show_Error() { CMSDataContext db = CMSDataContext.Create(DatabaseFixture.Host); var requestManager = FakeRequestManager.Create(); var controller = new CmsWeb.Areas.OnlineReg.Controllers.OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, new CmsData.Organization() { OrganizationName = "MockName", RegistrationTitle = "MockTitle", Location = "MockLocation", RegistrationTypeId = RegistrationTypeCode.JoinOrganization }); OrgId = FakeOrg.org.OrganizationId; username = RandomString(); password = RandomString(); var user = CreateUser(username, password, roles: new string[] { "Edit", "Access" }); Login(); Wait(3); Open($"{rootUrl}Org/{OrgId}#tab-Registrations-tab"); WaitForElementToDisappear(loadingUI); Find(css: "#Questions-tab > .ajax").Click(); WaitForElementToDisappear(loadingUI); Find(css: ".row:nth-child(1) > .col-sm-12 .edit").Click(); WaitForElementToDisappear(loadingUI); Find(text: "Add Question").Click(); Wait(2); Find(text: "Checkboxes").Click(); Wait(2); Find(text: "Done").Click(); Wait(2); Find(css: ".confirm").Click(); Wait(2); Find(xpath: "//div[4]/div/div/input").SendKeys("5"); Find(text: "Save").Click(); Wait(2); PageSource.ShouldContain("The field Columns must be between 0 and 4."); }
public void Should_Change_No_Zero_field(string value) { var requestManager = FakeRequestManager.Create(); var db = requestManager.CurrentDatabase; var controller = new CmsWeb.Areas.Setup.Controllers.DivisionController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "Division" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); Program prog = new Program() { Name = "MockProgram", RptGroup = null, StartHoursOffset = null, EndHoursOffset = null }; db.Programs.InsertOnSubmit(prog); db.SubmitChanges(); Division div = new Division() { Name = "MockDivision", ProgId = prog.Id, SortOrder = null, EmailMessage = null, EmailSubject = null, Instructions = null, Terms = null, ReportLine = null, NoDisplayZero = false }; db.Divisions.InsertOnSubmit(div); db.SubmitChanges(); controller.Edit("z" + div.Id, value); bool?result = db.Divisions.Where(x => x.Id == div.Id).Select(y => y.NoDisplayZero).First(); result.ShouldBe(true); db.ExecuteCommand("DELETE FROM [ProgDiv] WHERE [ProgId] = {0} AND [DivId] = {1}", prog.Id, div.Id); db.ExecuteCommand("DELETE FROM [Division] WHERE [Id] = {0}", div.Id); db.ExecuteCommand("DELETE FROM [Program] WHERE [Id] = {0}", prog.Id); }
public void ExcelListShouldNotHaveDeceased() { var requestManager = FakeRequestManager.Create(); var db = requestManager.CurrentDatabase; var family = new Family(); db.Families.InsertOnSubmit(family); db.SubmitChanges(); var hoh = new Person { Family = family, FirstName = RandomString(), LastName = RandomString(), EmailAddress = RandomString() + "@example.com", MemberStatusId = MemberStatusCode.Member, PositionInFamilyId = PositionInFamily.PrimaryAdult }; var child = new Person { Family = family, FirstName = RandomString(), LastName = RandomString(), EmailAddress = RandomString() + "@example.com", DeceasedDate = DateTime.Now, MemberStatusId = MemberStatusCode.Member, PositionInFamilyId = PositionInFamily.Child }; db.People.InsertOnSubmit(hoh); db.People.InsertOnSubmit(child); db.SubmitChanges(); string code = "FamilyId = " + family.FamilyId; var query = QueryModel.QueryCode(db, code); query.Count().ShouldBeGreaterThan(0); var ExcelPics = ExcelExportModel.List(query.QueryId.Value); ExcelPics.Where(p => p.Children.HasValue()).Count().ShouldBe(0); db.PurgePerson(hoh.PeopleId); db.PurgePerson(child.PeopleId); db.Families.DeleteOnSubmit(family); db.SubmitChanges(); }
public void Should_Not_Use_Email_Draft_Versioning() { var requestManager = FakeRequestManager.Create(); var db = requestManager.CurrentDatabase; var controller = new CmsWeb.Areas.Main.Controllers.EmailController(requestManager); db.SetSetting("UseEmailDraftVersioning", "false"); var initialDraft = CreateInitialEmailDraft(db); var email = CreateTestEmail(); controller.SaveDraft(email, initialDraft.Id, "Test", 1); var versionedDraft = db.Contents.FirstOrDefault(c => c.ArchivedFromId == initialDraft.Id); versionedDraft.ShouldBeNull(); }
private IRequestManager SetupRequestManager() { var username = RandomString(); var password = RandomString(); user = CreateUser(username, password); var requestManager = FakeRequestManager.Create(); var membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; var roleProvider = new MockCMSRoleProvider(); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); requestManager.CurrentHttpContext.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); return(requestManager); }
public void ShouldProcessZeroLimitOrgsAsFilled() { var requestManager = FakeRequestManager.Create(); var orgRegLimitConfig = new Organization() { OrganizationName = "MockMasterName", RegistrationTitle = "MockMasterTitle", Location = "MockLocation", RegistrationTypeId = RegistrationTypeCode.JoinOrganization, Limit = 0 }; var fakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, orgRegLimitConfig); OnlineRegModel om = FakeOrganizationUtils.GetFakeOnlineRegModel((int)fakeOrg.org.OrganizationId); om.Filled().ShouldBe("registration is full"); FakeOrganizationUtils.DeleteOrg(fakeOrg.org.OrganizationId); }
public void ShouldDetectDuplicateGift() { var requestManager = FakeRequestManager.Create(); var testOrg = new Organization() { OrganizationName = "MockMasterName", RegistrationTitle = "MockMasterTitle", Location = "MockLocation", RegistrationTypeId = RegistrationTypeCode.JoinOrganization, Limit = 0 }; var org = FakeOrganizationUtils.MakeFakeOrganization(requestManager, testOrg); using (var db = CMSDataContext.Create(DatabaseFixture.Host)) { Transaction t = new Transaction() { TransactionDate = DateTime.Now, First = "Chester", Last = "Tester", Amt = 30, Testing = true, TransactionGateway = "Sage", OrgId = org.org.OrganizationId }; db.Transactions.InsertOnSubmit(t); db.SubmitChanges(); } OnlineRegPersonModel person = new OnlineRegPersonModel(db) { FirstName = "Chester", LastName = "Tester" }; OnlineRegModel om = FakeOrganizationUtils.GetFakeOnlineRegModel(org.org.OrganizationId); om.List = new List <OnlineRegPersonModel>() { person }; om.CheckDuplicateGift(30).ShouldNotBeNull(); FakeOrganizationUtils.DeleteOrg(org.org.OrganizationId); }
public void ShouldCalculateFirstSundayOfTheMonth(int year, int month, string result) { var requestManager = FakeRequestManager.Create(); var VolunteerOrgconfig = new Organization() { OrganizationName = "MockMasterName", RegistrationTitle = "MockMasterTitle", Location = "MockLocation", RegistrationTypeId = RegistrationTypeCode.ChooseVolunteerTimes, }; var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, VolunteerOrgconfig); var m = new VolunteerCommitmentsModel(FakeOrg.org.OrganizationId); var calculatedSunday = m.GetFirstSundayOfTheMonth(year, month); calculatedSunday.ToString("MM/dd/yyyy").ShouldBe(result); FakeOrganizationUtils.DeleteOrg(FakeOrg.org.OrganizationId); }
public void Should_SendAllConfirmations_ToStaff() { db = CMSDataContext.Create(DatabaseFixture.Host); var requestManager = FakeRequestManager.Create(); var controller = new CmsWeb.Areas.OnlineReg.Controllers.OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, new CmsData.Organization() { OrganizationName = RandomString(), RegistrationTitle = RandomString(), Location = RandomString(), RegistrationTypeId = RegistrationTypeCode.JoinOrganization, NotifyIds = "1" }); OrgId = FakeOrg.org.OrganizationId; username = RandomString(); password = RandomString(); var CurrentUser = CreateUser(username, password); EmailAddress = CurrentUser.EmailAddress; Login(); Open($"{rootUrl}OnlineReg/{OrgId}"); WaitForElement("#otheredit", 5); Find(id: "otheredit").Click(); WaitForElement("#submitit", 5); Find(id: "submitit").Click(); WaitForElement("p:nth-child(3) > a", 5); var log = db.ActivityLogs.FirstOrDefault(p => p.OrgId == OrgId & p.Activity.Contains("SentConfirmationsToStaff")); log.ShouldNotBeNull(); }
public void Should_Store_and_Populate_RegEmail() { db = CMSDataContext.Create(DatabaseFixture.Host); var requestManager = FakeRequestManager.Create(); var controller = new CmsWeb.Areas.OnlineReg.Controllers.OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, new CmsData.Organization() { OrganizationName = "MockName", RegistrationTitle = "MockTitle", Location = "MockLocation", RegistrationTypeId = RegistrationTypeCode.JoinOrganization }); OrgId = FakeOrg.org.OrganizationId; username = RandomString(); password = RandomString(); var CurrentUser = CreateUser(username, password); EmailAddress = CurrentUser.EmailAddress; Login(); Open($"{rootUrl}OnlineReg/{OrgId}"); WaitForElement("#otheredit", 5); Find(id: "otheredit").Click(); WaitForElement("#submitit", 5); Find(id: "submitit").Click(); WaitForElement("p:nth-child(3) > a", 5); var RegEmail = db.RecRegs.Where(x => x.PeopleId == CurrentUser.PeopleId).Select(x => x.Email).FirstOrDefault(); RegEmail.ShouldBe(CurrentUser.EmailAddress); }
private void createOrgWithFee() { var requestManager = FakeRequestManager.Create(); var controller = new CmsWeb.Areas.OnlineReg.Controllers.OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, new Organization() { OrganizationName = "MockName", RegistrationTitle = "MockTitle", Location = "MockLocation", RegistrationTypeId = RegistrationTypeCode.JoinOrganization }); OrgId = FakeOrg.org.OrganizationId; }
public void PortraitTest() { Person personWithPortrait = db.People.Where(p => p.PictureId != null).First(); var requestManager = FakeRequestManager.Create(); var membershipProvider = new MockCMSMembershipProvider { ValidUser = false }; var roleProvider = new MockCMSRoleProvider(); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); var controller = new APIPersonController(requestManager); var routeData = new RouteData(); controller.ControllerContext = new ControllerContext(requestManager.CurrentHttpContext, routeData, controller); var result = controller.Portrait(personWithPortrait.Picture.MediumId, 100, 100) as HttpStatusCodeResult; result?.StatusCode.ShouldBe(400); var username = RandomString(); var password = RandomString(); var user = CreateUser(username, password); HttpCookie AuthCookie = new HttpCookie("Authorization"); AuthCookie.Value = BasicAuthenticationString(username, password); AuthCookie.Expires = DateTime.Now.AddMinutes(5); membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; CMSMembershipProvider.SetCurrentProvider(membershipProvider); requestManager.CurrentHttpContext.Request.Cookies.Add(AuthCookie); controller = new APIPersonController(requestManager); routeData = new RouteData(); controller.ControllerContext = new ControllerContext(requestManager.CurrentHttpContext, routeData, controller); result = controller.Portrait(personWithPortrait.Picture.MediumId, 100, 100) as HttpStatusCodeResult; result?.StatusCode.ShouldBe(200); }
public void Relaxed_Questions_Should_Not_Be_Visible() { CMSDataContext db = CMSDataContext.Create(DatabaseFixture.Host); var requestManager = FakeRequestManager.Create(); var controller = new CmsWeb.Areas.OnlineReg.Controllers.OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, new CmsData.Organization() { OrganizationName = "MockName", RegistrationTitle = "MockTitle", Location = "MockLocation", RegistrationTypeId = RegistrationTypeCode.JoinOrganization }); OrgId = FakeOrg.org.OrganizationId; username = RandomString(); password = RandomString(); var user = CreateUser(username, password, roles: new string[] { "Edit", "Access" }); Login(); SettingUtils.UpdateSetting("RelaxedReqAdminOnly", "true"); Open($"{rootUrl}Org/{OrgId}#tab-Registrations-tab"); WaitForElementToDisappear(loadingUI); Find(css: "#Registration > form > div.row > div:nth-child(2) > div > a.btn.edit.ajax.btn-primary").Click(); WaitForElementToDisappear(loadingUI); var inputDOB = Find(id: "ShowDOBOnFind"); inputDOB.ShouldBeNull(); }
protected int CreateOrgWithFee() { var requestManager = FakeRequestManager.Create(); var controller = new CmsWeb.Areas.OnlineReg.Controllers.OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, new Organization() { OrganizationName = "MockName", RegistrationTitle = "MockTitle", Location = "MockLocation", RegistrationTypeId = RegistrationTypeCode.JoinOrganization }); var OrgId = FakeOrg.org.OrganizationId; Open($"{rootUrl}Org/{OrgId}#tab-Registrations-tab"); WaitForElementToDisappear(loadingUI, maxWaitTimeInSeconds: 10); ScrollTo(css: "#Registration > form > h4:nth-child(3)"); Find(css: "#Fees-tab > a").Click(); WaitForElementToDisappear(loadingUI, maxWaitTimeInSeconds: 10); Find(css: "#Fees .row .edit").Click(); WaitForElementToDisappear(loadingUI, maxWaitTimeInSeconds: 10); ScrollTo(id: "Fee"); Find(id: "Fee").Clear(); Find(id: "Fee").SendKeys(RandomNumber(1, 1000).ToString()); Find(css: ".pull-right:nth-child(1) > .validate").Click(); Wait(5); return(OrgId); }
public void authenticateTest(string password) { var username = RandomString(); var requestManager = FakeRequestManager.Create(); var membershipProvider = new MockCMSMembershipProvider(); membershipProvider.ValidUsers.Add(new CmsData.User { Username = username, Password = password }); var roleProvider = new MockCMSRoleProvider(); CreateUser(username, password); requestManager.CurrentHttpContext.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); var mobileAuth = new MobileAuthentication(db, ""); mobileAuth.authenticate(""); mobileAuth.getErrorMessage().ShouldBe("Authenticated"); mobileAuth.hasError().ShouldBeFalse(); }
public void Application_Export_Should_Pull_HoHPeopleID() { var requestManager = FakeRequestManager.Create(); var db = requestManager.CurrentDatabase; var controller = new OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var m = OrganizationModel.Create(db, requestManager.CurrentUser); var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager); var oid = FakeOrg.org.OrganizationId; m.OrgId = oid; var wife = CreateUser(RandomString(), RandomString()); username = RandomString(); password = RandomString(); string roleName = "role_" + RandomString(); var user = CreateUser(username, password, roles: new string[] { "Access", "Edit", "Admin", "Membership" }); Login(); //Create family and then Execute GetCouplesBothList to see if the right HeadOfHouseHoldId is retrieved... var p = CreateFakeFamily(oid, m, controller); var mailingModel = new MailingController(requestManager); var ExcelCouplesBoth = mailingModel.GetCouplesBothList(m.QueryId, 500); //assert //Finalize FakeOrganizationUtils.DeleteOrg(FakeOrg.org.OrganizationId); RemoveFakePeopleFromDB(ToPeople(ExcelCouplesBoth), db); Logout(); }
public void AuthenticatedLinkTest() { var username = RandomString(); var password = RandomString(); var user = CreateUser(username, password); var requestManager = FakeRequestManager.Create(); var membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; var roleProvider = new MockCMSRoleProvider(); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); db.OrganizationMembers.InsertOnSubmit(new OrganizationMember { Organization = db.Organizations.First(), Person = user.Person, MemberTypeId = MemberTypeCode.Member }); db.SubmitChanges(); requestManager.CurrentHttpContext.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); var controller = new MobileAPIv2Controller(requestManager); var message = new MobileMessage { device = (int)MobileMessage.Device.ANDROID, argString = $"/Person2/{user.PeopleId}/Resources" }; var data = message.ToString(); var result = controller.AuthenticatedLink(data) as MobileMessage; var token = db.OneTimeLinks .Where(t => t.Querystring == username && t.Expires < DateTime.Now.AddMinutes(16)) .OrderByDescending(t => t.Expires).First().Id.ToCode(); result.ShouldNotBeNull(); result.error.ShouldBe(0); result.data.ShouldEndWith($"/Logon?otltoken={token}&ReturnUrl=%2fPerson2%2f{user.PeopleId}%2fResources%3fsource%3dAndroid"); }
public void InvolvementList_Should_Have_FamilyId() { var requestManager = FakeRequestManager.Create(); var db = requestManager.CurrentDatabase; var controller = new CmsWeb.Areas.OnlineReg.Controllers.OnlineRegController(requestManager); var routeDataValues = new Dictionary <string, string> { { "controller", "OnlineReg" } }; controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var m = OrganizationModel.Create(db, requestManager.CurrentUser); var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager); var model = FakeOrganizationUtils.GetFakeOnlineRegModel(FakeOrg.org.OrganizationId); m.OrgId = FakeOrg.org.OrganizationId; var resultSubmitQuestions = controller.SubmitQuestions(0, model); var resultCompleteRegistration = controller.CompleteRegistration(model); var TestInvolvementList = ExportInvolvements.InvolvementList(m.QueryId); var pkg = typeof(EpplusResult).GetField("pkg", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(TestInvolvementList); using (ExcelPackage package = (ExcelPackage)pkg) { ExcelWorksheet worksheet = package.Workbook.Worksheets[1]; object[,] cellValues = (object[, ])worksheet.Cells.Value; List <string> ReportColumns = cellValues.Cast <object>().ToList().ConvertAll(x => Convert.ToString(x)); var FamilyId = worksheet.Cells[1, 2].Value.ToString().Trim(); ReportColumns.ShouldContain("FamilyId"); FamilyId.ShouldBe("FamilyId"); } FakeOrganizationUtils.DeleteOrg(FakeOrg.org.OrganizationId); }
public void AuthenticateMobileWithUsernameAndPasswordTest() { var username = RandomString(); var password = RandomString(); var user = CreateUser(username, password); var requestManager = FakeRequestManager.Create(); var db = requestManager.CurrentDatabase; var idb = requestManager.CurrentImageDatabase; requestManager.CurrentHttpContext.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); var membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; var roleProvider = new MockCMSRoleProvider(); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); var result = AccountModel.AuthenticateMobile(db, idb); result.ErrorMessage.ShouldBeNullOrEmpty(); result.IsValid.ShouldBeTrue(); result.Status.ShouldBe(UserValidationStatus.Success); }
public void TestOrgGroupsMethods() { var controller = new OrgGroupsController(FakeRequestManager.Create()); var routeDataValues = new Dictionary <string, string>(); controller.ControllerContext = ControllerTestUtils.FakeControllerContext(controller, routeDataValues); var db = DatabaseFixture.NewDbContext(); var groupNames = new [] { "Test Group", "Another Name", "Yet Another" }; var memtags = db.OrgMemMemTags.Where(nn => groupNames.Contains(nn.MemberTag.Name)); db.OrgMemMemTags.DeleteAllOnSubmit(memtags); var groups = db.MemberTags.Where(nn => groupNames.Contains(nn.Name)); db.MemberTags.DeleteAllOnSubmit(groups); var org = db.LoadOrganizationByName("App Testing Org"); var m = new OrgGroupsModel(db, org.OrganizationId); // MakeNewGroup m.GroupName = groupNames[0]; var r = controller.MakeNewGroup(m); r.ShouldBeOfType <RedirectResult>(); var g = db.MemberTags.SingleOrDefault(gg => gg.Name == groupNames[0]); g.ShouldNotBeNull(); // MakeLeaderOfTargetGroup const int pid = 2; // David Carroll m.List.Add(pid); r = controller.MakeLeaderOfTargetGroup(m); r.ShouldBeOfType <ViewResult>(); var mt = db.OrgMemMemTags.SingleOrDefault(gg => gg.OrgId == org.OrganizationId && gg.PeopleId == pid); mt.ShouldNotBeNull(); // RemoveAsLeaderOfTargetGroup db = DatabaseFixture.NewDbContext(); r = controller.RemoveAsLeaderOfTargetGroup(m); r.ShouldBeOfType <ViewResult>(); mt = db.OrgMemMemTags.SingleOrDefault(gg => gg.OrgId == org.OrganizationId && gg.PeopleId == pid); Assert.NotNull(mt); mt.IsLeader.ShouldBe(false); // RemoveSelectedFromTargetGroup r = controller.RemoveSelectedFromTargetGroup(m); r.ShouldBeOfType <ViewResult>(); mt = db.OrgMemMemTags.SingleOrDefault(gg => gg.OrgId == org.OrganizationId && gg.PeopleId == pid); mt.ShouldBeNull(); // RenameGroup m.GroupName = groupNames[1]; r = controller.RenameGroup(m); r.ShouldBeOfType <RedirectResult>(); g = db.MemberTags.SingleOrDefault(gg => gg.OrgId == org.OrganizationId && gg.Name == groupNames[1]); Assert.NotNull(g); g.Name.ShouldBe(groupNames[1]); // EditGroup m.GroupName = groupNames[2]; m.CheckInCapacityDefault = 10; r = controller.EditGroup(m); r.ShouldBeOfType <RedirectResult>(); db = DatabaseFixture.NewDbContext(); g = db.MemberTags.SingleOrDefault(gg => gg.OrgId == org.OrganizationId && gg.Name == groupNames[2]); Assert.NotNull(g); g.Name.ShouldBe(groupNames[2]); g.CheckInCapacityDefault.ShouldBe(10); // DeleteGroup m.GroupName = groupNames[2]; r = controller.DeleteGroup(m); r.ShouldBeOfType <RedirectResult>(); g = db.MemberTags.SingleOrDefault(gg => gg.OrgId == org.OrganizationId && gg.Name == groupNames[2]); g.ShouldBeNull(); // todo: to complete the remaining methods // DeleteGroups // UpdateScore // UploadScores // SwapPlayers // CreateTeams // AssignSelectedToTargetGroup // ToggleCheckin }
public void Application_Report_Should_Have_Awnsers() { driver.Manage().Window.Maximize(); var requestManager = FakeRequestManager.Create(); var Orgconfig = new Organization() { OrganizationName = "MockName", RegistrationTitle = "MockTitle", Location = "MockLocation", RegistrationTypeId = 1 }; var FakeOrg = FakeOrganizationUtils.MakeFakeOrganization(requestManager, Orgconfig); OrgId = FakeOrg.org.OrganizationId; var NewSpecialContent = SpecialContentUtils.CreateSpecialContent(0, "MembershipApp2017", null); SepacialContentId = NewSpecialContent.Id; SpecialContentUtils.UpdateSpecialContent(NewSpecialContent.Id, "MembershipApp2017", "MembershipApp2017", GetValidHtmlContent(), false, null, "", null); username = RandomString(); password = RandomString(); string roleName = "role_" + RandomString(); var user = CreateUser(username, password, roles: new string[] { "Access", "Edit", "Admin", "Membership" }); Login(); /* * Using WaitForElement() doesn't work in this test * WaitForElement() only makes the duration of loading spinner longer * and causes a "reference not set to an instance of an object" error in the Find() functions below */ Open($"{rootUrl}Org/{OrgId}#tab-Registrations-tab"); WaitForElementToDisappear(loadingUI, 30); ScrollTo(css: "#Questions-tab > .ajax"); Find(css: "#Questions-tab > .ajax").Click(); WaitForElementToDisappear(loadingUI); Find(css: ".col-sm-12 .edit").Click(); WaitForElementToDisappear(loadingUI); Find(css: ".pull-right > .btn-success:nth-child(2)").Click(); Wait(1); Find(css: ".AskText > a").Click(); WaitForElement("#QuestionList > div.type-AskText"); Find(css: ".modal-footer > .btn-primary:nth-child(1)").Click(); var swal = ".sweet-alert.visible"; WaitForElement(swal); Find(xpath: "//button[contains(.,'Yes, Add Questions')]").Click(); WaitForElementToDisappear(".sweet-overlay"); Find(css: "#QuestionList > div.type-AskText a.btn.btn-success").Click(); WaitForElementToDisappear(loadingUI); var input = "div.ask-texts > div.well.movable > div.form-group > div.controls > input.form-control:nth-child(1)"; WaitForElement(input); var InputAskItem = Find(css: input); InputAskItem.Clear(); InputAskItem.SendKeys("Vow 1 reads: \"Do you acknowledge yourself to be a sinner in the sight of God, justly deserving his displeasure and without hope except through his sovereign mercy?\""); Find(css: ".ask-texts > .well").Click(); WaitForElementToDisappear(loadingUI); ScrollTo(css: "#Questions-tab > .ajax"); Find(xpath: "(//a[contains(text(),'Save')])[3]").Click(); WaitForElementToDisappear(loadingUI); Open($"{rootUrl}OnlineReg/{OrgId}"); var InputField = Find(id: "List0.Text0_0"); InputField.Clear(); InputField.SendKeys("ThisTextMustAppearInTests"); Find(id: "otheredit").Click(); WaitForElement("#submitit", 5); Find(id: "submitit").Click(); Wait(2); Open($"{rootUrl}Reports/Application/{OrgId}/{user.PeopleId}/MembershipApp2017"); WaitForElement("h2", 5); PageSource.ShouldContain("ThisTextMustAppearInTests"); }