/// <summary> /// Performs the playback of actions in this module. /// </summary> /// <remarks>You should not call this method directly, instead pass the module /// instance to the <see cref="TestModuleRunner.Run(ITestModule)"/> method /// that will in turn invoke this method.</remarks> void ITestModule.Run() { Mouse.DefaultMoveTime = 100; Keyboard.DefaultKeyPressTime = 40; Delay.SpeedFactor = 1.0; const string homePageURI = "integration.lynda.com/member.aspx"; Browser browserIE = new Browser(BrowserProduct.IE, homePageURI, true); browserIE.HalfSize(); Browser browserFF = new Browser(BrowserProduct.Firefox, homePageURI, true); browserFF.HalfSize(); browserFF.Move(200, 200); //Create new member home page instance which also waits for the page to load HomePageMember homePageMemberIE = new HomePageMember(browserIE); HomePageMember homePageMemberFF = new HomePageMember(browserFF); homePageMemberIE.ClickSubscribeLink(); homePageMemberFF.ClickSubscribeLink(); RegPageStep1 regPageStep1IE = new RegPageStep1(browserIE); RegPageStep1 regPageStep1FF = new RegPageStep1(browserFF); regPageStep1IE.SelectOTLSubscription(OTLSubscriptionPlanRegPage1.SubscriptionPlan.MonthlyPremium); regPageStep1FF.SelectOTLSubscription(OTLSubscriptionPlanRegPage1.SubscriptionPlan.Annual); regPageStep1IE.FillAccountInfo(new AccountInfo(AccountInfo.DefaultInfo.Standard)); AccountInfo accountInfo = new AccountInfo(AccountInfo.DefaultInfo.Standard); accountInfo.FirstName = "John"; regPageStep1FF.FillAccountInfo(accountInfo); regPageStep1IE.ClickContinue(); regPageStep1FF.ClickContinue(); RegPageStep2 regPageStep2IE = new RegPageStep2(browserIE, BillingInformation.DefaultInfo.Standard, PaymentInformation.DefaultInfo.Standard); RegPageStep2 regPageStep2FF = new RegPageStep2(browserFF, BillingInformation.DefaultInfo.Standard, PaymentInformation.DefaultInfo.Standard); regPageStep2IE.ClickIHaveRead(); regPageStep2IE.ClickStartMembership(); regPageStep2FF.ClickIHaveRead(); regPageStep2FF.ClickStartMembership(); }
/// <summary> /// Performs the playback of actions in this module. /// </summary> /// <remarks>You should not call this method directly, instead pass the module /// instance to the <see cref="TestModuleRunner.Run(ITestModule)"/> method /// that will in turn invoke this method.</remarks> void ITestModule.Run() { const string testCaseName = "AllRegistrations"; string subscriptionPlanRow = TestSuite.Current.GetTestCase(testCaseName).DataContext.CurrentRow["SubscriptionPlan"]; string regPage2PlanNameExpected = TestSuite.Current.GetTestCase(testCaseName).DataContext.CurrentRow["regPage2PlanNameExpected"]; string confirmPagePlanNameExpected = TestSuite.Current.GetTestCase(testCaseName).DataContext.CurrentRow["confirmPagePlanNameExpected"]; OTLSubscriptionPlanRegPage1.SubscriptionPlan subscriptionPlanToSelect = (OTLSubscriptionPlanRegPage1.SubscriptionPlan) Enum.Parse(typeof(OTLSubscriptionPlanRegPage1.SubscriptionPlan), subscriptionPlanRow, false); Mouse.DefaultMoveTime = AppSettings.MouseDefaultMoveTime; Keyboard.DefaultKeyPressTime = AppSettings.KeyboardDefaultKeyPressTime; Delay.SpeedFactor = 1.0; string url = string.Format("http://{0}/member.aspx", AppSettings.Domain); Browser browser = new Browser(AppSettings.Browser, url, true); HomePageMember homePageMember = new HomePageMember(browser); homePageMember.ClickSubscribeLink(); RegPageStep1 regPageStep1 = new RegPageStep1(browser, subscriptionPlanToSelect, AccountInfo.DefaultInfo.Standard); OTLSubscriptionPlanRegPage1 otlPlan = regPageStep1.GetOTLSubscriptionPlan(); //e.g. Monthly, MonthlyPremium, Annual, AnnualPremium OTLSubscriptionPlanRegPage1.SubscriptionPlan regPage1PlanSelected = otlPlan.Subscription; //e.g. "$37.50/month" "$250.00/year" "$375.00/year" "$25.00/month" string regPage1PlanPrice = otlPlan.SubscriptionPrice; regPageStep1.ClickContinue(); RegPageStep2 regPageStep2 = new RegPageStep2(browser, BillingInformation.DefaultInfo.Standard, PaymentInformation.DefaultInfo.Standard); OTLSubscriptionPlanRegPage2 otlPlanPage2 = regPageStep2.GetOTLSubscriptionPlan(); //e.g. "Monthly Premium Subscription" "Monthly Subscription" "Annual Subscription" "Annual Premium Subscription" string regPage2PlanName = otlPlanPage2.PlanName; //e.g. "$37.50/month" "$25.00/month" "$250.00/year" "$375.00/year" string regPage2PlanPrice = otlPlanPage2.PlanPrice; regPageStep2.ClickIHaveRead(); regPageStep2.ClickStartMembership(); RegConfirm regPageConfirm = new RegConfirm(browser); OTLPlanInfo otlPlanInfo = regPageConfirm.GetOTLPlanInfo(); string confirmPagePlanName = otlPlanInfo.Name; //e.g. "Monthly Premium" "Monthly" "Annual" "Annual Premium" string confirmPagePlanPrice = otlPlanInfo.Price; //e.g. "$37.50" "$25.00" "$250.00" "$375.00" regPageConfirm.ClickLogoutLink(); homePageMember.WaitForLoad(); //Verify displayed subscription info on reg page 2 and confirm page matches what was selected on reg page 1. Validate.AreEqual(string.Compare(regPage2PlanName, regPage2PlanNameExpected, false), 0, "Actual:{0} Expected:{1}", true); Validate.AreEqual(string.Compare(confirmPagePlanName, confirmPagePlanNameExpected, false), 0, "Actual:{0} Expected:{1}", true); Validate.AreEqual(string.Compare(regPage1PlanPrice, regPage2PlanPrice, false), 0, "Actual:{0} Expected:{1}", true); Validate.AreEqual(string.Compare(confirmPagePlanPrice, regPage2PlanPrice.Substring(0, confirmPagePlanPrice.Length), false), 0, "Actual:{0} Expected:{1}", true); }
/// <summary> /// Performs the playback of actions in this module. /// </summary> /// <remarks>You should not call this method directly, instead pass the module /// instance to the <see cref="TestModuleRunner.Run(ITestModule)"/> method /// that will in turn invoke this method.</remarks> void ITestModule.Run() { Mouse.DefaultMoveTime = 50; Keyboard.DefaultKeyPressTime = 50; Delay.SpeedFactor = 1.0; string url = string.Format("http://{0}/member.aspx", AppSettings.Domain); Browser browser = new Browser(AppSettings.Browser, url, true); HomePageMember homePageMember = new HomePageMember(browser); homePageMember.ClickSubscribeLink(); RegPageStep1 regPageStep1 = new RegPageStep1(browser, OTLSubscriptionPlanRegPage1.SubscriptionPlan.MonthlyPremium, AccountInfo.DefaultInfo.Standard); regPageStep1.CheckOrUncheckMonthlyNewsletters(true); regPageStep1.CheckOrUncheckNewReleases(true); regPageStep1.CheckOrUncheckSpecialAnnouncements(true); regPageStep1.FillAccountInfo(); //standard info default. //custom AccountInfo accountInfo = new AccountInfo(); //Nothing initialized accountInfo.SignMeUpNewReleases = true; accountInfo = new AccountInfo(AccountInfo.DefaultInfo.Standard); //Standard account info //change standard values to custom accountInfo.FirstName = "Trebek"; accountInfo.SignMeUpSpecial = false; regPageStep1.FillAccountInfo(accountInfo); //write to one field only regPageStep1.FillAccountInfo(AccountInfo.Field.LastName, "Connery"); regPageStep1.FillAccountInfo(AccountInfo.Field.FirstName, "Sean"); //get current account info accountInfo = regPageStep1.GetAccountInfo(); string firstName = accountInfo.Username; bool newReleasesChecked = accountInfo.SignMeUpNewReleases; //change subscription plan regPageStep1.SelectOTLSubscription(OTLSubscriptionPlanRegPage1.SubscriptionPlan.Monthly); //get current plan OTLSubscriptionPlanRegPage1 otlSubscriptionPlan = regPageStep1.GetOTLSubscriptionPlan(); OTLSubscriptionPlanRegPage1.SubscriptionPlan otlCurrentPlan = otlSubscriptionPlan.Subscription; regPageStep1.ClickContinue(); RegPageStep2 regPageStep2 = new RegPageStep2(browser, BillingInformation.DefaultInfo.Standard, PaymentInformation.DefaultInfo.Standard); regPageStep2.FillBillingInfo(); //standard info default regPageStep2.FillPaymentInfo(); //standard info default //custom BillingInformation billingInfo = new BillingInformation(); //nothing initialized billingInfo.HowHear = "Radio"; PaymentInformation paymentInfo = new PaymentInformation(); //nothing ititialized paymentInfo.ExpirationYear = "2013"; billingInfo = new BillingInformation(BillingInformation.DefaultInfo.Standard); //standard billing info paymentInfo = new PaymentInformation(PaymentInformation.DefaultInfo.Standard); //standard payment info //change standard values to custom billingInfo.Phone = "5555551234"; paymentInfo.ExpirationYear = "2014"; regPageStep2.FillBillingInfo(billingInfo); regPageStep2.FillPaymentInfo(paymentInfo); //write to one field only regPageStep2.FillBillingInfo(BillingInformation.Field.Apt, "1"); regPageStep2.FillPaymentInfo(PaymentInformation.Field.ExpireYear, "2015"); //get current billing and payment info billingInfo = regPageStep2.GetBillingInfo(); paymentInfo = regPageStep2.GetPaymentInfo(); string billingAddress = billingInfo.Address; string paymentNameOnCard = paymentInfo.NameOnCard; regPageStep2.ClickIHaveRead(); regPageStep2.ClickStartMembership(); }