/*
* Copyright (c) 2005-2011 Grameen Foundation USA
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*
* See also http://www.apache.org/licenses/LICENSE-2.0.html for an
* explanation of the license and how it is applied.
*/
package org.mifos.test.acceptance.framework.testhelpers;
import org.mifos.test.acceptance.framework.admin.AdminPage;
import org.mifos.test.acceptance.framework.admin.ChecklistDetailsPage;
import org.mifos.test.acceptance.framework.admin.ClientDataImportPage;
import org.mifos.test.acceptance.framework.admin.ClientDataImportReviewPage;
import org.mifos.test.acceptance.framework.admin.CustomizeTextAddPage;
import org.mifos.test.acceptance.framework.admin.CustomizeTextViewPage;
import org.mifos.test.acceptance.framework.admin.DefineChecklistParameters;
import org.mifos.test.acceptance.framework.admin.DefineLookupOptionParameters;
import org.mifos.test.acceptance.framework.admin.DefineLookupOptionsPage;
import org.mifos.test.acceptance.framework.admin.ImportLoansPage;
import org.mifos.test.acceptance.framework.admin.ImportLoansReviewPage;
import org.mifos.test.acceptance.framework.admin.ImportSavingsPage;
import org.mifos.test.acceptance.framework.admin.ImportSavingsReviewPage;
import org.mifos.test.acceptance.framework.admin.SystemInfoPage;
import com.thoughtworks.selenium.Selenium;
public class AdminTestHelper {
private final NavigationHelper navigationHelper;
public AdminTestHelper(Selenium selenium) {
this.navigationHelper = new NavigationHelper(selenium);
}
public DefineLookupOptionsPage navigateToDefineLookupOptionsPage() {
return navigationHelper
.navigateToAdminPage()
.navigateDefineLookupOptionsPage();
}
public DefineLookupOptionsPage defineNewLookupOption(DefineLookupOptionParameters lookupOptionParams) {
return navigationHelper
.navigateToAdminPage()
.navigateDefineLookupOptionsPage()
.navigateToDefineLookupOptionPage(lookupOptionParams)
.fillFormAndSubmit(lookupOptionParams);
}
public void verifyDefinedLookupOptionOnCreateNewClientPage(String officeName, DefineLookupOptionParameters lookupOptionParams) {
navigationHelper
.navigateToClientsAndAccountsPage()
.navigateToCreateNewClientPage()
.navigateToCreateClientWithoutGroupPage()
.chooseOffice(officeName)
.verifyLookupOption(lookupOptionParams);
}
public CustomizeTextViewPage addCustomizedText(String originalText, String customText) {
CustomizeTextAddPage customizeTextAddPage = navigationHelper
.navigateToAdminPage()
.navigateToCustomizeTextViewPage()
.navigateToCustomizeTextAddPage();
customizeTextAddPage.setOriginalText(originalText);
customizeTextAddPage.setCustomText(customText);
return customizeTextAddPage.submit();
}
public SystemInfoPage navigateToSystemInfoPage() {
return navigationHelper
.navigateToAdminPage()
.navigateToSystemInfoPage();
}
public AdminPage defineNewChecklist(DefineChecklistParameters checklistParams) {
return navigationHelper
.navigateToAdminPage()
.navigateToDefineNewChecklistPage()
.fillFormAndNavigateToPreviewPage(checklistParams)
.submit();
}
public ChecklistDetailsPage editChecklist(String currentChecklistName, DefineChecklistParameters checklistParams) {
return navigateToChecklistDetailsPage(currentChecklistName)
.navigateToEditChecklistPage()
.fillFormAndNavigateToPreviewPage(checklistParams)
.submit();
}
public ChecklistDetailsPage navigateToChecklistDetailsPage(String checklistName) {
return navigationHelper
.navigateToAdminPage()
.navigateToViewChecklistsPage()
.navigateToChecklistDetailsPage(checklistName);
}
public CustomizeTextViewPage removeCustomizedText(String originalText) {
return navigationHelper
.navigateToAdminPage()
.navigateToCustomizeTextViewPage()
.removeCustomizedText(originalText);
}
/**
* Navigates to import loan accounts page, loads file for parser and displays parser's result.
* @param importFile path to file/resource
* @return
*/
public ImportLoansReviewPage loadImportLoansFileAndSubmitForReview(String importFile) {
AdminPage adminPage = navigationHelper.navigateToAdminPage();
ImportLoansPage selectFilePage=adminPage.navigateToImportLoansPage();
selectFilePage.verifyPage();
ImportLoansReviewPage reviewPage =selectFilePage.submitToReview(importFile);
reviewPage.verifyPage();
return reviewPage;
}
public ImportSavingsReviewPage loadImportSavingsFileAndSubmitForReview(String importFile) {
AdminPage adminPage = navigationHelper.navigateToAdminPage();
ImportSavingsPage selectFilePage=adminPage.navigateToImportSavingPage();
selectFilePage.verifyPage();
ImportSavingsReviewPage reviewPage =selectFilePage.submitToReview(importFile);
reviewPage.verifyPage();
return reviewPage;
}
public ClientDataImportReviewPage loadClientDataImportFileAndSubmitForReview(String importFile) {
AdminPage adminPage = navigationHelper.navigateToAdminPage();
ClientDataImportPage selectFilePage=adminPage.navigateToClientDataImportPage();
selectFilePage.verifyPage();
ClientDataImportReviewPage reviewPage =selectFilePage.submitToReview(importFile);
reviewPage.verifyPage();
return reviewPage;
}
}