com.cengage.mindtap.keywords.CSMPageActions.java Source code

Java tutorial

Introduction

Here is the source code for com.cengage.mindtap.keywords.CSMPageActions.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cengage.mindtap.keywords;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author QAI
 */
public class CSMPageActions extends BasePageActions {

    public CSMPageActions(WebDriver driver) {
        super(driver, "CSMPage");
    }

    public void clickOnEditCSMCourse() {
        element("edit_csm_course_link").click();
    }

    public void clickOnAddCoInstuctorOrTALink() {
        waitTOSync();
        waitForElementPresent("course_info_header");
        scrollDown(element("add_inst_ta_link"));
        element("add_inst_ta_link").click();
    }

    public void addCoInstructorToCourse() {
        element("add_coinst_email_txtbox").sendKeys("inst24_mtx_240615@qaittest.com");
        element("add_btn").click();
    }

    public void addTAtoCourse() {
        element("add_coinst_email_txtbox").sendKeys("mt10_ta_1020@swlearning.com");
        element("add_btn").click();
        waitTOSync();
    }

    public void clickSaveChangesButtonOnEditCoursePage() {
        element("save_changes_btn").click();
        waitTOSync();
    }

    public void verifyChangesAreSavedFromEditCoursePage() {
        waitForElementPresent("heading_manage_courses");
        //     Assert.assertEquals(driver.getTitle(), "Manage Courses");

    }

    public void coinstructorLaunchCourse(String courseKey, String env) {
        waitForElementPresent("book_link");
        //element("manage_course").click();
        waitForElementPresent("courseName_link");
        String hrefAttribute = element("courseName_link", courseKey).getAttribute("href");
        String[] hrefURL;
        hrefURL = hrefAttribute.split("http.*.ng.cengage.com");
        System.out.println("URL Fetched:\n" + hrefAttribute);
        if (env.equals("STAGE")) {
            System.out.println("Navigated To STAGE Env.");
            System.out.println("http://mindtap-staging.cengage.com" + hrefURL[1]);
            driver.navigate().to("http://mindtap-staging.cengage.com" + hrefURL[1]);
        }
    }

    public void verifyCourseSettingsLink() {
        waitForElementPresent("user_menu_link");
        clickOnElementUsingActionBuilder(element("user_menu_link"));
        waitForElementPresent("course_settings_link");
        isElementDisplayed(element("course_settings_link"));
    }

    public void courseSettingsWindowlaunch() {
        clickOnElementUsingActionBuilder(element("course_settings_link"));
        waitTOSync();
    }

    public void clickOnInstructorAndTAPermissions() {
        waitForElementPresent("course_settings_title");
        waitForElementPresent("inst_ta_expand");
        element("inst_ta_expand").click();
    }

    public void verifyPrimaryInstructorAndTAareDisplayed() {
        isElementDisplayed(element("primary_inst_expand"));
        isElementDisplayed(element("teach_assist_expand"));
    }

    public void CoInstructorCapabilitiesByDefault() {
        clickOnElementUsingActionBuilder(element("co_inst_expand"));
    }

    public void verifyAllCoInstructorCapabilitiesChecked() {
        List<WebElement> checkBoxes = new ArrayList();
        checkBoxes = elements("co_inst_capabilities_allchkboxes");
        for (WebElement box : checkBoxes) {
            Assert.assertTrue(box.isSelected(), "FAIL : CheckBox is not selected");
        }
    }

    public void TACapabilitiesByDefault() {
        waitForElementPresent("teach_assist_expand");
        clickOnElementUsingActionBuilder(element("teach_assist_expand"));
        waitTOSync();
        scrollDown(element("ta_manage_lpn_cap_chkbox"));
        List<WebElement> checkBoxes = new ArrayList();
        checkBoxes = elements("ta_capabilities_allchkboxes");
        for (WebElement box : checkBoxes) {
            Assert.assertFalse(box.isSelected(), "FAIL : CheckBox is selected for TA by default");
        }
    }

    public void CoIntructorEditTACapabilities() {
        scrollDown(element("ta_manage_lpn_cap_chkbox"));
        List<WebElement> checkBoxes = new ArrayList();
        checkBoxes = elements("ta_capabilities_allchkboxes");
        for (WebElement box : checkBoxes) {
            box.click();
        }
    }

    public void CoInstructorLogout() {
        waitForElementPresent("user_menu_link");
        clickOnElementUsingActionBuilder(element("user_menu_link"));
        clickOnElementUsingActionBuilder(element("logout_link"));
        waitForElementPresent("logout_mt_text");
    }

    public void instructorLaunchCSMCourse(String courseKey, String env) {
        waitForElementPresent("book_link");
        // element("manage_course").click();
        waitForElementPresent("courseName_link");
        String hrefAttribute = element("courseName_link", courseKey).getAttribute("href");
        String[] hrefURL;
        hrefURL = hrefAttribute.split("http.*.ng.cengage.com");
        System.out.println("URL Fetched:\n" + hrefAttribute);
        if (env.equals("STAGE")) {
            System.out.println("Navigated To STAGE Env.");
            System.out.println("http://mindtap-staging.cengage.com" + hrefURL[1]);
            driver.navigate().to("http://mindtap-staging.cengage.com" + hrefURL[1]);
        }
    }

