示例#1
0
        public void ThenTest()
        {
            driver.Navigate().GoToUrl("https://buggy.justtestit.org/model/c0bm09bgagshpkqbsuag%7Cc0bm09bgagshpkqbsuh0");
            ModelPage model = new ModelPage(driver);
            var       text  = model.VoteNumber.Text;

            Assert.IsTrue(true);
        }
示例#2
0
        public static void BeforeFeatureTopVoted()
        {
            Utils.EnsureUserLoggedIn();
            Utils.ViewModelByRating(1);

            var page = new ModelPage(Driver);

            page.CastVote(out string _);
        }
        public void WhenIMadeACommentToVote()
        {
            ModelPage model = new ModelPage(driver);

            scenarioContext.Set(model.VoteNumber.Text, "votecount");

            model.CommentField.SendKeys(Faker.Company.CatchPhrase());
            model.VoteButton.Click();
            model.waitHelper.WaitForJQueryToBeInactive();
        }
        public void OnGet()
        {
            var value = HttpContext.Session.GetString("modelpage");

            if (value != null)
            {
                modelpage = JsonConvert.DeserializeObject <ModelPage>(value);
                HttpContext.Session.Clear();
            }
        }
        public void ThenCheckThatVoteWasCountedAndCommentCouldNotBeMadeAnymore()
        {
            ModelPage model = new ModelPage(driver);

            Assert.AreEqual(model.VoteMessageDone.Text, "Thank you for your vote!", "Vote has been registered");

            var voteafter  = int.Parse(model.VoteNumber.Text);
            var votebefore = int.Parse(scenarioContext.Get <string>("votecount"));

            Assert.AreEqual(voteafter, votebefore + 1, "Added vote should be counted");
        }
        public IActionResult OnGet()
        {
            var value = HttpContext.Session.GetString("modelpage");

            if (value != null)
            {
                modelPage = JsonConvert.DeserializeObject <ModelPage>(value);
                return(Page());
            }
            else
            {
                return(RedirectToPage("error"));
            }
        }
        public void ThenINavigateToPopularModelThenConfirmModelPageAndBackToMainPageSuccessfully()
        {
            HomePage home = new HomePage(driver);

            var popularmodel = home.PopularModelName.Text;

            home.PopularModelLink.Click();

            ModelPage model = new ModelPage(driver);

            Assert.IsTrue(popularmodel.Contains(model.ModelName.Text), "page navigated to correct model");

            model.BuggyRatingLink.Click();
            Assert.AreEqual("https://buggy.justtestit.org/", driver.Url, "Expected to be back on the main page");
        }
示例#8
0
        public SelectItems(ModelPage modelPage, Func<T, string> toText, Func<T, bool> selector)
        {
            modelPage.CheckArgument(nameof(modelPage));

            using var access = modelPage.CreateService<T>();
            var items = Task.Run(async () => await access.GetAllAsync().ConfigureAwait(false))
                            .Result
                            .Select(e => new SelectItem
                            {
                                Value = e.Id.ToString(),
                                Text = toText != null ? toText(e) : e.ToString(),
                                Selected = selector != null && selector.Invoke(e)
                            });

            AddRange(items.OrderBy(e => e.Text));
        }
示例#9
0
        public static bool Navigate(Type pageType, object parameter = null, NavigationTransitionInfo infoOverride = null)
        {
            // Don't open the same page multiple times
            if (Frame.Content?.GetType() != pageType || (parameter != null && !parameter.Equals(_lastParamUsed)))
            {
                var activePage = ActiveModelPage;
                ActiveModelPage = null;
                activePage?.NavigatedFrom();

                var navigationResult = Frame.Navigate(pageType, parameter, infoOverride);
                if (navigationResult)
                {
                    _lastParamUsed = parameter;
                }

                return(navigationResult);
            }
            else
            {
                return(false);
            }
        }
