//////////////////////////////////////////////////////////////////////// // // Copyright (c) 2009-2013 Denim Group, Ltd. // // The contents of this file are subject to the Mozilla Public 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.mozilla.org/MPL/ // // Software distributed under the License is distributed on an "AS IS" // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the // License for the specific language governing rights and limitations // under the License. // // The Original Code is ThreadFix. // // The Initial Developer of the Original Code is Denim Group, Ltd. // Portions created by Denim Group, Ltd. are Copyright (C) // Denim Group, Ltd. All Rights Reserved. // // Contributor(s): Denim Group, Ltd. // //////////////////////////////////////////////////////////////////////// package com.denimgroup.threadfix.selenium.tests; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.openqa.selenium.remote.RemoteWebDriver; import com.denimgroup.threadfix.data.entities.DefectTracker; import com.denimgroup.threadfix.selenium.pages.ApplicationDetailPage; import com.denimgroup.threadfix.selenium.pages.DefectTrackerIndexPage; import com.denimgroup.threadfix.selenium.pages.LoginPage; public class DefectTrackerTests extends BaseTest { public DefectTrackerTests(String browser) { super(browser); } private RemoteWebDriver driver; private static LoginPage loginPage; private static final String TEST_BUGZILLA_URL = DefectTrackerIndexPage.DT_URL; private static final String TEST_JIRA_URL = DefectTrackerIndexPage.JIRA_URL; private static String JIRA_USERNAME = null; private static String JIRA_PASSWORD = null; private static String JIRA_URL = null; private static String JIRA_PROJECTNAME = null; private static String BUGZILLA_USERNAME = null; private static String BUGZILLA_PASSWORD = null; private static String BUGZILLA_URL = null; private static String BUGZILLA_PROJECTNAME = null; private static String TFS_USERNAME = null; private static String TFS_PASSWORD = null; private static String TFS_URL = null; private static String TFS_PROJECTNAME = null; String longInput = "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" + "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" + "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" + "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" + "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" + "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" + "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" + "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"; @Before public void init() { super.init(); driver = (RemoteWebDriver) super.getDriver(); loginPage = LoginPage.open(driver); assignVars(); } private void assignVars() { String tmp = System.getProperty("JIRA_USERNAME"); if (tmp != null) { JIRA_USERNAME = tmp; } tmp = System.getProperty("JIRA_PASSWORD"); if (tmp != null) { JIRA_PASSWORD = tmp; } tmp = System.getProperty("JIRA_URL"); if (tmp != null) { JIRA_URL = tmp; } tmp = System.getProperty("jiraProjectName"); if (tmp != null) { JIRA_PROJECTNAME = tmp; } tmp = System.getProperty("BUGZILLA_USERNAME"); if (tmp != null) { BUGZILLA_USERNAME = tmp; } tmp = System.getProperty("BUGZILLA_PASSWORD"); if (tmp != null) { BUGZILLA_PASSWORD = tmp; } tmp = System.getProperty("BUGZILLA_URL"); if (tmp != null) { BUGZILLA_URL = tmp; } tmp = System.getProperty("bugzillaProjectName"); if (tmp != null) { BUGZILLA_PROJECTNAME = tmp; } tmp = System.getProperty("TFS_USERNAME"); if (tmp != null) { TFS_USERNAME = tmp; } tmp = System.getProperty("TFS_PASSWORD"); if (tmp != null) { TFS_PASSWORD = tmp; } tmp = System.getProperty("TFS_URL"); if (tmp != null) { TFS_URL = tmp; } tmp = System.getProperty("TFS_PROJNAME"); if (tmp != null) { TFS_PROJECTNAME = tmp; } } // old numbering scheme is being used for edit and delete buttons waiting // for that change @Test public void testCreateDefectTracker() { String newDefectTrackerName = "testCreateDefectTracker"; String type = "Bugzilla"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); assertFalse( "The defectTracker was already present.", defectTrackerIndexPage .isTextPresentInDefectTrackerTableBody(newDefectTrackerName)); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage.enterName(null, newDefectTrackerName) .enterType(null, type).enterURL(null, TEST_BUGZILLA_URL); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); assertTrue("The defectTracker was not present in the table.", defectTrackerIndexPage.doesNameExist(newDefectTrackerName)); defectTrackerIndexPage = defectTrackerIndexPage.clickDeleteButton(newDefectTrackerName); assertFalse( "The defectTracker was still present after attempted deletion.", defectTrackerIndexPage.doesNameExist(newDefectTrackerName)); loginPage = defectTrackerIndexPage.logout(); } @Test public void testCreateDefectTrackerBoundaries() { String emptyString = ""; String whiteSpaceString = " "; String urlFormatString = "asdfwe"; String emptyInputError = "This field cannot be blank"; String urlError = "Not a valid URL"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); // Test empty and whitespace input defectTrackerIndexPage = defectTrackerIndexPage .enterName(null, emptyString).enterURL(null, emptyString) .clickAddDefectTrackerButtonInvalid(); assertTrue("The correct error text was not present", emptyInputError.equals(defectTrackerIndexPage .getNameErrorsText())); assertTrue("The correct error text was not present", emptyInputError.equals(defectTrackerIndexPage .getUrlErrorsText())); defectTrackerIndexPage = defectTrackerIndexPage .enterName(null, whiteSpaceString) .enterURL(null, whiteSpaceString) .clickAddDefectTrackerButtonInvalid(); assertTrue("The correct error text was not present", emptyInputError.equals(defectTrackerIndexPage .getNameErrorsText())); assertTrue("The correct error text was not present", urlError.equals(defectTrackerIndexPage.getUrlErrorsText())); // Test URL format checking defectTrackerIndexPage = defectTrackerIndexPage .enterName(null, "normal name").enterURL(null, urlFormatString) .clickAddDefectTrackerButtonInvalid(); assertTrue("The URL format check error text was not present.", defectTrackerIndexPage.getUrlErrorsText().equals(urlError)); // Test url validation defectTrackerIndexPage = defectTrackerIndexPage .enterName(null, longInput) .enterURL(null, "http://" + longInput) .clickAddDefectTrackerButtonInvalid(); assertTrue( "The Defect Tracker URL was not validated correctly.", defectTrackerIndexPage.getUrlErrorsText().equals( "URL is invalid.")); // Test browser length limit defectTrackerIndexPage = defectTrackerIndexPage.enterName(null, longInput).enterURL(null, TEST_BUGZILLA_URL); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); // might need to change the row number that this is checking assertTrue( "The Defect Tracker name was not cropped correctly.", defectTrackerIndexPage.getDefectTrackerName(1).length() == DefectTracker.NAME_LENGTH); // Test name duplication checking String orgName = defectTrackerIndexPage.getDefectTrackerName(1); defectTrackerIndexPage = defectTrackerIndexPage .clickDefectTrackersLink().clickAddDefectTrackerButton(); defectTrackerIndexPage = defectTrackerIndexPage .enterName(null, orgName).enterURL(null, TEST_BUGZILLA_URL) .clickAddDefectTrackerButtonInvalid(); assertTrue(defectTrackerIndexPage.getNameErrorsText().equals( "That name is already taken.")); defectTrackerIndexPage = defectTrackerIndexPage .clickDefectTrackersLink().clickDeleteButton(orgName); } // TODO improve this test - harder to fake with URL checking. @Test public void testEditDefectTracker() { String newDefectTrackerName = "testEditDefectTracker"+ getRandomString(10); String editedDefectTrackerName = "testEditDefectTracker-edit"+ getRandomString(10); String type1 = "Bugzilla"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); assertFalse( "The defectTracker was already present.", defectTrackerIndexPage .isTextPresentInDefectTrackerTableBody(newDefectTrackerName)); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage = defectTrackerIndexPage .enterName(null, newDefectTrackerName).enterType(null, type1) .enterURL(null, TEST_BUGZILLA_URL); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); assertTrue("DefectTracker Page did not save the name correctly.", defectTrackerIndexPage.doesNameExist(newDefectTrackerName)); assertTrue("DefectTracker Page did not save the type correctly.", defectTrackerIndexPage.doesTypeExistForName( newDefectTrackerName, type1)); assertTrue("DefectTracker Page did not save the URL correctly.", defectTrackerIndexPage.doesURLExistForName( newDefectTrackerName, TEST_BUGZILLA_URL)); defectTrackerIndexPage = defectTrackerIndexPage .clickEditLink(newDefectTrackerName); defectTrackerIndexPage = defectTrackerIndexPage.enterName( newDefectTrackerName, editedDefectTrackerName); defectTrackerIndexPage = defectTrackerIndexPage .clickUpdateDefectTrackerButton(); assertTrue("Editing did not change the name.", defectTrackerIndexPage .doesNameExist(editedDefectTrackerName)); defectTrackerIndexPage = defectTrackerIndexPage .clickDefectTrackersLink(); defectTrackerIndexPage = defectTrackerIndexPage .clickDefectTrackersLink().clickDeleteButton( editedDefectTrackerName); assertFalse( "The defectTracker was still present after attempted deletion.", defectTrackerIndexPage.doesNameExist(newDefectTrackerName)); loginPage = defectTrackerIndexPage.logout(); } // TODO improve this test - harder to fake with URL checking. @Test public void testDeleteDefectTracker() { String newDefectTrackerName = "testEditDefectTracker"+ getRandomString(10); String type1 = "Bugzilla"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); assertFalse("The defectTracker was already present.", defectTrackerIndexPage.doesNameExist(newDefectTrackerName)); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage = defectTrackerIndexPage .enterName(null, newDefectTrackerName).enterType(null, type1) .enterURL(null, TEST_BUGZILLA_URL); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); defectTrackerIndexPage = defectTrackerIndexPage.clickDeleteButton( newDefectTrackerName).clickDefectTrackersLink(); assertFalse( "The defectTracker was still present after attempted deletion.", defectTrackerIndexPage.doesNameExist(newDefectTrackerName)); loginPage = defectTrackerIndexPage.logout(); } // Not working yet @Test @Ignore public void testEditDefectTrackerBoundaries() { String newDefectTrackerName = "testEditDefectTracker"; String defectTrackerNameDuplicateTest = "testEditDefectTracker-edit"; String type2 = "Bugzilla"; String emptyString = ""; String whiteSpaceString = " "; String emptyInputError = "This field cannot be blank"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); // create Dummy WAF defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage = defectTrackerIndexPage .enterName(null, defectTrackerNameDuplicateTest) .enterType(null, type2).enterURL(null, TEST_BUGZILLA_URL); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage = defectTrackerIndexPage .enterName(null, newDefectTrackerName).enterType(null, type2) .enterURL(null, TEST_BUGZILLA_URL); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); defectTrackerIndexPage = defectTrackerIndexPage .clickEditLink(newDefectTrackerName); // Test submission with no changes defectTrackerIndexPage = defectTrackerIndexPage .clickUpdateDefectTrackerButton(); assertTrue("DefectTracker Page did not save the name correctly.", defectTrackerIndexPage.doesNameExist(newDefectTrackerName)); assertTrue("DefectTracker Page did not save the type correctly.", defectTrackerIndexPage.doesTypeExistForName( newDefectTrackerName, type2)); assertTrue("DefectTracker Page did not save the url correctly.", defectTrackerIndexPage.doesURLExistForName( newDefectTrackerName, TEST_BUGZILLA_URL)); defectTrackerIndexPage = defectTrackerIndexPage .clickEditLink(newDefectTrackerName); // Test empty and whitespace input defectTrackerIndexPage.enterName(newDefectTrackerName, emptyString); defectTrackerIndexPage = defectTrackerIndexPage .clickUpdateDefectTrackerButtonInvalid(); assertTrue("The correct error text was not present", emptyInputError.equals(defectTrackerIndexPage .getNameErrorsText())); defectTrackerIndexPage .enterName(newDefectTrackerName, whiteSpaceString); defectTrackerIndexPage = defectTrackerIndexPage .clickUpdateDefectTrackerButtonInvalid(); assertTrue("The correct error text was not present", emptyInputError.equals(defectTrackerIndexPage .getNameErrorsText())); // Test browser length limit defectTrackerIndexPage.enterName(newDefectTrackerName, longInput); defectTrackerIndexPage = defectTrackerIndexPage .clickUpdateDefectTrackerButton(); newDefectTrackerName = defectTrackerIndexPage.getNameText(1); assertTrue( "The defectTracker name was not cropped correctly.", defectTrackerIndexPage.getNameText(1).length() == DefectTracker.NAME_LENGTH); // Test name duplication checking defectTrackerIndexPage = defectTrackerIndexPage .clickEditLink(defectTrackerNameDuplicateTest); defectTrackerIndexPage.setNameInput(defectTrackerNameDuplicateTest); defectTrackerIndexPage.clickUpdateDefectTrackerButtonInvalid(); assertTrue(defectTrackerIndexPage.getNameErrorsText().equals( "That name is already taken.")); // Delete and logout defectTrackerIndexPage = defectTrackerIndexPage.clickDeleteButton( newDefectTrackerName).clickDeleteButton( defectTrackerNameDuplicateTest); loginPage = defectTrackerIndexPage.logout(); } // Certificate Problems @Test @Ignore public void TFSCreate() { String newDefectTrackerName = "testEditDefectTracker" + getRandomString(10); String url = "https://tfs.denimgroup.com:8080"; String type2 = "Microsoft TFS"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage = defectTrackerIndexPage.enterName(null, newDefectTrackerName); defectTrackerIndexPage = defectTrackerIndexPage.enterType(null, type2); defectTrackerIndexPage = defectTrackerIndexPage.enterURL(null, url); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); defectTrackerIndexPage = defectTrackerIndexPage .clickEditLink(newDefectTrackerName); defectTrackerIndexPage = defectTrackerIndexPage.enterName( newDefectTrackerName, newDefectTrackerName + " - edited"); defectTrackerIndexPage = defectTrackerIndexPage.enterType( newDefectTrackerName, type2); defectTrackerIndexPage = defectTrackerIndexPage.enterURL( newDefectTrackerName, url); defectTrackerIndexPage = defectTrackerIndexPage .clickUpdateDefectTrackerButton(); assertTrue( "DefectTracker Page did not create correctly.", defectTrackerIndexPage .isTextPresentInDefectTrackerTableBody(newDefectTrackerName)); // Delete and logout defectTrackerIndexPage = defectTrackerIndexPage.clickDeleteButton( newDefectTrackerName).clickDefectTrackersLink(); assertFalse( "DefectTracker Page did delete.", defectTrackerIndexPage .isTextPresentInDefectTrackerTableBody(newDefectTrackerName)); loginPage = defectTrackerIndexPage.clickDefectTrackersLink().logout(); } @Test @Ignore public void TFSEdit() { String newDefectTrackerName = "testEditDefectTracker" + getRandomString(10); String url = "https://tfs.denimgroup.com:8080"; String type2 = "Microsoft TFS"; String replacementName = "replacementDefectTracker" + getRandomString(10); DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage.setNameInput(newDefectTrackerName); defectTrackerIndexPage.setDefectTrackerTypeSelect(type2); defectTrackerIndexPage.setUrlInput(url); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); defectTrackerIndexPage = defectTrackerIndexPage .clickEditLink(newDefectTrackerName); defectTrackerIndexPage = defectTrackerIndexPage .clickUpdateDefectTrackerButton(); assertTrue("DefectTracker Page did not create correctly.", defectTrackerIndexPage.doesNameExist(newDefectTrackerName)); defectTrackerIndexPage = defectTrackerIndexPage.clickEditLink( newDefectTrackerName).setNameInput(replacementName); defectTrackerIndexPage = defectTrackerIndexPage .clickUpdateDefectTrackerButton(); assertTrue("DefectTracker Page did not edit correctly.", defectTrackerIndexPage.doesNameExist(replacementName)); // Delete and logout defectTrackerIndexPage = defectTrackerIndexPage .clickDeleteButton(replacementName); loginPage = defectTrackerIndexPage.logout(); } @Test public void jiraEdit() { String newDefectTrackerName = "testEditDefectTracker" + getRandomString(4); String type2 = "Jira"; String replacementName = "replacementDefectTracker" + getRandomString(4); DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user","password") .clickDefectTrackersLink() .clickAddDefectTrackerButton() .enterName(null, newDefectTrackerName) .enterType(null, type2) .enterURL(null, TEST_JIRA_URL) .clickSaveNewDefectTracker() .clickEditLink(newDefectTrackerName) .clickUpdateDefectTrackerButton(); assertTrue("DefectTracker Page did not create correctly.", defectTrackerIndexPage.doesNameExist(newDefectTrackerName)); defectTrackerIndexPage = defectTrackerIndexPage.clickEditLink(newDefectTrackerName) .enterName(newDefectTrackerName,replacementName) .clickUpdateDefectTrackerButton(); assertTrue("DefectTracker Page did not edit correctly.", defectTrackerIndexPage.doesNameExist(replacementName)); // Delete and logout defectTrackerIndexPage = defectTrackerIndexPage .clickDefectTrackersLink().clickDeleteButton(replacementName); } @Test public void jiraCreate() { String newDefectTrackerName = "testEditDefectTracker" + getRandomString(10); String type2 = "Jira"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); defectTrackerIndexPage = defectTrackerIndexPage.clickAddDefectTrackerButton() .enterName(null,newDefectTrackerName) .enterType(null, type2) .enterURL(null,TEST_JIRA_URL) .clickSaveNewDefectTracker(); assertTrue("DefectTracker Page did not create correctly.", defectTrackerIndexPage.isTextPresentInDefectTrackerTableBody(newDefectTrackerName)); // Delete and logout defectTrackerIndexPage = defectTrackerIndexPage.clickDeleteButton(newDefectTrackerName) .clickDefectTrackersLink(); assertFalse("DefectTracker Page did not delete.", defectTrackerIndexPage.isTextPresentInDefectTrackerTableBody(newDefectTrackerName)); loginPage = defectTrackerIndexPage.clickDefectTrackersLink().logout(); } @Test public void bugzillaEdit() { String newDefectTrackerName = "testEditDefectTracker" + getRandomString(4); String type2 = "Bugzilla"; String replacementName = "replacementDefectTracker" + getRandomString(4); DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user","password") .clickDefectTrackersLink() .clickAddDefectTrackerButton() .enterName(null, newDefectTrackerName) .enterType(null, type2) .enterURL(null, "http://10.2.10.145/bugzilla/") .clickSaveNewDefectTracker() .clickEditLink(newDefectTrackerName) .clickUpdateDefectTrackerButton(); assertTrue("DefectTracker Page did not create correctly.", defectTrackerIndexPage.doesNameExist(newDefectTrackerName)); defectTrackerIndexPage = defectTrackerIndexPage.clickEditLink(newDefectTrackerName) .enterName(newDefectTrackerName,replacementName) .clickUpdateDefectTrackerButton(); assertTrue("DefectTracker Page did not edit correctly.", defectTrackerIndexPage.doesNameExist(replacementName)); // Delete and logout defectTrackerIndexPage = defectTrackerIndexPage.clickDefectTrackersLink() .clickDeleteButton(replacementName); } @Test public void testAttachToAppBugzillaTracker() { assertFalse("BUGZILLA_PASSWORD is not assigned from system properties", BUGZILLA_PASSWORD == null); assertFalse("BUGZILLA_USERNAME is not assigned from system properties", BUGZILLA_USERNAME == null); assertFalse("BUGZILLA_URL is not assigned from system properties", BUGZILLA_URL == null); assertFalse( "BUGZILLA_PROJECTNAME is not assigned from system properties", BUGZILLA_PROJECTNAME == null); String newDefectTrackerName = "testEditDefectTracker" + getRandomString(10); String type = "Bugzilla"; String teamName = "bugzillaAttachTestTeam" + getRandomString(3); String appName = "bugzillaAttachTestApp" + getRandomString(3); String urlText = "http://test.com"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage = defectTrackerIndexPage.enterName(null, newDefectTrackerName); defectTrackerIndexPage = defectTrackerIndexPage.enterType(null, type); defectTrackerIndexPage = defectTrackerIndexPage .enterURL(null, BUGZILLA_URL); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); ApplicationDetailPage applicationDetailPage = defectTrackerIndexPage .clickOrganizationHeaderLink() .clickAddTeamButton() .setTeamName(teamName) .addNewTeam() .expandTeamRowByName(teamName) .addNewApplication(teamName, appName, urlText, "Low") .saveApplication(teamName) .clickViewAppLink(appName, teamName) .addDefectTracker(newDefectTrackerName, BUGZILLA_USERNAME, BUGZILLA_PASSWORD, BUGZILLA_PROJECTNAME); assertTrue("Defect tracker wasn't attached correctly", applicationDetailPage.clickEditDeleteBtn() .isDefectTrackerAttached()); sleep(1500); loginPage = applicationDetailPage.clickOrganizationHeaderLink() .clickOrganizationHeaderLink() .clickViewTeamLink(teamName) .clickDeleteButton() .clickDefectTrackersLink() .clickDeleteButton(newDefectTrackerName) .logout(); } @Ignore @Test public void testAttachToAppTFSTracker() { assertFalse("TFS_PASSWORD is not assigned from system properties", TFS_PASSWORD == null); assertFalse("TFS_USERNAME is not assigned from system properties", TFS_USERNAME == null); assertFalse("BUGZILLA_URL is not assigned from system properties", TFS_URL == null); assertFalse("TFS_PROJECTNAME is not assigned from system properties", TFS_PROJECTNAME == null); String newDefectTrackerName = "testEditDefectTracker" + getRandomString(10); String type = "TFS"; String teamName = "bugzillaAttachTestTeam" + getRandomString(3); String appName = "bugzillaAttachTestApp" + getRandomString(3); String urlText = "http://test.com"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage = defectTrackerIndexPage.enterName(null, newDefectTrackerName); defectTrackerIndexPage = defectTrackerIndexPage.enterType(null, type); defectTrackerIndexPage = defectTrackerIndexPage .enterURL(null, TFS_URL); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); ApplicationDetailPage applicationDetailPage = defectTrackerIndexPage .clickOrganizationHeaderLink() .clickAddTeamButton() .setTeamName(teamName) .addNewTeam() .expandTeamRowByName(teamName) .addNewApplication(teamName, appName, urlText, "Low") .saveApplication(teamName) .clickViewAppLink(appName, teamName) .addDefectTracker(newDefectTrackerName, TFS_USERNAME, TFS_PASSWORD, TFS_PROJECTNAME); assertTrue("Defect tracker wasn't attached correctly", applicationDetailPage.clickEditDeleteBtn() .isDefectTrackerAttached()); sleep(1500); loginPage = applicationDetailPage.clickOrganizationHeaderLink() .clickOrganizationHeaderLink() .clickViewTeamLink(teamName) .clickDeleteButton() .clickDefectTrackersLink() .clickDeleteButton(newDefectTrackerName) .logout(); } @Test public void testAttachToAppJiraTracker() { assertFalse("JIRA_PASSWORD is not assigned from system properties", JIRA_PASSWORD == null); assertFalse("JIRA_USERNAME is not assigned from system properties", JIRA_USERNAME == null); assertFalse("JIRA_URL is not assigned from system properties", JIRA_URL == null); assertFalse("JIRA_PROJECTNAME is not assigned from system properties", JIRA_PROJECTNAME == null); String newDefectTrackerName = "testEditDefectTracker" + getRandomString(10); String type = "Jira"; String teamName = "jIRAAttachTestTeam" + getRandomString(3); String appName = "JIRAAttachTestApp" + getRandomString(3); String urlText = "http://test.com"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage = defectTrackerIndexPage.enterName(null, newDefectTrackerName); defectTrackerIndexPage = defectTrackerIndexPage.enterType(null, type); defectTrackerIndexPage = defectTrackerIndexPage .enterURL(null, JIRA_URL); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); ApplicationDetailPage applicationDetailPage = defectTrackerIndexPage .clickOrganizationHeaderLink() .clickAddTeamButton() .setTeamName(teamName) .addNewTeam() .expandTeamRowByName(teamName) .addNewApplication(teamName, appName, urlText, "Low") .saveApplication(teamName) .clickViewAppLink(appName, teamName) .addDefectTracker(newDefectTrackerName, JIRA_USERNAME, JIRA_PASSWORD, JIRA_PROJECTNAME); assertTrue("Defect tracker wasn't attached correctly", applicationDetailPage.clickEditDeleteBtn() .isDefectTrackerAttached()); sleep(1500); loginPage = applicationDetailPage.clickOrganizationHeaderLink() .clickOrganizationHeaderLink() .clickViewTeamLink(teamName) .clickDeleteButton() .clickDefectTrackersLink() .clickDeleteButton(newDefectTrackerName) .logout(); } @Test public void bugzillaCreate() { String newDefectTrackerName = "testEditDefectTracker" + getRandomString(10); String url = "http://10.2.10.145/bugzilla/"; String type2 = "Bugzilla"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user", "password").clickDefectTrackersLink(); defectTrackerIndexPage = defectTrackerIndexPage .clickAddDefectTrackerButton(); defectTrackerIndexPage = defectTrackerIndexPage.enterName(null, newDefectTrackerName); defectTrackerIndexPage = defectTrackerIndexPage.enterType(null, type2); defectTrackerIndexPage = defectTrackerIndexPage.enterURL(null, url); defectTrackerIndexPage = defectTrackerIndexPage .clickSaveNewDefectTracker(); defectTrackerIndexPage = defectTrackerIndexPage .clickEditLink(newDefectTrackerName); defectTrackerIndexPage = defectTrackerIndexPage.enterName( newDefectTrackerName, newDefectTrackerName + " - edited"); defectTrackerIndexPage = defectTrackerIndexPage.enterType( newDefectTrackerName, type2); defectTrackerIndexPage = defectTrackerIndexPage.enterURL( newDefectTrackerName, url); defectTrackerIndexPage = defectTrackerIndexPage .clickUpdateDefectTrackerButton(); newDefectTrackerName += " - edited"; assertTrue( "DefectTracker Page did not create correctly.", defectTrackerIndexPage .isTextPresentInDefectTrackerTableBody(newDefectTrackerName)); // Delete and logout defectTrackerIndexPage = defectTrackerIndexPage.clickDeleteButton( newDefectTrackerName).clickDefectTrackersLink(); assertFalse( "DefectTracker Page did not delete.", defectTrackerIndexPage .isTextPresentInDefectTrackerTableBody(newDefectTrackerName)); loginPage = defectTrackerIndexPage.clickDefectTrackersLink().logout(); } @Test public void testSwitchDefectTrackers() { assertFalse("JIRA_PASSWORD is not assigned from system properties",JIRA_PASSWORD == null); assertFalse("JIRA_USERNAME is not assigned from system properties",JIRA_USERNAME == null); assertFalse("JIRA_URL is not assigned from system properties",JIRA_URL == null); assertFalse("JIRA_PROJECTNAME is not assigned from system properties",JIRA_PROJECTNAME == null); String newDefectTrackerNameOne = "testEditDefectTracker1" + getRandomString(3); String newDefectTrackerNameTwo = "testEditDefectTracker2" + getRandomString(3); String type = "Jira"; String teamName = "jIRAAttachTestTeam" + getRandomString(3); String appName = "JIRAAttachTestApp" + getRandomString(3); String urlText = "http://test.com"; DefectTrackerIndexPage defectTrackerIndexPage = loginPage.login("user","password") .clickDefectTrackersLink() .clickAddDefectTrackerButton() .enterName(null,newDefectTrackerNameOne) .enterType(null, type) .enterURL(null, JIRA_URL) .clickSaveNewDefectTracker() .clickAddDefectTrackerButton() .enterName(null,newDefectTrackerNameTwo) .enterType(null, type) .enterURL(null, JIRA_URL) .clickSaveNewDefectTracker(); ApplicationDetailPage applicationDetailPage = defectTrackerIndexPage.clickOrganizationHeaderLink() .clickAddTeamButton() .setTeamName(teamName) .addNewTeam() .expandTeamRowByName(teamName) .addNewApplication(teamName, appName, urlText, "Low") .saveApplication(teamName) .clickViewAppLink(appName, teamName) .addDefectTracker(newDefectTrackerNameOne, JIRA_USERNAME,JIRA_PASSWORD, JIRA_PROJECTNAME); assertTrue("Defect tracker wasn't attached correctly", applicationDetailPage.clickEditDeleteBtn().isDefectTrackerAttached()); sleep(4000); applicationDetailPage = applicationDetailPage.clickOrganizationHeaderLink() .clickOrganizationHeaderLink() .expandTeamRowByName(teamName) .clickViewAppLink(appName, teamName) .editDefectTracker(newDefectTrackerNameTwo, JIRA_USERNAME, JIRA_PASSWORD, JIRA_PROJECTNAME); assertTrue("Defect tracker wasn't attached correctly", applicationDetailPage.clickEditDeleteBtn().isDefectTrackerAttached()); // Delete Both sleep(1500); loginPage = applicationDetailPage.clickOrganizationHeaderLink() .clickOrganizationHeaderLink() .clickViewTeamLink(teamName) .clickDeleteButton() .clickDefectTrackersLink() .clickDeleteButton(newDefectTrackerNameOne) .clickDeleteButton(newDefectTrackerNameTwo) .logout(); } public void sleep(int num) { try { Thread.sleep(num); } catch (InterruptedException e) { e.printStackTrace(); } } /* * public DefectTrackerIndexPage attachDefectTrackerToApp( * DefectTrackerIndexPage defectTrackerIndexPage, String appName, String * teamName) { return defectTrackerIndexPage.clickOrganizationHeaderLink() * .clickViewAppLink(appName, teamName).clickActionButton() * addNewDefectTracker() } */ }