Пример #1
0
        public void TerminateStudy()
        {
            // use STUDY00000024 as template
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000024", targetStudy);

            var ActionsNav     = new ActivitiesNav();
            var TerminatePopup = new Terminate("STUDY-" + targetStudy, "Terminate");
            var Inbox          = new Inbox();

            Store.LoginAsUser(Users.Irbd);
            ActionsNav.LnkSubmissions.Click();
            Inbox.LnkAdvanced.Click();
            Wait.Until(h => Inbox.QueryField1.Displayed);
            Inbox.QueryField1.SelectByInnerText("Name");
            Wait.Until(h => Inbox.QueryCriteria1.Enabled);
            Inbox.QueryCriteria1.Text = targetStudy;
            Wait.Until(d => Inbox.BtnGo.Enabled);
            Inbox.BtnGo.Click();
            Wait.Until(d => Inbox.BtnGo.Enabled);

            var studyForReview = new CCElement(By.LinkText(targetStudy));

            studyForReview.Click();
            ActionsNav.LnkTerminate.Click();
            TerminatePopup.SwitchTo();
            TerminatePopup.TxtComments.Value = "Terminating this study for automation!";
            TerminatePopup.BtnOk.Click();
            TerminatePopup.SwitchBackToParent();

            Wait.Until(h => new CCElement(By.LinkText("Terminated")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Terminated")).Exists, "'Terminated' activity not found for:  " + targetStudy);
        }
Пример #2
0
        public void AssignIRB()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000017", targetStudy);

            var ActionsNav    = new ActivitiesNav();
            var AssignIRBPage = new AssignIRB("STUDY-" + targetStudy, "Assign IRB");

            Store.LoginAsUser(Users.Irbd);

            var studyForReview = new CCElement(By.LinkText(targetStudy));

            studyForReview.Click();

            ActionsNav.LnkAssignIRB.Click();

            AssignIRBPage.SwitchTo();
            AssignIRBPage.SelIrbOffice.SelectOption("IRB 1");
            AssignIRBPage.BtnOk.Click();
            //AssignIRBPage.SwitchBackToParent();
            PopUpWindow.SwitchTo(targetStudy);

            Wait.Until(h => new CCElement(By.LinkText("Assigned IRB office")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Assigned IRB office")).Exists, "Assigned IRB office not found for:  " + targetStudy);
        }
Пример #3
0
        // helper methods for frequently used operations

        public string GetStudyID()
        {
            CCElement container = new CCElement(By.Id("__IRBSubmission.ID_container"));
            CCElement ID        = container.GetDescendant((".//span[3]"));

            return(ID.Text);
        }
Пример #4
0
        public void AssignPrimaryContact()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000017", targetStudy);

            var ActionsNav       = new ActivitiesNav();
            var workspace        = new IRBWorkspace();
            var SelectPersonPage = new SelectPerson("Person");

            Store.LoginAsUser(Users.Irbd);

            var studyForReview = new CCElement(By.LinkText(targetStudy));

            studyForReview.Click();
            var assignPrimaryContact = new AssignPrimaryContact(workspace.GetStudyID(), "Assign Primary Contact");

            ActionsNav.LnkAssignPrimaryContact.Click();
            assignPrimaryContact.SwitchTo();
            PopUpWindow.SwitchTo("Execute \"Assign Primary Contact\"", true);
            assignPrimaryContact.SelectPrimaryContact("Bivens (pi2)");

            PopUpWindow.SwitchTo(targetStudy);
            Wait.Until(h => new CCElement(By.LinkText("Assigned Primary Contact")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Assigned Primary Contact")).Exists, "Assigned primary contact not found for:  " + targetStudy);
        }
Пример #5
0
        private void createAddActionForSnapshot(ChangeGroup snapshotGroup, string localPath, bool isDirectory)
        {
            string    serverPath = m_clearCaseServer.GetServerPathFromViewLocalPath(localPath);
            CCElement element    = null;

            try
            {
                element = m_clearCaseServer.ApplicationClass.get_Element(serverPath);
            }
            catch (ArgumentException)
            {
                TraceManager.TraceWarning(String.Format("Unable to get ClearCase Element corresponding to local path: '{0}'", localPath));
                return;
            }
            snapshotGroup.CreateAction(
                WellKnownChangeActionId.Add,
                new ClearCaseMigrationItem(
                    m_clearCaseServer.ViewName,
                    element.Version.ExtendedPath,
                    isDirectory),
                null,
                serverPath,
                null,
                null,
                isDirectory ? WellKnownContentType.VersionControlledFolder.ReferenceName : WellKnownContentType.VersionControlledFile.ReferenceName,
                null);
        }
Пример #6
0
        public void ManageGuestList()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000017", targetStudy);

            var ActionsNav = new ActivitiesNav();
            var ManageGuestListPagePopup = new ManageGuestList("STUDY-" + targetStudy, "Manage Guest List");
            var SelectPersonsPage        = new ChooserPopup("Persons", true);

            Store.LoginAsUser(Users.Irbd);

            var studyForReview = new CCElement(By.LinkText(targetStudy));

            studyForReview.Click();

            ActionsNav.LnkManageGuestList.Click();
            ManageGuestListPagePopup.SwitchTo();
            ManageGuestListPagePopup.BtnAddGuest.Click();

            SelectPersonsPage.SwitchTo();
            SelectPersonsPage.SelectValue("Jones (irbc2)", "Last");
            SelectPersonsPage.BtnOk.Click();
            SelectPersonsPage.SwitchBackToParent();

            ManageGuestListPagePopup.BtnOk.Click();
            ManageGuestListPagePopup.SwitchBackToParent();

            Wait.Until(h => new CCElement(By.LinkText("Guest List Updated")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Guest List Updated")).Exists, "'Guest List Updated' activity not found for:  " + targetStudy);
        }
        public T GetChildElementByXPath <T>(String xpath)
            where T : PageElement, new()
        {
            var baseElement = new CCElement(By.XPath(XpathPrefix + xpath));
            var pageElement = new T {
                BaseElement = baseElement
            };

            return(pageElement);
        }
Пример #8
0
        //public CCElement DivProjectListing = new CCElement(By.Id("component3A410C7E87F5F749BC8AD015360F38AB"));

        /// <summary>
        /// Opens a submission by navigating to all submissions tab
        /// </summary>
        /// <param name="name"></param>
        /// <param name="partialMatch"></param>
        public void OpenSubmission(string name, bool partialMatch = false)
        {
            if (partialMatch)
            {
                Wait.Until(h => new CCElement(By.PartialLinkText(name)).Exists);
                var targetLink = new CCElement(By.PartialLinkText(name));
                targetLink.Click();
            }
            else
            {
                Wait.Until(h => new CCElement(By.PartialLinkText(name)).Exists);
                var targetLink = new CCElement(By.LinkText(name));
                targetLink.Click();
            }
        }
Пример #9
0
 public void OpenStudy(string name, bool partialMatch = false)
 {
     if (partialMatch)
     {
         var targetLink = new CCElement(By.PartialLinkText(name));
         targetLink.Click();
         Wait.Until(h => Web.PortalDriver.Title == name);
     }
     else
     {
         var targetLink = new CCElement(By.LinkText(name));
         targetLink.Click();
         Wait.Until(h => Web.PortalDriver.Title == name);
     }
 }
        public void SelectOrganization(string orgName)
        {
            IEnumerable <CCElement> buttons = ReviewPersonContainer.GetDescendants(".//td[3]/span/input");
            CCElement BtnSelectOrg          = buttons.FirstOrDefault(h => h.GetAttributeValue("type") == "button");

            if (BtnSelectOrg != null)
            {
                Trace.WriteLine("Clicking on Select Organization...");
                BtnSelectOrg.Click();
            }
            SelectOrgPage.SwitchTo();
            SelectOrgPage.SelectValue("Immunology");
            SelectOrgPage.BtnOk.Click();
            SelectOrgPage.SwitchBackToParent();
        }
        /// <summary>
        /// Does not support projects yet TODO
        /// </summary>
        /// <param name="category"></param>
        /// <param name="firstName"></param>
        /// <param name="lastName"></param>
        /// <param name="organization"></param>
        public void Search(FastFind.SearchCategory category, string firstName = "", string lastName = "", string organization = "")
        {
            //FastFindCell.Click();
            //LnkFastFind.Click();
            this.SwitchToFrame();

            CCElement element = new CCElement(By.LinkText("Projects"));

            LnkFastFindId.Click();

            //JavascriptExecutor.Execute("document.getElementById('TabLink2').click();");

            switch (category)
            {
            case SearchCategory.Contacts:
            {
                SelSearchType.SelectOption("Contacts");
                TxtOrganization.Value     = organization;
                TxtContactFirstName.Value = firstName;
                TxtContactLastName.Value  = lastName;
                BtnFindNow.Click();
                Wait.Until(d => BtnFindNow.Enabled);
                break;
            }

            case SearchCategory.Organizations:
            {
                SelSearchType.SelectOption("Organizations");
                TxtOrganization.Value     = organization;
                TxtContactFirstName.Value = firstName;
                TxtContactLastName.Value  = lastName;
                BtnFindNow.Click();
                Wait.Until(d => BtnFindNow.Enabled);
                break;
            }

            case SearchCategory.Projects:
                // TODO implement this
            {
                throw new NotImplementedException();
            }
            }
        }
Пример #12
0
        public void CopySubmission()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000017", targetStudy);

            var ActionsNav         = new ActivitiesNav();
            var CopySubmissionPage = new CopySubmission("STUDY-" + targetStudy, "Copy Submission");

            //var CopySubmissionPage = new CopySubmission("STUDY-AutoTest-iyULl", "Copy Submission");

            Store.LoginAsUser(Users.Irbd);

            var studyForReview = new CCElement(By.LinkText(targetStudy));

            studyForReview.Click();

            string copyId = "Auto-SubmissionCopy" + DataGen.String(5);

            ActionsNav.LnkCopySubmission.Click();
            CopySubmissionPage.SwitchTo();
            CopySubmissionPage.TxtNewSubmissionName.Value = copyId;
            CopySubmissionPage.BtnOk.Click();
            CopySubmissionPage.SwitchBackToParent();

            Wait.Until(h => new CCElement(By.LinkText("Copied Submission")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Copied Submission")).Exists, "Copied Submission not found for:  " + targetStudy);

            // Move this validation logic to page object
            Container divContainer = new Container(By.XPath("//div[@class='Component_ProjectLog_Notes'][\"Auto-SubmissionCopy\"]"));
            int       i            = 0;
            const int maxRetries   = 15;

            while (!(divContainer.Text.Contains(copyId)) && i < maxRetries)
            {
                System.Threading.Thread.Sleep(1000);
                // have to manually refresh
                Web.PortalDriver.Navigate().Refresh();
                i++;
            }
            Assert.IsTrue(divContainer.Text.Contains(copyId), "Cannot find the 'submission copy':  " + copyId);
        }
Пример #13
0
        public void AddRelatedGrant()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000017", targetStudy);

            var ActionsNav             = new ActivitiesNav();
            var AddRelatedGrantPopup   = new AddRelatedGrant("STUDY-" + targetStudy, "Add Related Grant");
            var ClickIRBGrantInfoPopup = new AddClickIRBGrantInfo();
            var Inbox = new Inbox();

            //var SelectPersonsPage = new ChooserPopup("Persons", true);

            Store.LoginAsUser(Users.Irbd);
            ActionsNav.LnkSubmissions.Click();
            Inbox.LnkAdvanced.Click();
            Wait.Until(h => Inbox.QueryField1.Displayed);
            Inbox.QueryField1.SelectByInnerText("Name");
            Wait.Until(h => Inbox.QueryCriteria1.Enabled);
            Inbox.QueryCriteria1.Text = targetStudy;
            Wait.Until(d => Inbox.BtnGo.Enabled);
            Inbox.BtnGo.Click();
            Wait.Until(d => Inbox.BtnGo.Enabled);

            var studyForReview = new CCElement(By.LinkText(targetStudy));

            studyForReview.Click();

            ActionsNav.LnkAddRelatedGrant.Click();
            AddRelatedGrantPopup.SwitchTo();
            AddRelatedGrantPopup.BtnAdd.Click();
            ClickIRBGrantInfoPopup.SwitchTo();
            ClickIRBGrantInfoPopup.TxtGrantId.Value    = "Grant-" + DataGen.String(4);
            ClickIRBGrantInfoPopup.TxtGrantTitle.Value = "Grant Title Automation Test" + DataGen.String(4);
            ClickIRBGrantInfoPopup.BtnOk.Click();
            ClickIRBGrantInfoPopup.SwitchBackToParent();
            AddRelatedGrantPopup.BtnOk.Click();
            AddRelatedGrantPopup.SwitchBackToParent();

            Wait.Until(h => new CCElement(By.LinkText("Related Grants Updated")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Related Grants Updated")).Exists, "'Related Grants Updated' activity not found for:  " + targetStudy);
        }
Пример #14
0
 public void OpenSubmissionByAllSubmissions(string name, bool partialMatch = false)
 {
     this.AllSubmissionsTab.NavigateTo();
     this.AllSubmissionsTab.ProjectsComponent.LnkAdvanced.Click();
     this.AllSubmissionsTab.ProjectsComponent.SetCriteria("Name", name);
     if (partialMatch)
     {
         Wait.Until(h => new CCElement(By.PartialLinkText(name)).Exists);
         var targetLink = new CCElement(By.PartialLinkText(name));
         targetLink.Click();
         Wait.Until(h => Web.PortalDriver.Title == name);
     }
     else
     {
         Wait.Until(h => new CCElement(By.LinkText(name)).Exists);
         var targetLink = new CCElement(By.LinkText(name));
         targetLink.Click();
         Wait.Until(h => Web.PortalDriver.Title == name);
     }
 }
Пример #15
0
        public void ManageAncillaryReviews()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000017", targetStudy);

            var ActionsNav = new ActivitiesNav();
            var ManageAncillaryReviewsPage = new ManageAncillaryReviews("STUDY-" + targetStudy, "Manage Ancillary Reviews");
            var SelectPersonPage           = new SelectPerson("Person");
            var AddAncillaryReviewPage     = new AddAncillaryReview();

            Store.LoginAsUser(Users.Irbd);

            var studyForReview = new CCElement(By.LinkText(targetStudy));

            studyForReview.Click();

            ActionsNav.LnkManageAncillaryReviews.Click();
            ManageAncillaryReviewsPage.SwitchTo();
            ManageAncillaryReviewsPage.BtnAdd.Click();
            AddAncillaryReviewPage.SwitchTo();
            AddAncillaryReviewPage.SelectPerson("Max (irbc)");
            //AddAncillaryReviewPage.BtnSelectPerson.Click();
            //SelectPersonPage.SwitchTo();
            //SelectPersonPage.SelectFirstUser();
            //PopUpWindow.SwitchTo("Add Ancillary Review",true);
            AddAncillaryReviewPage.SelReviewType.SelectOption("Faculty");
            AddAncillaryReviewPage.RdoResponseRequiredNo.Click();
            AddAncillaryReviewPage.BtnOk.Click();
            PopUpWindow.SwitchTo("Manage Ancillary Review", true);
            ManageAncillaryReviewsPage.BtnOk.Click();
            PopUpWindow.SwitchTo(targetStudy);

            Wait.Until(h => new CCElement(By.LinkText("Managed Ancillary Reviews")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Managed Ancillary Reviews")).Exists, "Managed Ancillary Reviews not found for:  " + targetStudy);
        }
Пример #16
0
        public void AddPrivateComment()
        {
            string targetStudy = "AutoTest-" + DataGen.String(5);

            CloneEntity("STUDY00000017", targetStudy);

            var ActionsNav             = new ActivitiesNav();
            var AddPrivateCommentsPage = new AddPrivateComments("STUDY-" + targetStudy, "Add Private Comment");

            Store.LoginAsUser(Users.Irbd);

            var studyForReview = new CCElement(By.LinkText(targetStudy));

            studyForReview.Click();

            ActionsNav.LnkAddPrivateComment.Click();
            AddPrivateCommentsPage.SwitchTo();
            AddPrivateCommentsPage.TxtComment.Value = "This is a private comment";
            AddPrivateCommentsPage.BtnOk.Click();
            AddPrivateCommentsPage.SwitchBackToParent();

            Wait.Until(h => new CCElement(By.LinkText("Private Comment Added")).Exists);
            Assert.IsTrue(new CCElement(By.LinkText("Private Comment Added")).Exists, "Private Comment Added not found for:  " + targetStudy);
        }
Пример #17
0
        public string GetStudyState()
        {
            CCElement target = StudyStateContainer.GetDescendant(".//span[3]");

            return(target.Text);
        }