public override void RunTest()
        {
            header = new Header(selenium, this);
            footer = new Footer(selenium, this);
            homePage = new HomePage(selenium, this);
            categoryPage = new CategoryPage(selenium, this);
            productListPage = new ProductListPage(selenium, this);
            productPage = new ProductPage(selenium, this);
            signInPage = new SignInPage(selenium, this);
            createAccountPage = new CreateAccountPage(selenium, this);
            manageAccountPage = new ManageAccountPage(selenium, this);
            customer = createAccountPage.getCustomer();
            createAddressPage = new CreateAddressPage(customer, selenium, this);

            homePage.openBEHomePage();
            homePage.deleteCookies();
            homePage.openUSHomePage();
            homePage.deleteCookies();

            header.clickOnMyAccountLink_US_UK();
            signInPage.verifyCorrectPageIsDisplayed_US_UK();
            signInPage.clickCreateNewAccountLink();
            createAccountPage.verifyCorrectPageIsDisplayed_US_UK();
            createAccountPage.addCustomerInfo_US();
            manageAccountPage.verifyCorrectPageIsDisplayed_US_UK();
            manageAccountPage.clickAddAddressBtn_US_UK();
            createAddressPage.verifyCorrectPageIsDisplayed_US_UK(false);
            createAddressPage.checkPreferredBillingAddressBox();
            createAddressPage.addAddress_US();

            String userName = customer.getUserName();

            homePage.openBEHomePage();
            homePage.verifyDutchText();//Below was commented out because the other language pages are not up to speed with US.  Also for SSO this seems like redundancy.  Needs to test integration with MyGarmin etc for SSO (IMO)

            //header.verifyDutchText_CustomerLoggedIn(userName);
            /*
            footer.clickFrenchLanguageLink();
            homePage.verifyFrenchText();
            header.verifyFrenchText_CustomerLoggedIn(userName);
            footer.clickDutchLanguageLink();
            homePage.verifyDutchText();
            header.verifyDutchText_CustomerLoggedIn(userName);
            homePage.browseToCategoryOnTopMenu("du_On the Road");

            categoryPage.verifyDutchText();
            footer.clickFrenchLanguageLink();
            categoryPage.verifyFrenchText();
            footer.clickDutchLanguageLink();
            categoryPage.verifyDutchText();

            String du_subCategory = "du_Automotive";
            categoryPage.clickOnSubCategory(du_subCategory);
            productListPage.verifyDutchText(du_subCategory, "Draagtas");

            footer.clickFrenchLanguageLink();
            productListPage.verifyFrenchText("fr_Automotive", "Etui de protection");
            */
        }
 public override void RunTest()
 {
     homePage = new HomePage(selenium, this);
     header = new Header(selenium, this);
     signInPage = new SignInPage(selenium, this);
     createAccountPage = new CreateAccountPage(selenium, this);
     manageAccountPage = new ManageAccountPage(selenium, this);
     customer = createAccountPage.getCustomer();
     createAddressPage = new CreateAddressPage(customer, selenium, this);
     testRegisterUser_US();
     //testRegisterUser_UK();
     //testRegisterUser_BE();  //look into language links later.
 }
        public override void RunTest()
        {
            homePage = new HomePage(selenium, this);
            header = new Header(selenium, this);
            signInPage = new SignInPage(selenium, this);
            createAccountPage = new CreateAccountPage(selenium, this);
            manageAccountPage = new ManageAccountPage(selenium, this);
            customer = createAccountPage.getCustomer();
            shippingAddressPage = new ShippingAddressPage(selenium, this);
            createAddressPage = new CreateAddressPage(customer, selenium, this);
            categoryPage = new CategoryPage(selenium, this);
            productListPage = new ProductListPage(selenium, this);
            productPage = new ProductPage(selenium, this);
            cartPage = new CartPage(selenium, this);
            deliveryOptionsPage = new DeliveryOptionsPage(selenium, this);
            billingAndReviewPage = new BillingAndReviewPage(selenium, this);
            receiptPage = new ReceiptPage(selenium, this);

            testSingleSignOn_AddAddress();
            //testSingleSignOn_Checkout();
        }
        public override void RunTest()
        {
            header = new Header(selenium, this);
            footer = new Footer(selenium, this);
            homePage = new HomePage(selenium, this);
            categoryPage = new CategoryPage(selenium, this);
            productListPage = new ProductListPage(selenium, this);
            productPage = new ProductPage(selenium, this);

            homePage.openBEHomePage();
            //homePage.deleteCookies();
            homePage.verifyDutchText();
            header.verifyDutchText_CustomerNotLoggedIn();
            footer.clickFrenchLanguageLink();
            homePage.verifyFrenchText();
            header.verifyFrenchText_CustomerNotLoggedIn();
            footer.clickDutchLanguageLink();
            homePage.verifyDutchText();
            header.verifyDutchText_CustomerNotLoggedIn();
            //homePage.browseToCategoryOnTopMenu("du_On the Road");
            //driver.UnderlyingWebDriver.FindElement(By.TagName("Producten")).Click();
            categoryPage.verifyDutchText();
            footer.clickFrenchLanguageLink();
            categoryPage.verifyFrenchText();
            footer.clickDutchLanguageLink();
            categoryPage.verifyDutchText();

            string du_subCategory = "Autonavigatie";
            //driver.UnderlyingWebDriver.FindElement(By.  .ClassName("Producten")).Click();
            //driver.UnderlyingWebDriver.FindElement(By.TagName("Producten")).Click();
            //categoryPage.clickOnSubCategory(du_subCategory);
            //productListPage.verifyDutchText(du_subCategory, "Draagtas");

            footer.clickFrenchLanguageLink();
            productListPage.verifyFrenchText("fr_Automotive", "Etui de protection");
        }
        public void testBrowseStore_US()
        {
            homePage = new HomePage(selenium, this);
            categoryPage = new CategoryPage(selenium, this);
            productListPage = new ProductListPage(selenium, this);
            productPage = new ProductPage(selenium, this);

            homePage.openUSHomePage();
            //homePage.deleteCookies();
            homePage.verifyCorrectPageIsDisplayed_US();
            homePage.browseToCategoryOnTopMenu("On the Road");
            string[] subCategories_onTheRoad = { "Motorcycles", "Automotive", "Trucking" };
            categoryPage.verifyCorrectPageIsDisplayed(subCategories_onTheRoad);

            homePage.browseToCategoryOnTopMenu("On the Go");
            string[] subCategories_onTheGo = { "Track & Locate", "Apps", "Phones" };
            categoryPage.verifyCorrectPageIsDisplayed(subCategories_onTheGo);

            homePage.browseToCategoryOnTopMenu("On the Trail");
            string[] subCategories_onTheTrail = { "Basic Handhelds", "Mapping Handhelds", "Two Way Radio", "Dog Tracking" };
            categoryPage.verifyCorrectPageIsDisplayed(subCategories_onTheTrail);

            homePage.browseToCategoryOnTopMenu("Into Sport");
            string[] subCategories_intoSport = { "Running", "Cycling", "Golfing" };
            categoryPage.verifyCorrectPageIsDisplayed(subCategories_intoSport);

            homePage.browseToCategoryOnTopMenu("On the Road");
            categoryPage.verifyCorrectPageIsDisplayed(subCategories_onTheRoad);
            categoryPage.clickOnSubCategory("Motorcycles");
            productListPage.verifyCorrectPageIsDisplayed();
            //productListPage.verifyShopByPriceFilter1("> $300");
            //productListPage.verifyShopByBrandFilter1("Prestige Series");
            productListPage.verifyCurrency_US();
            productListPage.clickProductLink("220");

            productPage.verifyCorrectPageIsDisplayed();
            productPage.selectProductSku("zumo 220, North America");
            productPage.verifyCurrency_US();

            homePage.browseToCategoryOnTopMenu("On the Road");
            categoryPage.clickOnSubCategory("Automotive");
            //productListPage.verifyShopByPriceFilter1("< $100");
            //productListPage.verifyShopByPriceFilter2("$100 - 200");
            //productListPage.verifyShopByBrandFilter1("Nuvi");
            productListPage.verifyShopByBrandFilter2("Prestige Series");
            productListPage.verifyShopByBrandFilter3("Essential Series");
            productListPage.verifyShopByBrandFilter4("Zumo");
            productListPage.verifyShopByBrandFilter5("Advanced Series");
        }
        public void testPurchase_US()
        {
            customer = new Customer();
            homePage = new HomePage(selenium, this);
            categoryPage = new CategoryPage(selenium, this);
            productListPage = new ProductListPage(selenium, this);
            productPage = new ProductPage(selenium, this);
            cartPage = new CartPage(selenium, this);
            signInPage = new SignInPage(selenium, this);
            createAccountPage = new CreateAccountPage(selenium, this);
            createAddressPage = new CreateAddressPage(customer, selenium, this);
            deliveryOptionsPage = new DeliveryOptionsPage(selenium, this);
            billingAndReviewPage = new BillingAndReviewPage(selenium, this);
            receiptPage = new ReceiptPage(selenium, this);
            billingAddressPage = new BillingAddressPage(selenium, this);

            homePage.openUSHomePage();
            homePage.deleteCookies();
            homePage.verifyCorrectPageIsDisplayed_US();
            homePage.browseToCategoryOnTopMenu("On the Road");

            categoryPage.clickOnSubCategory("Motorcycles");

            productListPage.clickProductLink("220");

            productPage.selectProductSku("zumo 220, North America");
            productPage.clickAddToCartButton();

            cartPage.verifyCorrectPageIsDisplayed();
            cartPage.clickCheckoutButton();

            signInPage.verifyCorrectPageIsDisplayed_US_UK();
            signInPage.clickCreateNewAccountLink();

            createAccountPage.verifyCorrectPageIsDisplayed_US_UK();
            createAccountPage.addCustomerInfo_US();

            createAddressPage.verifyCorrectPageIsDisplayed_US_UK(true);
            createAddressPage.addAddress_US();

            deliveryOptionsPage.verifyCorrectPageIsDisplayed();
            deliveryOptionsPage.clickContinueButton();

            billingAndReviewPage.verifyCorrectPageIsDisplayed();
            billingAndReviewPage.submitOrder();

            receiptPage.verifyCorrectPageIsDisplayed();
            receiptPage.verifyOrderNumberExists();
        }