public void ClickOnDetailsTab()
 {
     if (FeedTab.Enabled)
     {
         DetailsTab.Click();
     }
     else
     {
         throw new Exception("Details tab is not found or not clickable");
     }
 }
Exemplo n.º 2
0
 public void ClickOnDetailsTab()
 {
     if (DetailsTab.Displayed)
     {
         DetailsTab.Click();
     }
     else
     {
         throw new Exception("Element is not found or not clickable");
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// Clicks the user-specified element, and then waits for a window to close or open, or a page to load, depending on the element that was clicked
        /// </summary>
        /// <param name="buttonOrLinkElem">The element to click on</param>
        public dynamic ClickAndWait(IWebElement buttonOrLinkElem)
        {
            // Error handler to make sure that the button that the tester passed in the parameter is actually on the page
            if (Browser.Exists(Bys.ActivityMainPage.PubDetailsTab))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == PubDetailsTab.GetAttribute("outerHTML"))
                {
                    //   buttonOrLinkElem.Click();
                    JavascriptUtils.Click(Browser, buttonOrLinkElem);

                    this.WaitUntil(Criteria.ActivityMainPage.PubDetailsTabAvailCatTblVisible);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ActivityMainPage.DetailsTab))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == DetailsTab.GetAttribute("outerHTML"))
                {
                    JavascriptUtils.Click(Browser, buttonOrLinkElem);
                    this.WaitUntil(Criteria.ActivityMainPage.PageReady);
                    return(null);
                }
            }


            if (Browser.Exists(Bys.ActivityMainPage.PubDetailsTabAvailCatSearchBtn))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == PubDetailsTabAvailCatSearchBtn.GetAttribute("outerHTML"))
                {
                    buttonOrLinkElem.Click();
                    this.WaitUntil(Criteria.ActivityMainPage.PubDetailsTabAvailCatTblSearchCatLoadElemVisible);
                    this.WaitUntil(Criteria.ActivityMainPage.PubDetailsTabAvailCatTblSearchCatLoadElemNotVisible);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ActivityMainPage.DetailsTabUnPublishBtn))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == DetailsTabUnPublishBtn.GetAttribute("outerHTML"))
                {
                    buttonOrLinkElem.Click();
                    Browser.WaitForElement(Bys.ActivityMainPage.DetailsTabUnPublishConfirmBtn, ElementCriteria.IsVisible);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ActivityMainPage.DetailsTabUnPublishConfirmBtn))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == DetailsTabUnPublishConfirmBtn.GetAttribute("outerHTML"))
                {
                    buttonOrLinkElem.Click();
                    Browser.WaitForElement(Bys.ActivityMainPage.DetailsTabSavebtn, ElementCriteria.IsVisible);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ActivityMainPage.DetailsTabPublishbtn))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == DetailsTabPublishbtn.GetAttribute("outerHTML"))
                {
                    buttonOrLinkElem.Click();
                    Browser.WaitForElement(Bys.ActivityMainPage.DetailsTabPublishConfirmbtn, ElementCriteria.IsVisible);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ActivityMainPage.DetailsTabPublishConfirmbtn))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == DetailsTabPublishConfirmbtn.GetAttribute("outerHTML"))
                {
                    buttonOrLinkElem.Click();
                    Browser.WaitForElement(Bys.ActivityMainPage.DetailsTabUnPublishBtn, ElementCriteria.IsVisible);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ActivityMainPage.DetailsTabSavebtn))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == DetailsTabSavebtn.GetAttribute("outerHTML"))
                {
                    DetailsTabSavebtn.Click();
                    // ToDo: Need to add some type of wait criteria here. A test failed in firefox once so far because a 1 second wait wasnt long enough
                    Thread.Sleep(2500);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ActivityMainPage.EditPortalFormSaveBtn))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == EditPortalFormSaveBtn.GetAttribute("outerHTML"))
                {
                    EditPortalFormSaveBtn.Click();
                    this.WaitUntil(Criteria.ActivityMainPage.EditPortalFormCustomFeeTxtNotVisible);
                    return(null);
                }
            }

            else
            {
                throw new Exception("No button or link was found with your passed parameter. You either need to add this button to a new If statement, " +
                                    "or if the button is already added, then the page you were on did not contain the button.");
            }

            return(null);
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        Master.SelectedTab = tabID.tabLogbook;

        if (!IsPostBack)
        {
            try
            {
                if (Request.PathInfo.Length > 0)
                {
                    try { CurrentFlightID = Convert.ToInt32(Request.PathInfo.Substring(1), CultureInfo.InvariantCulture); }
                    catch (FormatException) { CurrentFlightID = LogbookEntry.idFlightNone; }
                }
                if (CurrentFlightID == LogbookEntry.idFlightNone)
                {
                    throw new MyFlightbookException("No valid ID passed");
                }

                string szFQParam = util.GetStringParam(Request, "fq");
                if (!String.IsNullOrEmpty(szFQParam))
                {
                    try
                    {
                        Restriction = FlightQuery.FromBase64CompressedJSON(szFQParam);
                        Restriction.Refresh();
                    }
                    catch (ArgumentNullException) { }
                    catch (FormatException) { }
                    catch (JsonSerializationException) { }
                    catch (JsonException) { }
                }

                DetailsTab dtRequested = DetailsTab.Flight;
                if (Enum.TryParse <DetailsTab>(util.GetStringParam(Request, "tabID"), out dtRequested))
                {
                    int iTab = (int)dtRequested;
                    if (AccordionCtrl.Panes[iTab].Visible)
                    {
                        AccordionCtrl.SelectedIndex = iTab;
                    }
                }

                LogbookEntryDisplay led = CurrentFlight = LoadFlight(CurrentFlightID);
                SetUpChart(TelemetryData);
                UpdateChart();
                UpdateRestriction();

                if (Viewer.CloudAhoyToken == null || Viewer.CloudAhoyToken.AccessToken == null)
                {
                    lnkSendCloudAhoy.Visible = false;
                }

                lblOriginalFormat.Text = DataSourceType.DataSourceTypeFromFileType(led.Telemetry.TelemetryType).DisplayName;

                // allow selection of units if units are not implicitly known.
                switch (led.Telemetry.TelemetryType)
                {
                case DataSourceType.FileType.GPX:
                case DataSourceType.FileType.KML:
                case DataSourceType.FileType.NMEA:
                case DataSourceType.FileType.IGC:
                    cmbAltUnits.Enabled = cmbSpeedUnits.Enabled = false;
                    break;

                default:
                    cmbAltUnits.Enabled = cmbSpeedUnits.Enabled = true;
                    break;
                }

                // Bind details - this will bind everything else.
                fmvLE.DataSource = new LogbookEntryDisplay[] { led };
                fmvLE.DataBind();

                // shouldn't happen but sometimes does: GetUserAircraftByID returns null.  Not quite sure why.
                Aircraft ac = (new UserAircraft(led.User).GetUserAircraftByID(led.AircraftID)) ?? new Aircraft(led.AircraftID);
                fmvAircraft.DataSource = new Aircraft[] { ac };
                fmvAircraft.DataBind();

                if (String.IsNullOrEmpty(CurrentFlight.FlightData) && dtRequested != DetailsTab.Aircraft && dtRequested != DetailsTab.Flight)
                {
                    AccordionCtrl.SelectedIndex = (int)DetailsTab.Flight;
                }
            }
            catch (MyFlightbookException ex)
            {
                lblPageErr.Text       = ex.Message;
                AccordionCtrl.Visible = mfbGoogleMapManager1.Visible = pnlMap.Visible = pnlAccordionMenuContainer.Visible = pnlFlightDesc.Visible = false;
                return;
            }

            // for debugging, have a download option that skips all the rest
            if (util.GetIntParam(Request, "d", 0) != 0 && !String.IsNullOrEmpty(CurrentFlight.FlightData))
            {
                Response.Clear();
                Response.ContentType = "application/octet-stream";
                // Give it a name that is the brand name, user's name, and date.  Convert spaces to dashes, and then strip out ANYTHING that is not alphanumeric or a dash.
                string szFilename    = String.Format(CultureInfo.InvariantCulture, "Data{0}-{1}-{2}", Branding.CurrentBrand.AppName, MyFlightbook.Profile.GetUser(Page.User.Identity.Name).UserFullName, DateTime.Now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)).Replace(" ", "-");
                string szDisposition = String.Format(CultureInfo.InvariantCulture, "inline;filename={0}.csv", System.Text.RegularExpressions.Regex.Replace(szFilename, "[^0-9a-zA-Z-]", ""));
                Response.AddHeader("Content-Disposition", szDisposition);
                Response.Write(CurrentFlight.FlightData);
                Response.End();
                return;
            }
        }
        else
        {
            m_fd.Data = TelemetryData;
            UpdateChart();
        }

        if (Restriction != null && !Restriction.IsDefault)
        {
            mfbFlightContextMenu.EditTargetFormatString = mfbFlightContextMenu.EditTargetFormatString + "?fq=" + HttpUtility.UrlEncode(Restriction.ToBase64CompressedJSONString());
        }
        mfbFlightContextMenu.Flight = CurrentFlight;

        cmbAltUnits.SelectedValue   = ((int)m_fd.AltitudeUnits).ToString(CultureInfo.InvariantCulture);
        cmbSpeedUnits.SelectedValue = ((int)m_fd.SpeedUnits).ToString(CultureInfo.InvariantCulture);
        if (!m_fd.HasDateTime)
        {
            lnkSendCloudAhoy.Visible = false;
        }

        // Set up any maps.
        mfbGoogleMapManager1.Map.Airports    = RoutesList.Result;
        mfbGoogleMapManager1.ShowMarkers     = true;
        mfbGoogleMapManager1.Map.PathVarName = PathLatLongArrayID;
        mfbGoogleMapManager1.Map.Path        = m_fd.GetPath();
        if (m_fd.HasLatLongInfo && m_fd.Data.Rows.Count > 1)
        {
            cmbFormat.Items[(int)DownloadFormat.KML].Enabled = true;
            cmbFormat.Items[(int)DownloadFormat.GPX].Enabled = true;
            mfbGoogleMapManager1.Mode = MyFlightbook.Mapping.GMap_Mode.Dynamic;
            pnlMapControls.Visible    = true;
        }
        else
        {
            cmbFormat.Items[(int)DownloadFormat.KML].Enabled = false;
            cmbFormat.Items[(int)DownloadFormat.GPX].Enabled = false;
            mfbGoogleMapManager1.Mode = MyFlightbook.Mapping.GMap_Mode.Static;
            pnlMapControls.Visible    = false;
        }
        lnkZoomToFit.NavigateUrl = mfbGoogleMapManager1.ZoomToFitScript;
    }
