@Test
  public void testVerifyUpdatedDayForAFeaturedShows() throws Exception {

    Map<String, List<VideoDetails>> videoDetails = restAPIServices.StoreFeaturedAPI();
    List<VideoDetails> showList = videoDetails.get("show");
    List<VideoDetails> subShowListUnderChannel = videoDetails.get("showsUnderChannel");

    /* This Method is to register new user using Comcast application
     * and to change a password.
     */
    RegUserAndChangePass.RegisterToComcastAppAndChangePassword(driver);

    driver.findElement(By.linkText("STORE")).click();

    Thread.sleep(sleepTime);
    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*Featured[\\s\\S]*$"));

    Thread.sleep(sleepTime);
    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*" + showList.get(0).getTitle() + "[\\s\\S]*$"));

    driver.findElement(By.linkText(showList.get(0).getTitle())).click();

    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*" + showList.get(0).getTitle() + "[\\s\\S]*$"));

    driver.findElement(By.linkText(subShowListUnderChannel.get(0).getTitle())).click();

    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*" + subShowListUnderChannel.get(0).getTitle() + "[\\s\\S]*$"));

    /*Have to Rest Service Call*/
    String Videocount =
        driver
            .findElement(
                By.xpath(".//*[@id='content-wrap']/article/div/div[2]/div/div[1]/ul/li[2]"))
            .getText();
    assertEquals("Updated 2 months ago", Videocount);

    driver.findElement(By.linkText("Sign out")).click();
  }
  @Test
  public void testVerifyShowCountForAFeaturedChannel() throws Exception {

    Map<String, List<VideoDetails>> videoDetails = restAPIServices.StoreFeaturedAPI();
    List<VideoDetails> showList = videoDetails.get("show");

    String showCount = restAPIServices.storeShowCountUnderChannel();
    System.out.println("Show Count>>" + showCount);

    /* This Method is to register new user using Comcast application
     * and to change a password.
     */
    RegUserAndChangePass.RegisterToComcastAppAndChangePassword(driver);

    driver.findElement(By.linkText("STORE")).click();

    Thread.sleep(sleepTime);
    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*Featured[\\s\\S]*$"));

    Thread.sleep(sleepTime);
    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*" + showCount + " Shows[\\s\\S]*$"));

    driver.findElement(By.linkText(showList.get(0).getTitle())).click();

    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*" + showList.get(0).getTitle() + "[\\s\\S]*$"));

    String Showcount =
        driver
            .findElement(
                By.xpath(".//*[@id='content-wrap']/article/div/div[2]/div[2]/div[1]/ul/li[1]"))
            .getText();
    assertEquals("Shows " + showCount + "", Showcount);

    driver.findElement(By.linkText("Sign out")).click();
  }
  @Test
  public void testVerifyVideosUnderChannelForHomeFeatured() throws Exception {

    Map<String, List<VideoDetails>> videoDetails = restAPIServices.HomeFeaturedAPI();
    List<VideoDetails> showList = videoDetails.get("show");
    List<VideoDetails> videoList = videoDetails.get("video");

    /* This Method is to register new user using Comcast application
     * and to change a password.
     */
    RegUserAndChangePass.RegisterToComcastAppAndChangePassword(driver);

    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*Featured[\\s\\S]*$"));

    driver.findElement(By.linkText(showList.get(0).getTitle())).click();

    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*" + showList.get(0).getTitle() + "[\\s\\S]*$"));

    Thread.sleep(sleepTime);
    driver.findElement(By.linkText("VIDEOS")).click();

    Thread.sleep(sleepTime);
    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*" + videoList.get(0).getTitle() + "[\\s\\S]*$"));

    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*" + videoList.get(1).getTitle() + "[\\s\\S]*$"));

    driver.findElement(By.linkText("Sign out")).click();
  }
  @Test
  public void testUserProfileChanges() throws Exception {

    /* This Method is to register new user using Comcast application
     * and to change a password.
     */
    RegUserAndChangePass.RegisterToComcastAppAndChangePassword(driver);

    assertTrue(
        driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*HOME[\\s\\S]*$"));
    try {
      driver.findElement(By.cssSelector("span.translation_missing")).click();

      driver.findElement(By.linkText("Change payment info")).click();

      driver.findElement(By.name("commit")).click();

      Thread.sleep(sleepTime);
      assertTrue(
          driver
              .findElement(By.cssSelector("BODY"))
              .getText()
              .matches("^[\\s\\S]*Credit Card Number is required[\\s\\S]*$"));

      // Below lines are commented because Requirement is changed from Text boxes to Dropdowns.
      /*assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Expiration Month is required[\\s\\S]*$"));
      assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Expiration Year is required[\\s\\S]*$"));*/

      assertTrue(
          driver
              .findElement(By.cssSelector("BODY"))
              .getText()
              .matches("^[\\s\\S]*Security Code is required[\\s\\S]*$"));

      Thread.sleep(sleepTime);
      driver.findElement(By.linkText("Sign out")).click();

    } catch (Exception e) {
      // throw new ComcastTestException("ValidateChangePaymentInfoMandatoryFields",
      // "testUserProfileChanges",e );
      captureScreenshot();
    }
  }
  @Test
  public void testVerifyVideoCountForAFeaturedChannel() throws Exception {

    List<VideoDetails> videoDetailsList = restAPIServices.episodeListUnderChannel();

    /* This Method is to register new user using Comcast application
     * and to change a password.
     */
    RegUserAndChangePass.RegisterToComcastAppAndChangePassword(driver);

    driver.findElement(By.linkText("STORE")).click();

    Thread.sleep(sleepTime);
    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*" + videoDetailsList.get(0).getTitle() + "[\\s\\S]*$"));

    driver.findElement(By.linkText(videoDetailsList.get(0).getTitle())).click();

    assertTrue(
        driver
            .findElement(By.cssSelector("BODY"))
            .getText()
            .matches("^[\\s\\S]*" + videoDetailsList.get(0).getTitle() + "[\\s\\S]*$"));

    String Videocount =
        driver
            .findElement(
                By.xpath(".//*[@id='content-wrap']/article/div/div[2]/div[2]/div[1]/ul/li[2]"))
            .getText();
    assertEquals("Videos " + videoDetailsList.get(0).getNoOfHits() + "", Videocount);

    driver.findElement(By.linkText("Sign out")).click();
  }