List of usage examples for org.openqa.selenium.support.ui ExpectedConditions visibilityOfElementLocated
public static ExpectedCondition<WebElement> visibilityOfElementLocated(final By locator)
From source file:com.pentaho.ctools.cdf.require.ExecuteXactionComponent.java
License:Apache License
/** * ############################### Test Case 1 ############################### * * Test Case Name:/* www .j a va 2 s. co m*/ * Reload Sample * Description: * Reload the sample (not refresh page). * Steps: * 1. Click in Code and then click in button 'Try me'. */ @Test public void tc1_PageContent_DisplayTitle() { this.log.info("tc1_PageContent_DisplayTitle"); // Wait for title become visible and with value 'Community Dashboard Framework' wait.until(ExpectedConditions.titleContains("Community Dashboard Framework")); // Wait for visibility of 'VisualizationAPIComponent' wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); // Validate the sample that we are testing is the one assertEquals("Community Dashboard Framework", driver.getTitle()); assertEquals("ExecuteXactionComponent", this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); }
From source file:com.pentaho.ctools.cdf.require.JFreeChartComponent.java
License:Apache License
/** * ############################### Test Case 1 ############################### * * Test Case Name:/*from www . j a va 2s. com*/ * Check Page Content * Description: * Validate the page content. * Steps: * 1. Check for web page title and sample title. */ @Test public void tc1_PageContent_DisplayTitle() { this.log.info("tc1_PageContent_DisplayTitle"); // Wait for title become visible and with value 'Community Dashboard Framework' wait.until(ExpectedConditions.titleContains("Community Dashboard Framework")); // Wait for visibility of 'VisualizationAPIComponent' wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); // Validate the sample that we are testing is the one assertEquals("Community Dashboard Framework", driver.getTitle()); assertEquals("jFreeChartComponent", this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); }
From source file:com.pentaho.ctools.cdf.require.MetaLayerHomeDashboard.java
License:Apache License
/** * ############################### Test Case 1 ############################### * * Test Case Name://from ww w. j av a 2s. c o m * MetaLayer Home Dashboard - clicking details * Description: * We pretend to validate when user click on 'Details...' a pop-up message * is displayed. * Steps: * 1. Open the MetaLayer Home Dashboard. * 2. Click in 'Details...'. * 3. Check if we have width = 500 and height = 600 */ @Test public void tc1_LinkDetails_PopupJPivot() { this.log.info("tc1_LinkDetails_PopupJPivot"); /* * ## Step 1 */ driver.get(baseUrl + "api/repos/%3Apublic%3Aplugin-samples%3Apentaho-cdf%3Apentaho-cdf-require%3A20-samples%3Ahome_dashboard_2%3Ahome_dashboard_metalayer.xcdf/generatedContent"); //NOTE - we have to wait for loading disappear this.elemHelper.WaitForElementInvisibility(driver, By.cssSelector("div.blockUI.blockOverlay")); //Wait for title become visible and with value 'Community Dashboard Framework' wait.until(ExpectedConditions.titleContains("Community Dashboard Framework")); //Wait for visibility of 'Top Ten Customers' wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@id='titleObject']"))); // Validate the sample that we are testing is the one assertEquals("Community Dashboard Framework", driver.getTitle()); assertEquals("Top Ten Customers", this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@id='titleObject']"))); /* * ## Step 2 */ //Wait for visibility of 'topTenCustomersDetailsObject' the text 'Details' WebElement linkDetails = this.elemHelper.FindElement(driver, By.linkText("Details...")); assertEquals("Details...", linkDetails.getText()); //click on the 'Details...' linkDetails.click(); /* * ## Step 3 */ //Wait for the frame this.elemHelper.WaitForElementPresenceAndVisible(driver, By.id("fancybox-content")); this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//iframe")); WebElement frame = this.elemHelper.FindElement(driver, By.xpath("//iframe")); String valueFrameAttrSrc = frame.getAttribute("src"); //Check if we have the sizes 500 and 600 assertTrue(StringUtils.containsIgnoreCase(valueFrameAttrSrc, "&width=500&height=600")); //NOTE - we have to wait for loading disappear this.elemHelper.WaitForElementInvisibility(driver, By.cssSelector("div.blockUI.blockOverlay")); //Wait for the element be visible. WebDriver driverFrame = driver.switchTo().frame(frame); assertNotNull(this.elemHelper.FindElement(driverFrame, By.xpath("//div[@id='internal_content']"))); assertEquals("Measures", this.elemHelper.WaitForElementPresentGetText(driverFrame, By.xpath("//div[@id='internal_content']/table/tbody/tr[2]/td[2]/p/table/tbody/tr/th[2]"))); assertEquals("Australian Collectors, Co.", this.elemHelper.WaitForElementPresentGetText(driverFrame, By .xpath("//div[@id='internal_content']/table[1]/tbody/tr[2]/td[2]/p[1]/table/tbody/tr[5]/th/div"))); assertEquals("180,125", this.elemHelper.WaitForElementPresentGetText(driverFrame, By.xpath("//div[@id='internal_content']/table[1]/tbody/tr[2]/td[2]/p[1]/table/tbody/tr[7]/td"))); //Close pop-up driver.switchTo().defaultContent(); wait.until(ExpectedConditions.elementToBeClickable(By.id("fancybox-close"))); String background = this.elemHelper.FindElement(driver, By.cssSelector("#fancybox-close")) .getCssValue("background-image"); String background1 = background.substring(background.indexOf(34) + 1, background.lastIndexOf(34)); assertEquals(baseUrl + "plugin/pentaho-cdf/api/resources/js/compressed/lib/fancybox/fancybox.png", background1); this.elemHelper.ClickJS(driver, By.id("fancybox-close")); this.elemHelper.WaitForElementInvisibility(driver, By.id("fancybox-content")); assertEquals("200", Integer.toString(HttpUtils.GetResponseCode(background1, "admin", "password"))); }
From source file:com.pentaho.ctools.cdf.require.MonthPickerComponent.java
License:Apache License
/** * ############################### Test Case 1 ############################### * * Test Case Name:/* w w w .j a v a 2s. c o m*/ * Reload Sample * Description: * Reload the sample (not refresh page). * Steps: * 1. Click in Code and then click in button 'Try me'. */ @Test public void tc1_PageContent_DisplayTitle() { this.log.info("tc1_PageContent_DisplayTitle"); // Wait for title become visible and with value 'Community Dashboard Framework' wait.until(ExpectedConditions.titleContains("Community Dashboard Framework")); // Wait for visibility of 'VisualizationAPIComponent' wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); // Validate the sample that we are testing is the one assertEquals("Community Dashboard Framework", driver.getTitle()); assertEquals("MonthPickerComponent", this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); }
From source file:com.pentaho.ctools.cdf.require.MultiButtonComponent.java
License:Apache License
/** * ############################### Test Case 2 ############################### * * Test Case Name:// w w w .j av a2s . c om * Reload Sample * Description: * Reload the sample (not refresh page). * Steps: * 1. Click in Code and then click in button 'Try me'. */ @Test public void tc1_PageContent_DisplayTitle() { this.log.info("tc1_PageContent_DisplayTitle"); // Wait for title become visible and with value 'Community Dashboard Framework' wait.until(ExpectedConditions.titleContains("Community Dashboard Framework")); // Wait for visibility of 'VisualizationAPIComponent' wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); // Validate the sample that we are testing is the one assertEquals("Community Dashboard Framework", driver.getTitle()); assertEquals("MultiButtonComponent", this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); }
From source file:com.pentaho.ctools.cdf.require.RadioComponent.java
License:Apache License
/** * ############################### Test Case 2 ############################### * * Test Case Name://from w w w . ja v a 2 s . c om * Reload Sample * Description: * Reload the sample (not refresh page). * Steps: * 1. Click in Code and then click in button 'Try me'. */ @Test public void tc1_PageContent_DisplayTitle() { this.log.info("tc1_PageContent_DisplayTitle"); // Wait for title become visible and with value 'Community Dashboard Framework' wait.until(ExpectedConditions.titleContains("Community Dashboard Framework")); // Wait for visibility of 'VisualizationAPIComponent' wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); // Validate the sample that we are testing is the one assertEquals("Community Dashboard Framework", driver.getTitle()); assertEquals("RadioComponent", this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); }
From source file:com.pentaho.ctools.cdf.require.RadioComponent.java
License:Apache License
/** * ############################### Test Case 3 ############################### * * Test Case Name:/*from w ww. j av a2 s.c o m*/ * Select options one by one * Description: * We pretend validate the selection of each option one by one. * Steps: * 1. Select Eastern * 2. Select Central * 3. Select Western * 4. Select Southern */ @Test public void tc3_SelectEachItem_AlertDisplayed() { this.log.info("tc3_SelectEachItem_AlertDisplayed"); /* * ## Step 1 */ wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@value='Eastern']"))); this.elemHelper.FindElement(driver, By.xpath("//input[@value='Eastern']")).click(); wait.until(ExpectedConditions.alertIsPresent()); Alert alert = driver.switchTo().alert(); String confirmationMsg = alert.getText(); alert.accept(); assertEquals("you chose: Eastern", confirmationMsg); /* * ## Step 2 */ wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@value='Central']"))); this.elemHelper.FindElement(driver, By.xpath("//input[@value='Central']")).click(); wait.until(ExpectedConditions.alertIsPresent()); alert = driver.switchTo().alert(); confirmationMsg = alert.getText(); alert.accept(); assertEquals("you chose: Central", confirmationMsg); /* * ## Step 3 */ wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@value='Western']"))); this.elemHelper.FindElement(driver, By.xpath("//input[@value='Western']")).click(); wait.until(ExpectedConditions.alertIsPresent()); alert = driver.switchTo().alert(); confirmationMsg = alert.getText(); alert.accept(); assertEquals("you chose: Western", confirmationMsg); /* * ## Step 4 */ wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@value='Southern']"))); this.elemHelper.FindElement(driver, By.xpath("//input[@value='Southern']")).click(); wait.until(ExpectedConditions.alertIsPresent()); alert = driver.switchTo().alert(); confirmationMsg = alert.getText(); alert.accept(); assertEquals("you chose: Southern", confirmationMsg); }
From source file:com.pentaho.ctools.cdf.require.RadioComponent.java
License:Apache License
/** * ############################### Test Case 4 ############################### * * Test Case Name://ww w . j a va 2s . c o m * Select arbitrary options * Description: * We pretend validate the selection every available options but arbitrary. * Steps: * 1. Select Western * 2. Select Southern * 3. Select Central * 4. Select Western */ @Test public void tc4_SelectArbitrary_AlertDisplayed() { this.log.info("tc4_SelectArbitrary_AlertDisplayed"); /* * ## Step 1 */ wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@value='Western']"))); this.elemHelper.FindElement(driver, By.xpath("//input[@value='Western']")).click(); wait.until(ExpectedConditions.alertIsPresent()); Alert alert = driver.switchTo().alert(); String confirmationMsg = alert.getText(); alert.accept(); assertEquals("you chose: Western", confirmationMsg); /* * ## Step 2 */ wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@value='Southern']"))); this.elemHelper.FindElement(driver, By.xpath("//input[@value='Southern']")).click(); wait.until(ExpectedConditions.alertIsPresent()); alert = driver.switchTo().alert(); confirmationMsg = alert.getText(); alert.accept(); assertEquals("you chose: Southern", confirmationMsg); /* * ## Step 3 */ wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@value='Central']"))); this.elemHelper.FindElement(driver, By.xpath("//input[@value='Central']")).click(); wait.until(ExpectedConditions.alertIsPresent()); alert = driver.switchTo().alert(); confirmationMsg = alert.getText(); alert.accept(); assertEquals("you chose: Central", confirmationMsg); /* * ## Step 4 */ wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@value='Western']"))); this.elemHelper.FindElement(driver, By.xpath("//input[@value='Western']")).click(); wait.until(ExpectedConditions.alertIsPresent()); alert = driver.switchTo().alert(); confirmationMsg = alert.getText(); alert.accept(); assertEquals("you chose: Western", confirmationMsg); }
From source file:com.pentaho.ctools.cdf.require.SchedulePrptComponent.java
License:Apache License
/** * ############################### Test Case 1 ############################### * * Test Case Name:/*w ww . j a v a 2 s . co m*/ * Validate Page Contents * Description: * Here we want to validate the page contents. * Steps: * 1. Check the widget's title. */ @Test public void tc1_PageContent_DisplayTitle() { this.log.info("tc1_PageContent_DisplayTitle"); // Wait for title become visible and with value 'Community Dashboard Framework' wait.until(ExpectedConditions.titleContains("Community Dashboard Framework")); // Wait for visibility of 'VisualizationAPIComponent' wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); // Validate the sample that we are testing is the one assertEquals("Community Dashboard Framework", driver.getTitle()); assertEquals("SchedulePrptComponent", this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@id='dashboardContent']/div/div/div/h2/span[2]"))); }
From source file:com.pentaho.ctools.cdf.require.SchedulePrptComponent.java
License:Apache License
/** * ############################### Test Case 2 ############################### * * Test Case Name:/*from w w w . j av a 2 s. c o m*/ * Create a Schedule * Description: * It is supposed to create a schedule and validate it was created with * specify data and date. * Steps: * 1. Click to create a schedule prpt. * 2. Fill the form and submit * 3. Check for alert. * 4. On Schedule Manager, it is set the schedule. * @throws InterruptedException */ @Test public void tc3_SchedulePrpt_ScheduleCreatedSuccessful() { this.log.info("tc3_SchedulePrpt_ScheduleCreatedSuccessful"); this.bRemoveSchedule = true; String schLocation = "/public"; //Initialize some data SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); SimpleDateFormat sdfDay = new SimpleDateFormat("d"); Date dNow = new Date(); Calendar c = Calendar.getInstance(); c.setTime(dNow); c.add(Calendar.DATE, 1); Date dTomorrow = c.getTime(); c.add(Calendar.DATE, 40); //30th days from today Date d40days = c.getTime(); /* * ## Step 1 */ this.elemHelper.FindElement(driver, By.xpath("//div[@id='sampleObject']/button")).click(); /* * ## Step 2 */ wait.until(ExpectedConditions.presenceOfElementLocated(By.id("jqistate_basicState"))); //Set schedule name this.elemHelper.FindElement(driver, By.id("nameIn")).clear(); this.elemHelper.FindElement(driver, By.id("nameIn")).sendKeys(this.schNameTc3); //Set schedule location this.elemHelper.FindElement(driver, By.id("locationIn")).clear(); this.elemHelper.FindElement(driver, By.id("locationIn")).sendKeys(schLocation); //Select Monthly Select slRecurrence = new Select(this.elemHelper.FindElement(driver, By.id("recurrId"))); slRecurrence.selectByValue("monthly"); //Select Hour Select slHours = new Select(this.elemHelper.FindElement(driver, By.id("hours"))); slHours.selectByValue("9"); //Select Minutes Select slMinutes = new Select(this.elemHelper.FindElement(driver, By.id("minutes"))); slMinutes.selectByValue("17"); //Select AM/FM Select slAMFM = new Select(this.elemHelper.FindElement(driver, By.id("amPm"))); slAMFM.selectByValue("pm"); //Select Option 'The x y of every month this.elemHelper.Click(driver, By.xpath("//div[@id='patternMonth']/input[2]")); //Select Month Select slOccDay = new Select(this.elemHelper.FindElement(driver, By.id("monthOpt1Select"))); slOccDay.selectByValue("1"); //Select Wednesday Select slWeekday = new Select(this.elemHelper.FindElement(driver, By.id("monthOpt2Select"))); slWeekday.selectByValue("3"); //Select Range Of Recurrence //Start - tomorrow this.elemHelper.FindElement(driver, By.id("rangeStartIn")).clear(); this.elemHelper.FindElement(driver, By.id("rangeStartIn")).sendKeys(sdf.format(dTomorrow)); wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//table[@class='ui-datepicker-calendar']"))); WebElement dateCalendar = this.elemHelper.FindElement(driver, By.xpath("//table[@class='ui-datepicker-calendar']")); List<WebElement> columns = dateCalendar.findElements(By.tagName("td")); String tomorrowDay = sdfDay.format(dTomorrow); for (WebElement cell : columns) { String strCell = cell.getText(); if (strCell.equals(tomorrowDay)) { cell.findElement(By.linkText(tomorrowDay)).click(); break; } } //End //Select End Date wait.until(ExpectedConditions.elementToBeClickable(By.id("endByRadio"))); this.elemHelper.FindElement(driver, By.id("endByRadio")).click(); this.elemHelper.FindElement(driver, By.id("endByIn")).sendKeys(sdf.format(d40days)); wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//table[@class='ui-datepicker-calendar']"))); WebElement dateCalendar2 = this.elemHelper.FindElement(driver, By.xpath("//table[@class='ui-datepicker-calendar']")); List<WebElement> columns2 = dateCalendar2.findElements(By.tagName("td")); String day = sdfDay.format(d40days); for (WebElement cell2 : columns2) { String strCell2 = cell2.getText(); if (strCell2.equals(day)) { cell2.findElement(By.linkText(day)).click(); break; } } //Submit Form wait.until(ExpectedConditions.elementToBeClickable(By.id("jqi_basicState_buttonOk"))); this.elemHelper.FindElement(driver, By.id("jqi_basicState_buttonOk")).click(); //Wait for the new window. wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("jqistate_mailState"))); wait.until(ExpectedConditions.elementToBeClickable(By.id("jqi_mailState_buttonOk"))); this.elemHelper.FindElement(driver, By.id("jqi_mailState_buttonOk")).click(); // ## Step 3 wait.until(ExpectedConditions.alertIsPresent()); Alert alert = driver.switchTo().alert(); String confirmationMsg = alert.getText(); alert.accept(); assertEquals(confirmationMsg, "Successfully scheduled."); /* * ## Step 4 */ //-->Need to check if the schedule was created //Go to home page driver.get(PageUrl.PUC); // NOTE - we have to wait for loading disappear this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//div[@class='busy-indicator-container waitPopup']")); //Click in Schedule wait.until(ExpectedConditions.titleContains("Pentaho User Console")); wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//div[@id='pucUserDropDown']/table/tbody/tr/td/div"))); wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//iframe[@id='home.perspective']"))); wait.until(ExpectedConditions .elementToBeClickable(By.xpath("//div[@id='mantle-perspective-switcher']/table/tbody/tr/td[2]"))); this.elemHelper .FindElement(driver, By.xpath("//div[@id='mantle-perspective-switcher']/table/tbody/tr/td[2]")) .click(); WebElement listMenyTr = this.elemHelper.FindElement(driver, By.xpath("//div[@id='customDropdownPopupMajor']/div/div/table/tbody")); List<WebElement> listMenuElementsTrs = listMenyTr.findElements(By.xpath("//td[@class='gwt-MenuItem']")); for (int i = 0; i < listMenuElementsTrs.size(); i++) { WebElement element = listMenuElementsTrs.get(i); if (element.getText().equals("Schedules")) { element.click(); break; } } wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("div.workspaceHeading"))); // Now we are in Schedule page List<WebElement> listScheduleTrs = this.elemHelper .FindElement(driver, By.xpath("//table[@id='schedule-table']/tbody")) .findElements(By.tagName("tr")); String scheduleName = ""; String scheduleRepeats = ""; String scheduleSourceFile = ""; String scheduleOuputLocation = ""; String scheduleLastRun = ""; String scheduleNextRun = ""; String scheduleCreatedBy = ""; String scheduleStatus = ""; for (int j = 1; j <= listScheduleTrs.size(); j++) { WebElement elementFirstDiv = this.elemHelper.FindElement(driver, By.xpath("//table[@id='schedule-table']/tbody/tr[" + j + "]/td/div")); scheduleName = elementFirstDiv.getText(); if (scheduleName.equals(this.schNameTc3)) { scheduleRepeats = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='schedule-table']/tbody/tr[" + j + "]/td[2]/div")); scheduleSourceFile = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='schedule-table']/tbody/tr[" + j + "]/td[3]/div")); scheduleOuputLocation = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='schedule-table']/tbody/tr[" + j + "]/td[4]/div")); scheduleLastRun = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='schedule-table']/tbody/tr[" + j + "]/td[5]/div")); scheduleNextRun = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='schedule-table']/tbody/tr[" + j + "]/td[6]/div")); scheduleCreatedBy = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='schedule-table']/tbody/tr[" + j + "]/td[7]/div")); scheduleStatus = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='schedule-table']/tbody/tr[" + j + "]/td[8]/div")); break; } } //Getting the week day of next run String dayOfWeek = ""; if (!scheduleNextRun.isEmpty()) { try { Date dateNextRun = new SimpleDateFormat("yyyy MMM dd HH:mm:ss", Locale.US).parse(scheduleNextRun); dayOfWeek = new SimpleDateFormat("EE", Locale.US).format(dateNextRun); } catch (ParseException pe) { this.log.error(pe.getMessage()); } } assertEquals(this.schNameTc3, scheduleName); assertEquals("The second Wednesday of every month at 21:17:00", scheduleRepeats); assertEquals("/public/Steel Wheels/Widget Library/Report Snippets/InventorybyLine", scheduleSourceFile); assertEquals(schLocation, scheduleOuputLocation); assertEquals("-", scheduleLastRun); assertEquals("Wed", dayOfWeek); assertEquals("admin", scheduleCreatedBy); assertEquals("Normal", scheduleStatus); }