Exemplo n.º 5
0
    protected static bool TabIndexRequiresFlightData(int iTab)
    {
        DetailsTab dt = (DetailsTab)iTab;

        return(dt != DetailsTab.Flight && dt != DetailsTab.Aircraft);
    }
Exemplo n.º 6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Master.SelectedTab = tabID.tabLogbook;
        Master.Layout      = MasterPage.LayoutMode.Accordion;

        if (!IsPostBack)
        {
            try
            {
                if (Request.PathInfo.Length > 0)
                {
                    try { CurrentFlightID = Convert.ToInt32(Request.PathInfo.Substring(1), CultureInfo.InvariantCulture); }
                    catch (FormatException) { CurrentFlightID = LogbookEntry.idFlightNone; }
                }
                if (CurrentFlightID == LogbookEntry.idFlightNone)
                {
                    throw new MyFlightbookException("No valid ID passed");
                }

                string szFQParam = util.GetStringParam(Request, "fq");
                if (!String.IsNullOrEmpty(szFQParam))
                {
                    try
                    {
                        Restriction = FlightQuery.FromBase64CompressedJSON(szFQParam);
                        Restriction.Refresh();
                    }
                    catch (ArgumentNullException) { }
                    catch (FormatException) { }
                    catch (JsonSerializationException) { }
                    catch (JsonException) { }
                }

                DetailsTab dtRequested = DetailsTab.Flight;
                if (Enum.TryParse <DetailsTab>(util.GetStringParam(Request, "tabID"), out dtRequested))
                {
                    int iTab = (int)dtRequested;
                    if (AccordionCtrl.Panes[iTab].Visible)
                    {
                        AccordionCtrl.SelectedIndex = iTab;
                    }
                }

                LogbookEntryDisplay led = CurrentFlight = LoadFlight(CurrentFlightID);
                SetUpChart(TelemetryData);
                UpdateChart();
                UpdateRestriction();

                // Bind details - this will bind everything else.
                fmvLE.DataSource = new LogbookEntryDisplay[] { led };
                fmvLE.DataBind();
                fmvAircraft.DataSource = new Aircraft[] { new UserAircraft(led.User).GetUserAircraftByID(led.AircraftID) };
                fmvAircraft.DataBind();



                if (String.IsNullOrEmpty(CurrentFlight.FlightData) && dtRequested != DetailsTab.Aircraft && dtRequested != DetailsTab.Flight)
                {
                    AccordionCtrl.SelectedIndex = (int)DetailsTab.Flight;
                }
            }
            catch (MyFlightbookException ex)
            {
                lblPageErr.Text       = ex.Message;
                AccordionCtrl.Visible = mfbGoogleMapManager1.Visible = pnlMap.Visible = pnlAccordionMenuContainer.Visible = pnlFlightDesc.Visible = false;
                return;
            }

            // for debugging, have a download option that skips all the rest
            if (util.GetIntParam(Request, "d", 0) != 0 && !String.IsNullOrEmpty(CurrentFlight.FlightData))
            {
                Response.Clear();
                Response.ContentType = "application/octet-stream";
                // Give it a name that is the brand name, user's name, and date.  Convert spaces to dashes, and then strip out ANYTHING that is not alphanumeric or a dash.
                string szFilename    = String.Format(CultureInfo.InvariantCulture, "Data{0}-{1}-{2}", Branding.CurrentBrand.AppName, MyFlightbook.Profile.GetUser(Page.User.Identity.Name).UserFullName, DateTime.Now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)).Replace(" ", "-");
                string szDisposition = String.Format(CultureInfo.InvariantCulture, "inline;filename={0}.csv", System.Text.RegularExpressions.Regex.Replace(szFilename, "[^0-9a-zA-Z-]", ""));
                Response.AddHeader("Content-Disposition", szDisposition);
                Response.Write(CurrentFlight.FlightData);
                Response.End();
                return;
            }
        }
        else
        {
            m_fd.Data = TelemetryData;
            UpdateChart();
        }

        // Set up any maps.
        mfbGoogleMapManager1.Map.Airports    = RoutesList.Result;
        mfbGoogleMapManager1.ShowMarkers     = true;
        mfbGoogleMapManager1.Map.PathVarName = PathLatLongArrayID;
        mfbGoogleMapManager1.Map.Path        = m_fd.GetPath();
        if (m_fd.HasLatLongInfo && m_fd.Data.Rows.Count > 1)
        {
            cmbFormat.Items[(int)DownloadFormat.KML].Enabled = true;
            cmbFormat.Items[(int)DownloadFormat.GPX].Enabled = true;
        }
        else
        {
            cmbFormat.Items[(int)DownloadFormat.KML].Enabled = false;
            cmbFormat.Items[(int)DownloadFormat.GPX].Enabled = false;
        }
        lnkZoomToFit.NavigateUrl = mfbGoogleMapManager1.ZoomToFitScript;
    }