示例#10
0
        public SelectEditMember(ModelPage page, ModelObject model, PropertyInfo propertyInfo, DisplayInfo displayInfo, IEnumerable <T> items, Func <T, string> toText, Func <T, bool> selector)
            : base(page, model, propertyInfo, displayInfo)
        {
            items.CheckArgument(nameof(items));

            var selectItems = new SelectItems <T>(items, toText, selector);

            if (propertyInfo.PropertyType.IsNullableType())
            {
                selectItems.Insert(0, new SelectItem
                {
                    Value    = string.Empty,
                    Text     = page.Translate("Select an entry..."),
                    Selected = false
                });
            }

            if (model is IdentityModel im)
            {
                if (selectItems.Any(e => e.Selected) == false)
                {
                    if (propertyInfo.PropertyType.IsNullableType())
                    {
                        EditValue = null;
                    }
                    else if (selectItems.Any())
                    {
                        EditValue = selectItems.ElementAt(0).Value;
                    }
                    else
                    {
                        EditValue = null;
                    }
                }
            }
            SelectItems  = selectItems;
            EditCtrlType = Common.ControlType.Select;
        }
示例#11
0
 public VoteCommentSteps(IWebDriver driver)
 {
     page = new ModelPage(driver);
 }
示例#12
0
        public void Create_Credit_App_Firefox()
        {
            browser_.Navigate().GoToUrl(HOME_PAGE);
            //1st step is to select get started button
            try
            {
                HomePage homePage = new HomePage(browser_);
                homePage.GetStartedButton.Click();
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Assert.Fail("Fail at Home page");
            }

            //2nd step is to randomly "Select Make"
            string newUsedText = "";

            try
            {
                MakePage makePage = new MakePage(rng_, browser_);

                IWebElement randomButton = makePage.SelectRandomNewUsedButton();
                randomButton.Click();
                newUsedText = randomButton.Text;
                Trace.WriteLine("New/Used: " + randomButton.Text);
                Trace.WriteLine("MakesCollection Count: " + makePage.MakesCollection.Count);
                IWebElement randomMakeType = makePage.SelectRandomMakeType();
                Trace.WriteLine("Make Type Selected: " + makePage.RandomMakeTypeTitle);
                randomMakeType.Click();
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Assert.Fail("Fail at Select Make page");
            }

            try
            {
                //3rd step is to randomly select a car
                PageSelector modelPageSelector = new PageSelector(rng_, browser_);
                BasePage     nextPage          = modelPageSelector.GetNewOrUsedModelPage(newUsedText);

                if (nextPage is ModelPage)
                {
                    ModelPage modelPage = (ModelPage)nextPage;
                    Trace.WriteLine("ModelsCollection Count: " + modelPage.ModelsCollection.Count);
                    IWebElement randomModelType = modelPage.SelectRandomModelType();
                    Trace.WriteLine("Car Model Selected: " + modelPage.RandomModelTypeTitle);
                    randomModelType.Click();
                }
                else if (nextPage is UsedPage)
                {
                    UsedPage usedModelPage = (UsedPage)nextPage;
                    Trace.WriteLine("Used ModelsCollection Count: " + usedModelPage.UsedCollection.Count);
                    IWebElement randomUsedModelType = usedModelPage.SelectRandomUsedItem();
                    Trace.WriteLine("Used Car Model Selected: " + randomUsedModelType.Text);
                    randomUsedModelType.Click();
                }

                //4th step
                LocationPage location = new LocationPage(browser_);
                if (!location.IsLocationSpecified)
                {
                    Trace.WriteLine("Location Modal is Displayed");
                    location.UseMyLocationButton.Click();
                    //alternate way of inputting location information
                    //location.LocationInputField.SendKeys(ZIP_CODE);
                    //location.FindLocationButton.Click();
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Assert.Fail("Fail at Model Selection page");
            }

            //5th step determine if the new page has a inventory list or a trim list
            bool wasTrimPageVisited = false;

            try
            {
                PageSelector pageSelector = new PageSelector(rng_, browser_);
                BasePage     newPage      = pageSelector.GetNewPage();

                if (newPage is TrimPage)
                {
                    TrimPage    trimPage = (TrimPage)newPage;
                    IWebElement trimCard = trimPage.SelectRandomTrimCard();
                    Trace.WriteLine("Trim selected: " + trimPage.TrimCardTitle.Text);
                    trimCard.Click();
                    wasTrimPageVisited = true;
                }
                else if (newPage is InventoryPage)
                {
                    InventoryPage inventoryPage = (InventoryPage)newPage;
                    IWebElement   inventoryCard = inventoryPage.SelectRandomInventoryCard();
                    Trace.WriteLine("Inventory selected: " + inventoryPage.InventoryCardTitle.Text);
                    string dealerName = inventoryPage.DealerName.Text;
                    inventoryCard.Click();

                    //Review Vehicle Page
                    ReviewVehiclePage reviewVehiclePage = new ReviewVehiclePage(browser_);
                    Trace.WriteLine("Dealership Name: " + reviewVehiclePage.DealerName.Text);
                    Assert.AreEqual(dealerName, reviewVehiclePage.DealerName.Text);
                    reviewVehiclePage.NextButton.Click();
                }
                else if (newPage is UsedPage)
                {
                    UsedPage    usedYearPage = new UsedPage(rng_, browser_);
                    IWebElement yearElement  = usedYearPage.SelectRandomUsedItem();
                    Trace.WriteLine("Used Year: " + yearElement.Text);
                    yearElement.Click();

                    UsedPage    usedTrimPage = new UsedPage(rng_, browser_);
                    IWebElement trimElement  = usedTrimPage.SelectRandomUsedItem();
                    Trace.WriteLine("Used Trim: " + trimElement.Text);
                    trimElement.Click();
                    wasTrimPageVisited = true;
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Assert.Fail("Fail at PageSelector");
            }

            //6th step ~ no trade-in
            try
            {
                ReviewDetailsPage reviewDetailsPage = new ReviewDetailsPage(rng_, browser_);

                if (newUsedText.Equals("used", StringComparison.InvariantCultureIgnoreCase))
                {
                    reviewDetailsPage.UsedVehiclePriceInput.SendKeys(MIN_USED_VEHICLE_PRICE);
                    reviewDetailsPage.OdomoterReadingInput.SendKeys(USED_ODOMETER_VALUE);
                    IWebElement financeType = browser_.FindElement(By.ClassName("sectionTitleBar___1cVBK"));
                    Trace.WriteLine("used finance type: " + financeType.Text);
                }
                else //new car
                {
                    Trace.WriteLine("Finance Toggle Count: " + reviewDetailsPage.FinanceToggles.Count);
                    reviewDetailsPage.SelectRandomFinanceToggle().Click();
                    Trace.WriteLine("finance type: " + reviewDetailsPage.FinanceType.Text);
                }

                reviewDetailsPage.NoTradeInButton.Click();
                reviewDetailsPage.NextButton.Click();
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Assert.Fail("Fail at Review Details page");
            }

            //7th step ~ pick a random dealership if TrimPage was visited instead of inventory page
            if (wasTrimPageVisited)
            {
                try
                {
                    DealershipPage dealershipPage = new DealershipPage(rng_, browser_);
                    dealershipPage.SelectRandomDealer();
                    Trace.WriteLine("Dealership name selected: " + dealershipPage.DealerName.Text);

                    if (!dealershipPage.SelectDealerButton.Displayed)
                    {
                        dealershipPage.ToggleDropdown.Click();
                    }

                    foreach (IWebElement button in dealershipPage.DealerButtons)
                    {
                        Trace.WriteLine("display: " + button.Displayed);
                    }

                    dealershipPage.SelectDealerButton.Click();
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(ex.Message);
                    Assert.Fail("Fail at Dealership Page");
                }
            }

            //8th step is to stop at "Search For Financing" Personal Information Page
            try
            {
                PersonalInformationPage personalInfoPage = new PersonalInformationPage(browser_);
                Assert.AreEqual("Personal Information", personalInfoPage.PersonalInformation.Text);
                Trace.WriteLine("Test Succeeded!");
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
                Trace.WriteLine("Test Failed!");
                Assert.Fail("Fail at Personal Information page");
            }
        }