    public void verifyCoInstructorAndTAareDisplayed() {
        isElementDisplayed(element("co_inst_expand"));
        isElementDisplayed(element("teach_assist_expand"));
    }

    public void instructorEditsCapabilitiesOfTA() {
        clickOnElementUsingActionBuilder(element("teach_assist_expand"));
        waitTOSync();
        scrollDown(element("ta_manage_lpn_cap_chkbox"));
        List<WebElement> checkBoxes = new ArrayList();
        checkBoxes = elements("ta_capabilities_allchkboxes");
        for (WebElement box : checkBoxes) {
            if (box.isSelected()) {
                clickOnElementUsingActionBuilder(box);
            }
        }

    }

    public void savePermissionButtonAndDoneButtonOnCSMWindow() {
        scrollDown(element("ta_grade_capability_chkbox"));
        Assert.assertTrue(isElementDisplayed(element("save_permissions_btn")),
                "FAIL: Save Permission Button is Not Displaying in CSM");
        Assert.assertTrue(isElementDisplayed(element("csm_done_btn")),
                "FAIL: Done Button is Not Displaying in CSM");
    }

    public void saveCSMSettings() {
        clickOnElementUsingActionBuilder(element("save_permissions_btn"));
        waitTOSync();
        clickOnElementUsingActionBuilder(element("csm_done_btn"));
    }

    public void primaryInstructorLogoutAfterSavingCSMSettings() {
        waitForElementPresent("user_menu_link");
        clickOnElementUsingActionBuilder(element("user_menu_link"));
        clickOnElementUsingActionBuilder(element("logout_link"));
        waitForElementPresent("logout_mt_text");
    }

    public void CourseSettingLinkPresentForTA() {
        waitForElementPresent("user_menu_link");
        element("user_menu_link").click();
        waitForElementPresent("course_settings_link");
        Assert.assertTrue(isElementDisplayed(element("course_settings_link")),
                "FAIL : Course Settings Link is Not Displaying for TA");
        waitTOSync();
        element("user_menu_link").click();
    }

    public void setAndClearDueDateTA() {
        waitForElementPresent("date_manager_view_tab");
        clickOnElementUsingActionBuilder(element("date_manager_view_tab"));
        waitForElementPresent("ta_set_dd_chkbox");
        clickOnElementUsingActionBuilder(element("ta_set_dd_chkbox"));
        clickOnElementUsingActionBuilder(element("ta_dd_calender"));
        waitTOSync();
        clickOnElementUsingActionBuilder(element("date_manager_done_btn"));
        waitTOSync();
        clickOnElementUsingActionBuilder(element("ta_set_dd_chkbox"));
        clickOnElementUsingActionBuilder(element("ta_dd_calender"));
        waitTOSync();
        clickOnElementUsingActionBuilder(element("date_manager_clear_btn"));
        waitTOSync();
    }

    public void logOutTAFromMindtap() {
        waitForElementPresent("user_menu_link");
        clickOnElementUsingActionBuilder(element("user_menu_link"));
        clickOnElementUsingActionBuilder(element("logout_link"));
        waitForElementPresent("logout_mt_text");
    }

    public void removeCoInstructorAndTA() {
        waitForElementPresent("course_info_header");
        scrollDown(element("add_inst_ta_link"));
        waitTOSync();
        List<WebElement> checkBoxes = new ArrayList();
        checkBoxes = elements("remove_coinst_ta_cross_btn");
        for (WebElement box : checkBoxes) {
            box.click();
        }

        scrollDown(element("add_inst_ta_link"));
        waitTOSync();
        clickOnElementUsingActionBuilder(element("save_changes_btn"));
        waitForElementPresent("heading_manage_courses");
    }

    public void editCapabilitiesTA() {
        waitForElementPresent("user_menu_link");
        clickOnElementUsingActionBuilder(element("user_menu_link"));
        clickOnElementUsingActionBuilder(element("course_settings_link"));
        waitForElementPresent("course_settings_title");
        clickOnElementUsingActionBuilder(element("inst_ta_expand"));
        waitTOSync();
        clickOnElementUsingActionBuilder(element("teach_assist_expand"));
        scrollDown(element("ta_manage_lpn_cap_chkbox"));
        List<WebElement> checkBoxes = new ArrayList();
        checkBoxes = elements("ta_capabilities_allchkboxes");
        for (WebElement box : checkBoxes) {
            if (box.isSelected()) {
                clickOnElementUsingActionBuilder(box);
            }
        }
        scrollDown(element("ta_grade_capability_chkbox"));
        clickOnElementUsingActionBuilder(element("save_permissions_btn"));
        waitTOSync();
        waitTOSync();
        clickOnElementUsingActionBuilder(element("csm_done_btn"));

    }
}