Exemplo n.º 7
0
        /// <summary>
        /// Clicks the user-specified element and then waits for a window to close or open, or an element to be visible or enabled
        /// </summary>
        /// <param name="buttonOrLinkElem">The element to click on</param>
        public dynamic ClickAndWait(IWebElement buttonOrLinkElem)
        {
            if (Browser.Exists(Bys.ProgramPage.SelfReportActTab))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == SelfReportActTab.GetAttribute("outerHTML"))
                {
                    ElemSet.ClickAfterScroll(Browser, buttonOrLinkElem);
                    this.WaitUntil(Criteria.ProgramPage.SelfReportActTabValidActivityTblBodyVisible);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ProgramPage.ProgramAdjustmentsTab))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == ProgramAdjustmentsTab.GetAttribute("outerHTML"))
                {
                    buttonOrLinkElem.Click();
                    this.WaitUntil(Criteria.ProgramPage.ProgramAdjustmentsActivityTblBodyRowVisible);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ProgramPage.DetailsTab))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == DetailsTab.GetAttribute("outerHTML"))
                {
                    buttonOrLinkElem.Click();
                    this.WaitUntil(Criteria.ProgramPage.DetailsTabStatusValueLblVisible);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ProgramPage.ProgAdjustTabAddAdjustLnk))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == ProgAdjustTabAddAdjustLnk.GetAttribute("outerHTML"))
                {
                    buttonOrLinkElem.Click();
                    this.WaitUntil(Criteria.ProgramPage.ProgAdjustTabAddAdjustFormAdjustCodeSelElemVisible);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ProgramPage.ProgAdjustTabAddAdjustFormAddAdjustBtn))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == ProgAdjustTabAddAdjustFormAddAdjustBtn.GetAttribute("outerHTML"))
                {
                    buttonOrLinkElem.Click();
                    this.WaitUntilAll(TimeSpan.FromSeconds(120), Criteria.ProgramPage.ProgAdjustTabAddAdjustFormNotExists,
                                      Criteria.ProgramPage.AdjustmentAddedBannerNotExists);
                    // Adding a little sleep here. For some reason, whenever the code proceeds after clicking this button, the next line of code doesnt execute.
                    // For example, Navigate.GoToLoginPage. That code gets past the navigation part, but if you view the test in progress, no URL is entered into
                    // the URL. Another example I have code to click on the "Sites" tab in LTS after this, and the code goes past the Click line, but if you view
                    // the test, it didnt click anything. I have never seen this before. So far, I think it only happened in Debug mode.
                    // Monitor going forward
                    Thread.Sleep(0600);
                    return(null);
                }
            }

            if (Browser.Exists(Bys.ProgramPage.CreditValidationSubmitBtn))
            {
                if (buttonOrLinkElem.GetAttribute("outerHTML") == CreditValidationSubmitBtn.GetAttribute("outerHTML"))
                {
                    buttonOrLinkElem.Click();
                    this.WaitUntil(Criteria.ProgramPage.SelfReportActTabValidActivityTblBodyVisible);
                    Thread.Sleep(0500);
                    return(null);
                }
            }

            else
            {
                throw new Exception("No button or link was found with your passed parameter. You either need to add this button to a new If statement, or if the button is already added, then the page you were on did not contain the button.");
            }

            return(null);
        }