Modified: manifoldcf/trunk/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationUITester.java URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationUITester.java?rev=1788301&r1=1788300&r2=1788301&view=diff ============================================================================== --- manifoldcf/trunk/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationUITester.java (original) +++ manifoldcf/trunk/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationUITester.java Thu Mar 23 18:49:54 2017 @@ -27,15 +27,15 @@ import java.io.*; import java.util.*; import org.junit.*; -import org.apache.manifoldcf.core.tests.SeleniumTester; +import org.apache.manifoldcf.core.tests.HTMLTester; /** Basic UI navigation tests */ public class NavigationUITester { - protected final SeleniumTester testerInstance; + protected final HTMLTester testerInstance; protected final String startURL; - public NavigationUITester(SeleniumTester tester, String startURL) + public NavigationUITester(HTMLTester tester, String startURL) { this.testerInstance = tester; this.startURL = startURL; @@ -44,128 +44,200 @@ public class NavigationUITester public void createConnectionsAndJob() throws Exception { - testerInstance.start(SeleniumTester.BrowserType.CHROME, "en-US", startURL); - - //Login - testerInstance.waitForElementWithName("loginform"); - testerInstance.setValue("userID","admin"); - testerInstance.setValue("password","admin"); - testerInstance.clickButton("Login"); - testerInstance.verifyHeader("Welcome to Apache ManifoldCFâ¢"); - testerInstance.navigateTo("List output connections"); - testerInstance.clickButton("Add a new output connection"); - + testerInstance.newTest(Locale.US); + + HTMLTester.Window window; + HTMLTester.Link link; + HTMLTester.Form form; + HTMLTester.Textarea textarea; + HTMLTester.Selectbox selectbox; + HTMLTester.Button button; + HTMLTester.Radiobutton radiobutton; + HTMLTester.Loop loop; + + window = testerInstance.openMainWindow(startURL); + + // Login + form = window.findForm(testerInstance.createStringDescription("loginform")); + textarea = form.findTextarea(testerInstance.createStringDescription("userID")); + textarea.setValue(testerInstance.createStringDescription("admin")); + textarea = form.findTextarea(testerInstance.createStringDescription("password")); + textarea.setValue(testerInstance.createStringDescription("admin")); + button = window.findButton(testerInstance.createStringDescription("Login")); + button.click(); + window = testerInstance.findWindow(null); + + // Define an output connection via the UI + link = window.findLink(testerInstance.createStringDescription("List output connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add an output connection")); + link.click(); // Fill in a name - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyOutputConnection"); - - //Goto to Type tab - testerInstance.clickTab("Type"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyOutputConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.waitForElementWithName("classname"); - testerInstance.selectValue("classname","org.apache.manifoldcf.agents.tests.TestingOutputConnector"); - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); // Visit the Throttling tab - testerInstance.clickTab("Throttling"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Throttling tab")); + link.click(); // Go back to the Name tab - testerInstance.clickTab("Name"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Name tab")); + link.click(); // Now save the connection. - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this output connection")); + button.click(); + // Define a repository connection via the UI - testerInstance.navigateTo("List repository connections"); - testerInstance.clickButton("Add new connection"); - - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyRepositoryConnection"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List repository connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a connection")); + link.click(); + // Fill in a name + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyRepositoryConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.clickTab("Type"); - testerInstance.selectValue("classname","org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"); - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); // Visit the Throttling tab - testerInstance.clickTab("Throttling"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Throttling tab")); + link.click(); // Go back to the Name tab - testerInstance.clickTab("Name"); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Name tab")); + link.click(); + // Now save the connection. + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this connection")); + button.click(); - // Save - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - // Create a job - testerInstance.navigateTo("List jobs"); - //Add a job - testerInstance.clickButton("Add a new job"); - testerInstance.waitForElementWithName("description"); - //Fill in a name - testerInstance.setValue("description","MyJob"); - testerInstance.clickTab("Connection"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List jobs")); + link.click(); + // Add a job + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a job")); + link.click(); + // Fill in a name + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + textarea = form.findTextarea(testerInstance.createStringDescription("description")); + textarea.setValue(testerInstance.createStringDescription("MyJob")); + link = window.findLink(testerInstance.createStringDescription("Connection tab")); + link.click(); // Select the connections - testerInstance.selectValue("output_connectionname","MyOutputConnection"); - testerInstance.selectValue("output_precedent","-1"); - testerInstance.clickButton("Add output",true); - testerInstance.waitForElementWithName("connectionname"); - testerInstance.selectValue("connectionname","MyRepositoryConnection"); - - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("output_connectionname")); + selectbox.selectValue(testerInstance.createStringDescription("MyOutputConnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("output_precedent")); + selectbox.selectValue(testerInstance.createStringDescription("-1")); + button = window.findButton(testerInstance.createStringDescription("Add an output")); + button.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("connectionname")); + selectbox.selectValue(testerInstance.createStringDescription("MyRepositoryConnection")); + button = window.findButton(testerInstance.createStringDescription("Continue to next screen")); + button.click(); // Visit all the tabs. Scheduling tab first - testerInstance.clickTab("Scheduling"); - testerInstance.selectValue("dayofweek","0"); - testerInstance.selectValue("hourofday","1"); - testerInstance.selectValue("minutesofhour","30"); - testerInstance.selectValue("monthofyear","11"); - testerInstance.selectValue("dayofmonth","none"); - testerInstance.setValue("duration","120"); - testerInstance.clickButton("Add Scheduled Time",true); - testerInstance.waitForElementWithName("editjob"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Scheduling tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("dayofweek")); + selectbox.selectValue(testerInstance.createStringDescription("0")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("hourofday")); + selectbox.selectValue(testerInstance.createStringDescription("1")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("minutesofhour")); + selectbox.selectValue(testerInstance.createStringDescription("30")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("monthofyear")); + selectbox.selectValue(testerInstance.createStringDescription("11")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("dayofmonth")); + selectbox.selectValue(testerInstance.createStringDescription("none")); + textarea = form.findTextarea(testerInstance.createStringDescription("duration")); + textarea.setValue(testerInstance.createStringDescription("120")); + button = window.findButton(testerInstance.createStringDescription("Add new schedule record")); + button.click(); // Now, HopFilters - testerInstance.clickTab("Hop Filters"); - testerInstance.clickRadioButton("hopcountmode","2"); - - // Repository Paths tab - testerInstance.clickTab("Repository Paths"); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Hop Filters tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + radiobutton = form.findRadiobutton(testerInstance.createStringDescription("hopcountmode"),testerInstance.createStringDescription("2")); + radiobutton.select(); + link = window.findLink(testerInstance.createStringDescription("Repository Paths tab")); + link.click(); + // Add a record to the Paths list // MHL // Save the job - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this job")); + button.click(); + + // Delete the job + window = testerInstance.findWindow(null); + HTMLTester.StringDescription jobID = window.findMatch(testerInstance.createStringDescription("<!--jobid=(.*?)-->"),0); + testerInstance.printValue(jobID); + link = window.findLink(testerInstance.createStringDescription("Delete this job")); + link.click(); + + // Wait for the job to go away + loop = testerInstance.beginLoop(120); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Manage jobs")); + link.click(); + window = testerInstance.findWindow(null); + HTMLTester.StringDescription isJobNotPresent = window.isNotPresent(jobID); + testerInstance.printValue(isJobNotPresent); + loop.breakWhenTrue(isJobNotPresent); + loop.endLoop(); - testerInstance.waitForPresenceById("job"); - String jobID = testerInstance.getAttributeValueById("job","jobid"); - - //Navigate to List Jobs - testerInstance.navigateTo("List jobs"); - testerInstance.waitForElementWithName("listjobs"); - - //Delete the job - testerInstance.clickButtonByTitle("Delete job " + jobID); - testerInstance.acceptAlert(); - testerInstance.verifyThereIsNoError(); - - //Wait for the job to go away - testerInstance.waitForJobDeleteEN(jobID, 120); - // Delete the repository connection - testerInstance.navigateTo("List repository connections"); - testerInstance.clickButtonByTitle("Delete MyRepositoryConnection"); - testerInstance.acceptAlert(); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List repository connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyRepositoryConnection")); + link.click(); + // Delete the output connection - testerInstance.navigateTo("List output connections"); - testerInstance.clickButtonByTitle("Delete MyOutputConnection"); - testerInstance.acceptAlert(); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List output connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyOutputConnection")); + link.click(); + + testerInstance.executeTest(); } }
Modified: manifoldcf/trunk/connectors/gts/connector/src/test/java/org/apache/manifoldcf/agents/output/gts/tests/NavigationHSQLDBUI.java URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/gts/connector/src/test/java/org/apache/manifoldcf/agents/output/gts/tests/NavigationHSQLDBUI.java?rev=1788301&r1=1788300&r2=1788301&view=diff ============================================================================== --- manifoldcf/trunk/connectors/gts/connector/src/test/java/org/apache/manifoldcf/agents/output/gts/tests/NavigationHSQLDBUI.java (original) +++ manifoldcf/trunk/connectors/gts/connector/src/test/java/org/apache/manifoldcf/agents/output/gts/tests/NavigationHSQLDBUI.java Thu Mar 23 18:49:54 2017 @@ -27,7 +27,7 @@ import java.io.*; import java.util.*; import org.junit.*; -import org.apache.manifoldcf.core.tests.SeleniumTester; +import org.apache.manifoldcf.core.tests.HTMLTester; /** Basic UI navigation tests */ public class NavigationHSQLDBUI extends BaseUIHSQLDB @@ -37,119 +37,181 @@ public class NavigationHSQLDBUI extends public void createConnectionsAndJob() throws Exception { - testerInstance.start(SeleniumTester.BrowserType.CHROME, "en-US", "http://localhost:8346/mcf-crawler-ui/index.jsp"); - - //Login - testerInstance.waitForElementWithName("loginform"); - testerInstance.setValue("userID","admin"); - testerInstance.setValue("password","admin"); - testerInstance.clickButton("Login"); - testerInstance.verifyHeader("Welcome to Apache ManifoldCFâ¢"); - testerInstance.navigateTo("List output connections"); - testerInstance.clickButton("Add a new output connection"); - + testerInstance.newTest(Locale.US); + + HTMLTester.Window window; + HTMLTester.Link link; + HTMLTester.Form form; + HTMLTester.Textarea textarea; + HTMLTester.Selectbox selectbox; + HTMLTester.Button button; + HTMLTester.Radiobutton radiobutton; + HTMLTester.Loop loop; + + window = testerInstance.openMainWindow("http://localhost:8346/mcf-crawler-ui/index.jsp"); + + // Login + form = window.findForm(testerInstance.createStringDescription("loginform")); + textarea = form.findTextarea(testerInstance.createStringDescription("userID")); + textarea.setValue(testerInstance.createStringDescription("admin")); + textarea = form.findTextarea(testerInstance.createStringDescription("password")); + textarea.setValue(testerInstance.createStringDescription("admin")); + button = window.findButton(testerInstance.createStringDescription("Login")); + button.click(); + window = testerInstance.findWindow(null); + + // Define an output connection via the UI + link = window.findLink(testerInstance.createStringDescription("List output connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add an output connection")); + link.click(); // Fill in a name - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyOutputConnection"); - - //Goto to Type tab - testerInstance.clickTab("Type"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyOutputConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.waitForElementWithName("classname"); - testerInstance.selectValue("classname","org.apache.manifoldcf.agents.output.gts.GTSConnector"); - testerInstance.clickButton("Continue",120); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.gts.GTSConnector")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); // Visit the Throttling tab - testerInstance.clickTab("Throttling"); - + link = window.findLink(testerInstance.createStringDescription("Throttling tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); // Visit the Appliance tab - testerInstance.clickTab("Appliance"); - - // Go back to the Name tab - testerInstance.clickTab("Name"); + link = window.findLink(testerInstance.createStringDescription("Appliance tab")); + link.click(); // Now save the connection. - testerInstance.clickButton("Save",60); - testerInstance.verifyThereIsNoError(); - + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this output connection")); + button.click(); + // Define a repository connection via the UI - testerInstance.navigateTo("List repository connections"); - testerInstance.clickButton("Add new connection"); - - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyRepositoryConnection"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List repository connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a connection")); + link.click(); + // Fill in a name + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyRepositoryConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.clickTab("Type"); - testerInstance.selectValue("classname","org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"); - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); // Visit the Throttling tab - testerInstance.clickTab("Throttling"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Throttling tab")); + link.click(); // Go back to the Name tab - testerInstance.clickTab("Name"); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Name tab")); + link.click(); + // Now save the connection. + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this connection")); + button.click(); - // Save - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - // Create a job - testerInstance.navigateTo("List jobs"); - //Add a job - testerInstance.clickButton("Add a new job"); - testerInstance.waitForElementWithName("description"); - //Fill in a name - testerInstance.setValue("description","MyJob"); - testerInstance.clickTab("Connection"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List jobs")); + link.click(); + // Add a job + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a job")); + link.click(); + // Fill in a name + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + textarea = form.findTextarea(testerInstance.createStringDescription("description")); + textarea.setValue(testerInstance.createStringDescription("MyJob")); + link = window.findLink(testerInstance.createStringDescription("Connection tab")); + link.click(); // Select the connections - testerInstance.selectValue("output_connectionname","MyOutputConnection"); - testerInstance.selectValue("output_precedent","-1"); - testerInstance.clickButton("Add output",true); - testerInstance.waitForElementWithName("connectionname"); - testerInstance.selectValue("connectionname","MyRepositoryConnection"); - - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("output_connectionname")); + selectbox.selectValue(testerInstance.createStringDescription("MyOutputConnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("output_precedent")); + selectbox.selectValue(testerInstance.createStringDescription("-1")); + button = window.findButton(testerInstance.createStringDescription("Add an output")); + button.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("connectionname")); + selectbox.selectValue(testerInstance.createStringDescription("MyRepositoryConnection")); + button = window.findButton(testerInstance.createStringDescription("Continue to next screen")); + button.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); // GTS Template - testerInstance.clickTab("GTS Template"); - + link = window.findLink(testerInstance.createStringDescription("GTS Template tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); // GTS Collections - testerInstance.clickTab("GTS Collections"); + link = window.findLink(testerInstance.createStringDescription("GTS Collections tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); // Save the job - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - - testerInstance.waitForPresenceById("job"); - String jobID = testerInstance.getAttributeValueById("job","jobid"); - - //Navigate to List Jobs - testerInstance.navigateTo("List jobs"); - testerInstance.waitForElementWithName("listjobs"); - - //Delete the job - testerInstance.clickButtonByTitle("Delete job " + jobID); - testerInstance.acceptAlert(); - testerInstance.verifyThereIsNoError(); - - //Wait for the job to go away - testerInstance.waitForJobDeleteEN(jobID, 120); + button = window.findButton(testerInstance.createStringDescription("Save this job")); + button.click(); + // Delete the job + window = testerInstance.findWindow(null); + HTMLTester.StringDescription jobID = window.findMatch(testerInstance.createStringDescription("<!--jobid=(.*?)-->"),0); + testerInstance.printValue(jobID); + link = window.findLink(testerInstance.createStringDescription("Delete this job")); + link.click(); + + // Wait for the job to go away + loop = testerInstance.beginLoop(120); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Manage jobs")); + link.click(); + window = testerInstance.findWindow(null); + HTMLTester.StringDescription isJobNotPresent = window.isNotPresent(jobID); + testerInstance.printValue(isJobNotPresent); + loop.breakWhenTrue(isJobNotPresent); + loop.endLoop(); + // Delete the repository connection - testerInstance.navigateTo("List repository connections"); - testerInstance.clickButtonByTitle("Delete MyRepositoryConnection"); - testerInstance.acceptAlert(); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List repository connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyRepositoryConnection")); + link.click(); + // Delete the output connection - testerInstance.navigateTo("List output connections"); - testerInstance.clickButtonByTitle("Delete MyOutputConnection"); - testerInstance.acceptAlert(); - - //Make sure that we don't land in an error after deleting output connection - testerInstance.verifyThereIsNoError(); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List output connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyOutputConnection")); + link.click(); + + testerInstance.executeTest(); } + } Modified: manifoldcf/trunk/connectors/hdfs/build.xml URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/hdfs/build.xml?rev=1788301&r1=1788300&r2=1788301&view=diff ============================================================================== --- manifoldcf/trunk/connectors/hdfs/build.xml (original) +++ manifoldcf/trunk/connectors/hdfs/build.xml Thu Mar 23 18:49:54 2017 @@ -39,6 +39,7 @@ <include name="hadoop-annotations*.jar"/> <include name="hadoop-auth*.jar"/> <include name="hadoop-hdfs*.jar"/> + <include name="guava*.jar"/> <include name="htrace-core*.jar"/> <include name="protobuf-java*.jar"/> </fileset> @@ -54,6 +55,7 @@ <include name="hadoop-annotations*.jar"/> <include name="hadoop-auth*.jar"/> <include name="hadoop-hdfs*.jar"/> + <include name="guava*.jar"/> <include name="htrace-core*.jar"/> <include name="protobuf-java*.jar"/> </fileset> Modified: manifoldcf/trunk/connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/NavigationUITester.java URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/NavigationUITester.java?rev=1788301&r1=1788300&r2=1788301&view=diff ============================================================================== --- manifoldcf/trunk/connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/NavigationUITester.java (original) +++ manifoldcf/trunk/connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/NavigationUITester.java Thu Mar 23 18:49:54 2017 @@ -27,15 +27,15 @@ import java.io.*; import java.util.*; import org.junit.*; -import org.apache.manifoldcf.core.tests.SeleniumTester; +import org.apache.manifoldcf.core.tests.HTMLTester; /** Basic UI navigation tests */ public class NavigationUITester { - protected final SeleniumTester testerInstance; + protected final HTMLTester testerInstance; protected final String startURL; - public NavigationUITester(SeleniumTester tester, String startURL) + public NavigationUITester(HTMLTester tester, String startURL) { this.testerInstance = tester; this.startURL = startURL; @@ -44,132 +44,208 @@ public class NavigationUITester public void createConnectionsAndJob() throws Exception { - testerInstance.start(SeleniumTester.BrowserType.CHROME, "en-US", startURL); - - //Login - testerInstance.waitForElementWithName("loginform"); - testerInstance.setValue("userID","admin"); - testerInstance.setValue("password","admin"); - testerInstance.clickButton("Login"); - testerInstance.verifyHeader("Welcome to Apache ManifoldCFâ¢"); - testerInstance.navigateTo("List output connections"); - testerInstance.clickButton("Add a new output connection"); - + testerInstance.newTest(Locale.US); + + HTMLTester.Window window; + HTMLTester.Link link; + HTMLTester.Form form; + HTMLTester.Textarea textarea; + HTMLTester.Selectbox selectbox; + HTMLTester.Button button; + HTMLTester.Radiobutton radiobutton; + HTMLTester.Loop loop; + + window = testerInstance.openMainWindow(startURL); + + // Login + form = window.findForm(testerInstance.createStringDescription("loginform")); + textarea = form.findTextarea(testerInstance.createStringDescription("userID")); + textarea.setValue(testerInstance.createStringDescription("admin")); + textarea = form.findTextarea(testerInstance.createStringDescription("password")); + textarea.setValue(testerInstance.createStringDescription("admin")); + button = window.findButton(testerInstance.createStringDescription("Login")); + button.click(); + window = testerInstance.findWindow(null); + + // Define an output connection via the UI + link = window.findLink(testerInstance.createStringDescription("List output connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add an output connection")); + link.click(); // Fill in a name - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyOutputConnection"); - - //Goto to Type tab - testerInstance.clickTab("Type"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyOutputConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.waitForElementWithName("classname"); - testerInstance.selectValue("classname","org.apache.manifoldcf.agents.tests.TestingOutputConnector"); - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); // Visit the Throttling tab - testerInstance.clickTab("Throttling"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Throttling tab")); + link.click(); // Go back to the Name tab - testerInstance.clickTab("Name"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Name tab")); + link.click(); // Now save the connection. - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this output connection")); + button.click(); + // Define a repository connection via the UI - testerInstance.navigateTo("List repository connections"); - testerInstance.clickButton("Add new connection"); - - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyRepositoryConnection"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List repository connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a connection")); + link.click(); + // Fill in a name + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyRepositoryConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.clickTab("Type"); - testerInstance.selectValue("classname","org.apache.manifoldcf.crawler.connectors.hdfs.HDFSRepositoryConnector"); - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.connectors.hdfs.HDFSRepositoryConnector")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); // Visit the Throttling tab - testerInstance.clickTab("Throttling"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Throttling tab")); + link.click(); // Go back to the Name tab - testerInstance.clickTab("Name"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Name tab")); + link.click(); // Server tab - testerInstance.clickTab("Server"); - testerInstance.setValue("user", "foo"); - - // Save - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Server tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("user")); + textarea.setValue(testerInstance.createStringDescription("foo")); + // Now save the connection. + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this connection")); + button.click(); + // Create a job - testerInstance.navigateTo("List jobs"); - //Add a job - testerInstance.clickButton("Add a new job"); - testerInstance.waitForElementWithName("description"); - //Fill in a name - testerInstance.setValue("description","MyJob"); - testerInstance.clickTab("Connection"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List jobs")); + link.click(); + // Add a job + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a job")); + link.click(); + // Fill in a name + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + textarea = form.findTextarea(testerInstance.createStringDescription("description")); + textarea.setValue(testerInstance.createStringDescription("MyJob")); + link = window.findLink(testerInstance.createStringDescription("Connection tab")); + link.click(); // Select the connections - testerInstance.selectValue("output_connectionname","MyOutputConnection"); - testerInstance.selectValue("output_precedent","-1"); - testerInstance.clickButton("Add output",true); - testerInstance.waitForElementWithName("connectionname"); - testerInstance.selectValue("connectionname","MyRepositoryConnection"); - - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("output_connectionname")); + selectbox.selectValue(testerInstance.createStringDescription("MyOutputConnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("output_precedent")); + selectbox.selectValue(testerInstance.createStringDescription("-1")); + button = window.findButton(testerInstance.createStringDescription("Add an output")); + button.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("connectionname")); + selectbox.selectValue(testerInstance.createStringDescription("MyRepositoryConnection")); + button = window.findButton(testerInstance.createStringDescription("Continue to next screen")); + button.click(); // Visit all the tabs. Scheduling tab first - testerInstance.clickTab("Scheduling"); - testerInstance.selectValue("dayofweek","0"); - testerInstance.selectValue("hourofday","1"); - testerInstance.selectValue("minutesofhour","30"); - testerInstance.selectValue("monthofyear","11"); - testerInstance.selectValue("dayofmonth","none"); - testerInstance.setValue("duration","120"); - testerInstance.clickButton("Add Scheduled Time",true); - testerInstance.waitForElementWithName("editjob"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Scheduling tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("dayofweek")); + selectbox.selectValue(testerInstance.createStringDescription("0")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("hourofday")); + selectbox.selectValue(testerInstance.createStringDescription("1")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("minutesofhour")); + selectbox.selectValue(testerInstance.createStringDescription("30")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("monthofyear")); + selectbox.selectValue(testerInstance.createStringDescription("11")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("dayofmonth")); + selectbox.selectValue(testerInstance.createStringDescription("none")); + textarea = form.findTextarea(testerInstance.createStringDescription("duration")); + textarea.setValue(testerInstance.createStringDescription("120")); + button = window.findButton(testerInstance.createStringDescription("Add new schedule record")); + button.click(); // Now, HopFilters - testerInstance.clickTab("Hop Filters"); - testerInstance.clickRadioButton("hopcountmode","2"); - - // Repository Paths tab - testerInstance.clickTab("Repository Paths"); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Hop Filters tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + radiobutton = form.findRadiobutton(testerInstance.createStringDescription("hopcountmode"),testerInstance.createStringDescription("2")); + radiobutton.select(); + link = window.findLink(testerInstance.createStringDescription("Repository Paths tab")); + link.click(); + // Add a record to the Paths list // MHL // Save the job - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this job")); + button.click(); + + // Delete the job + window = testerInstance.findWindow(null); + HTMLTester.StringDescription jobID = window.findMatch(testerInstance.createStringDescription("<!--jobid=(.*?)-->"),0); + testerInstance.printValue(jobID); + link = window.findLink(testerInstance.createStringDescription("Delete this job")); + link.click(); + + // Wait for the job to go away + loop = testerInstance.beginLoop(120); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Manage jobs")); + link.click(); + window = testerInstance.findWindow(null); + HTMLTester.StringDescription isJobNotPresent = window.isNotPresent(jobID); + testerInstance.printValue(isJobNotPresent); + loop.breakWhenTrue(isJobNotPresent); + loop.endLoop(); - testerInstance.waitForPresenceById("job"); - String jobID = testerInstance.getAttributeValueById("job","jobid"); - - //Navigate to List Jobs - testerInstance.navigateTo("List jobs"); - testerInstance.waitForElementWithName("listjobs"); - - //Delete the job - testerInstance.clickButtonByTitle("Delete job " + jobID); - testerInstance.acceptAlert(); - testerInstance.verifyThereIsNoError(); - - //Wait for the job to go away - testerInstance.waitForJobDeleteEN(jobID, 120); - // Delete the repository connection - testerInstance.navigateTo("List repository connections"); - testerInstance.clickButtonByTitle("Delete MyRepositoryConnection"); - testerInstance.acceptAlert(); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List repository connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyRepositoryConnection")); + link.click(); + // Delete the output connection - testerInstance.navigateTo("List output connections"); - testerInstance.clickButtonByTitle("Delete MyOutputConnection"); - testerInstance.acceptAlert(); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List output connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyOutputConnection")); + link.click(); + + testerInstance.executeTest(); } } Modified: manifoldcf/trunk/connectors/jcifs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/sharedrive/tests/NavigationHSQLDBUI.java URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jcifs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/sharedrive/tests/NavigationHSQLDBUI.java?rev=1788301&r1=1788300&r2=1788301&view=diff ============================================================================== --- manifoldcf/trunk/connectors/jcifs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/sharedrive/tests/NavigationHSQLDBUI.java (original) +++ manifoldcf/trunk/connectors/jcifs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/sharedrive/tests/NavigationHSQLDBUI.java Thu Mar 23 18:49:54 2017 @@ -27,7 +27,7 @@ import java.io.*; import java.util.*; import org.junit.*; -import org.apache.manifoldcf.core.tests.SeleniumTester; +import org.apache.manifoldcf.core.tests.HTMLTester; /** Basic UI navigation tests */ public class NavigationHSQLDBUI extends BaseUIHSQLDB @@ -37,121 +37,204 @@ public class NavigationHSQLDBUI extends public void createConnectionsAndJob() throws Exception { - testerInstance.start(SeleniumTester.BrowserType.CHROME, "en-US", "http://localhost:8346/mcf-crawler-ui/index.jsp"); - - //Login - testerInstance.waitForElementWithName("loginform"); - testerInstance.setValue("userID","admin"); - testerInstance.setValue("password","admin"); - testerInstance.clickButton("Login"); - testerInstance.verifyHeader("Welcome to Apache ManifoldCFâ¢"); - testerInstance.navigateTo("List output connections"); - testerInstance.clickButton("Add a new output connection"); - + testerInstance.newTest(Locale.US); + + HTMLTester.Window window; + HTMLTester.Link link; + HTMLTester.Form form; + HTMLTester.Textarea textarea; + HTMLTester.Selectbox selectbox; + HTMLTester.Button button; + HTMLTester.Radiobutton radiobutton; + HTMLTester.Loop loop; + + window = testerInstance.openMainWindow("http://localhost:8346/mcf-crawler-ui/index.jsp"); + + // Login + form = window.findForm(testerInstance.createStringDescription("loginform")); + textarea = form.findTextarea(testerInstance.createStringDescription("userID")); + textarea.setValue(testerInstance.createStringDescription("admin")); + textarea = form.findTextarea(testerInstance.createStringDescription("password")); + textarea.setValue(testerInstance.createStringDescription("admin")); + button = window.findButton(testerInstance.createStringDescription("Login")); + button.click(); + window = testerInstance.findWindow(null); + + // Define an output connection via the UI + link = window.findLink(testerInstance.createStringDescription("List output connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add an output connection")); + link.click(); // Fill in a name - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyOutputConnection"); - - //Goto to Type tab - testerInstance.clickTab("Type"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyOutputConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.waitForElementWithName("classname"); - testerInstance.selectValue("classname","org.apache.manifoldcf.agents.tests.TestingOutputConnector"); - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); + // Visit the Throttling tab + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Throttling tab")); + link.click(); // Go back to the Name tab - testerInstance.clickTab("Name"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Name tab")); + link.click(); // Now save the connection. - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this output connection")); + button.click(); + // Define a repository connection via the UI - testerInstance.navigateTo("List repository connections"); - testerInstance.clickButton("Add new connection"); - - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyRepositoryConnection"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List repository connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a connection")); + link.click(); + // Fill in a name + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyRepositoryConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.clickTab("Type"); - testerInstance.selectValue("classname","org.apache.manifoldcf.crawler.connectors.sharedrive.SharedDriveConnector"); - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.connectors.sharedrive.SharedDriveConnector")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); + window = testerInstance.findWindow(null); // Visit the Server tab - testerInstance.clickTab("Server"); - testerInstance.setValue("server", "localhost"); - testerInstance.setValue("username", "foo"); - + link = window.findLink(testerInstance.createStringDescription("Server tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("server")); + textarea.setValue(testerInstance.createStringDescription("localhost")); + textarea = form.findTextarea(testerInstance.createStringDescription("username")); + textarea.setValue(testerInstance.createStringDescription("foo")); + // Go back to the Name tab - testerInstance.clickTab("Name"); + link = window.findLink(testerInstance.createStringDescription("Name tab")); + link.click(); + // Now save the connection. + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this connection")); + button.click(); - // Save - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - // Create a job - testerInstance.navigateTo("List jobs"); - //Add a job - testerInstance.clickButton("Add a new job"); - testerInstance.waitForElementWithName("description"); - //Fill in a name - testerInstance.setValue("description","MyJob"); - testerInstance.clickTab("Connection"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List jobs")); + link.click(); + // Add a job + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a job")); + link.click(); + // Fill in a name + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + textarea = form.findTextarea(testerInstance.createStringDescription("description")); + textarea.setValue(testerInstance.createStringDescription("MyJob")); + link = window.findLink(testerInstance.createStringDescription("Connection tab")); + link.click(); // Select the connections - testerInstance.selectValue("output_connectionname","MyOutputConnection"); - testerInstance.selectValue("output_precedent","-1"); - testerInstance.clickButton("Add output",true); - testerInstance.waitForElementWithName("connectionname"); - testerInstance.selectValue("connectionname","MyRepositoryConnection"); - - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("output_connectionname")); + selectbox.selectValue(testerInstance.createStringDescription("MyOutputConnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("output_precedent")); + selectbox.selectValue(testerInstance.createStringDescription("-1")); + button = window.findButton(testerInstance.createStringDescription("Add an output")); + button.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("connectionname")); + selectbox.selectValue(testerInstance.createStringDescription("MyRepositoryConnection")); + button = window.findButton(testerInstance.createStringDescription("Continue to next screen")); + button.click(); // Visit all the connector tabs. // Paths - testerInstance.clickTab("Paths"); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + link = window.findLink(testerInstance.createStringDescription("Paths tab")); + link.click(); // Security - testerInstance.clickTab("Security"); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + link = window.findLink(testerInstance.createStringDescription("Security tab")); + link.click(); // Metadata - testerInstance.clickTab("Metadata"); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + link = window.findLink(testerInstance.createStringDescription("Metadata tab")); + link.click(); // Content Length - testerInstance.clickTab("Content Length"); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + link = window.findLink(testerInstance.createStringDescription("Content Length tab")); + link.click(); // File Mapping - testerInstance.clickTab("File Mapping"); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + link = window.findLink(testerInstance.createStringDescription("File Mapping tab")); + link.click(); // URL Mapping - testerInstance.clickTab("URL Mapping"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + link = window.findLink(testerInstance.createStringDescription("URL Mapping tab")); + link.click(); + // Save the job - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this job")); + button.click(); + + // Delete the job + window = testerInstance.findWindow(null); + HTMLTester.StringDescription jobID = window.findMatch(testerInstance.createStringDescription("<!--jobid=(.*?)-->"),0); + testerInstance.printValue(jobID); + link = window.findLink(testerInstance.createStringDescription("Delete this job")); + link.click(); + + // Wait for the job to go away + loop = testerInstance.beginLoop(120); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Manage jobs")); + link.click(); + window = testerInstance.findWindow(null); + HTMLTester.StringDescription isJobNotPresent = window.isNotPresent(jobID); + testerInstance.printValue(isJobNotPresent); + loop.breakWhenTrue(isJobNotPresent); + loop.endLoop(); - testerInstance.waitForPresenceById("job"); - String jobID = testerInstance.getAttributeValueById("job","jobid"); - - //Navigate to List Jobs - testerInstance.navigateTo("List jobs"); - testerInstance.waitForElementWithName("listjobs"); - - //Delete the job - testerInstance.clickButtonByTitle("Delete job " + jobID); - testerInstance.acceptAlert(); - testerInstance.verifyThereIsNoError(); - - //Wait for the job to go away - testerInstance.waitForJobDeleteEN(jobID, 120); - // Delete the repository connection - testerInstance.navigateTo("List repository connections"); - testerInstance.clickButtonByTitle("Delete MyRepositoryConnection"); - testerInstance.acceptAlert(); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List repository connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyRepositoryConnection")); + link.click(); + // Delete the output connection - testerInstance.navigateTo("List output connections"); - testerInstance.clickButtonByTitle("Delete MyOutputConnection"); - testerInstance.acceptAlert(); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List output connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyOutputConnection")); + link.click(); + + testerInstance.executeTest(); } } Modified: manifoldcf/trunk/connectors/jdbc/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/jdbc/tests/NavigationHSQLDBUI.java URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jdbc/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/jdbc/tests/NavigationHSQLDBUI.java?rev=1788301&r1=1788300&r2=1788301&view=diff ============================================================================== --- manifoldcf/trunk/connectors/jdbc/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/jdbc/tests/NavigationHSQLDBUI.java (original) +++ manifoldcf/trunk/connectors/jdbc/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/jdbc/tests/NavigationHSQLDBUI.java Thu Mar 23 18:49:54 2017 @@ -27,7 +27,7 @@ import java.io.*; import java.util.*; import org.junit.*; -import org.apache.manifoldcf.core.tests.SeleniumTester; +import org.apache.manifoldcf.core.tests.HTMLTester; /** Basic UI navigation tests */ public class NavigationHSQLDBUI extends BaseUIHSQLDB @@ -37,173 +37,270 @@ public class NavigationHSQLDBUI extends public void createConnectionsAndJob() throws Exception { - testerInstance.start(SeleniumTester.BrowserType.CHROME, "en-US", "http://localhost:8346/mcf-crawler-ui/index.jsp"); - - //Login - testerInstance.waitForElementWithName("loginform"); - testerInstance.setValue("userID","admin"); - testerInstance.setValue("password","admin"); - testerInstance.clickButton("Login"); - testerInstance.verifyHeader("Welcome to Apache ManifoldCFâ¢"); - testerInstance.navigateTo("List output connections"); - testerInstance.clickButton("Add a new output connection"); - + testerInstance.newTest(Locale.US); + + HTMLTester.Window window; + HTMLTester.Link link; + HTMLTester.Form form; + HTMLTester.Textarea textarea; + HTMLTester.Selectbox selectbox; + HTMLTester.Button button; + HTMLTester.Radiobutton radiobutton; + HTMLTester.Loop loop; + + window = testerInstance.openMainWindow("http://localhost:8346/mcf-crawler-ui/index.jsp"); + + // Login + form = window.findForm(testerInstance.createStringDescription("loginform")); + textarea = form.findTextarea(testerInstance.createStringDescription("userID")); + textarea.setValue(testerInstance.createStringDescription("admin")); + textarea = form.findTextarea(testerInstance.createStringDescription("password")); + textarea.setValue(testerInstance.createStringDescription("admin")); + button = window.findButton(testerInstance.createStringDescription("Login")); + button.click(); + window = testerInstance.findWindow(null); + + // Define an output connection via the UI + link = window.findLink(testerInstance.createStringDescription("List output connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add an output connection")); + link.click(); // Fill in a name - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyOutputConnection"); - - //Goto to Type tab - testerInstance.clickTab("Type"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyOutputConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.waitForElementWithName("classname"); - testerInstance.selectValue("classname","org.apache.manifoldcf.agents.tests.TestingOutputConnector"); - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); + // Visit the Throttling tab + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Throttling tab")); + link.click(); // Go back to the Name tab - testerInstance.clickTab("Name"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Name tab")); + link.click(); // Now save the connection. - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this output connection")); + button.click(); + // Define a repository connection via the UI - testerInstance.navigateTo("List repository connections"); - testerInstance.clickButton("Add new connection"); - - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyRepositoryConnection"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List repository connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a connection")); + link.click(); + // Fill in a name + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyRepositoryConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.clickTab("Type"); - testerInstance.selectValue("classname","org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConnector"); - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConnector")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); + window = testerInstance.findWindow(null); // Credentials tab - testerInstance.clickTab("Credentials"); - testerInstance.setValue("username", "foo"); - + link = window.findLink(testerInstance.createStringDescription("Credentials tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("username")); + textarea.setValue(testerInstance.createStringDescription("foo")); // Server - testerInstance.clickTab("Server"); - + link = window.findLink(testerInstance.createStringDescription("Server tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); // Database Type - testerInstance.clickTab("Database Type"); + link = window.findLink(testerInstance.createStringDescription("Database Type tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); // Go back to the Name tab - testerInstance.clickTab("Name"); + link = window.findLink(testerInstance.createStringDescription("Name tab")); + link.click(); + // Now save the connection. + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this connection")); + button.click(); - // Save - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - // Create a job - testerInstance.navigateTo("List jobs"); - //Add a job - testerInstance.clickButton("Add a new job"); - testerInstance.waitForElementWithName("description"); - //Fill in a name - testerInstance.setValue("description","MyJob"); - testerInstance.clickTab("Connection"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List jobs")); + link.click(); + // Add a job + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a job")); + link.click(); + // Fill in a name + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + textarea = form.findTextarea(testerInstance.createStringDescription("description")); + textarea.setValue(testerInstance.createStringDescription("MyJob")); + link = window.findLink(testerInstance.createStringDescription("Connection tab")); + link.click(); // Select the connections - testerInstance.selectValue("output_connectionname","MyOutputConnection"); - testerInstance.selectValue("output_precedent","-1"); - testerInstance.clickButton("Add output",true); - testerInstance.waitForElementWithName("connectionname"); - testerInstance.selectValue("connectionname","MyRepositoryConnection"); - - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("output_connectionname")); + selectbox.selectValue(testerInstance.createStringDescription("MyOutputConnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("output_precedent")); + selectbox.selectValue(testerInstance.createStringDescription("-1")); + button = window.findButton(testerInstance.createStringDescription("Add an output")); + button.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("connectionname")); + selectbox.selectValue(testerInstance.createStringDescription("MyRepositoryConnection")); + button = window.findButton(testerInstance.createStringDescription("Continue to next screen")); + button.click(); // Visit all the connector tabs. // Queries - testerInstance.clickTab("Queries"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + link = window.findLink(testerInstance.createStringDescription("Queries tab")); + link.click(); // Security - testerInstance.clickTab("Security"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editjob")); + link = window.findLink(testerInstance.createStringDescription("Security tab")); + link.click(); + // Save the job - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this job")); + button.click(); + + // Delete the job + window = testerInstance.findWindow(null); + HTMLTester.StringDescription jobID = window.findMatch(testerInstance.createStringDescription("<!--jobid=(.*?)-->"),0); + testerInstance.printValue(jobID); + link = window.findLink(testerInstance.createStringDescription("Delete this job")); + link.click(); + + // Wait for the job to go away + loop = testerInstance.beginLoop(120); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Manage jobs")); + link.click(); + window = testerInstance.findWindow(null); + HTMLTester.StringDescription isJobNotPresent = window.isNotPresent(jobID); + testerInstance.printValue(isJobNotPresent); + loop.breakWhenTrue(isJobNotPresent); + loop.endLoop(); - testerInstance.waitForPresenceById("job"); - String jobID = testerInstance.getAttributeValueById("job","jobid"); - - //Navigate to List Jobs - testerInstance.navigateTo("List jobs"); - testerInstance.waitForElementWithName("listjobs"); - - //Delete the job - testerInstance.clickButtonByTitle("Delete job " + jobID); - testerInstance.acceptAlert(); - testerInstance.verifyThereIsNoError(); - - //Wait for the job to go away - testerInstance.waitForJobDeleteEN(jobID, 120); - // Delete the repository connection - testerInstance.navigateTo("List repository connections"); - testerInstance.clickButtonByTitle("Delete MyRepositoryConnection"); - testerInstance.acceptAlert(); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List repository connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyRepositoryConnection")); + link.click(); + // Delete the output connection - testerInstance.navigateTo("List output connections"); - testerInstance.clickButtonByTitle("Delete MyOutputConnection"); - testerInstance.acceptAlert(); - - // Exercise authority UI - - // Add an authority group - testerInstance.navigateTo("List authority groups"); - testerInstance.clickButton("Add a new authority group"); - - // Fill in a name - testerInstance.waitForElementWithName("groupname"); - testerInstance.setValue("groupname","MyAuthorityGroup"); - - // Save the authority group - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - - // Add an authority - testerInstance.navigateTo("List authorities"); - testerInstance.clickButton("Add a new connection"); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List output connections")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyOutputConnection")); + link.click(); + + // Now go on to execute the authority test + window = testerInstance.openMainWindow("http://localhost:8346/mcf-crawler-ui/index.jsp"); + + // Define an authority connection via the UI + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List authority groups")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add new authority group")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editgroup")); + textarea = form.findTextarea(testerInstance.createStringDescription("groupname")); + textarea.setValue(testerInstance.createStringDescription("MyAuthorityConnection")); + button = window.findButton(testerInstance.createStringDescription("Save this authority group")); + button.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List authorities")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Add a new connection")); + link.click(); // Fill in a name - testerInstance.waitForElementWithName("connname"); - testerInstance.setValue("connname","MyAuthorityConnection"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("connname")); + textarea.setValue(testerInstance.createStringDescription("MyAuthorityConnection")); + link = window.findLink(testerInstance.createStringDescription("Type tab")); + link.click(); // Select a type - testerInstance.clickTab("Type"); - testerInstance.selectValue("classname","org.apache.manifoldcf.authorities.authorities.jdbc.JDBCAuthority"); - testerInstance.selectValue("authoritygroup", "MyAuthorityGroup"); - testerInstance.clickButton("Continue"); - + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("classname")); + selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.authorities.authorities.jdbc.JDBCAuthority")); + selectbox = form.findSelectbox(testerInstance.createStringDescription("authoritygroup")); + selectbox.selectValue(testerInstance.createStringDescription("MyAuthorityConnection")); + button = window.findButton(testerInstance.createStringDescription("Continue to next page")); + button.click(); // Credentials tab - testerInstance.clickTab("Credentials"); - testerInstance.setValue("username", "foo"); - + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Credentials tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + textarea = form.findTextarea(testerInstance.createStringDescription("username")); + textarea.setValue(testerInstance.createStringDescription("foo")); // Server - testerInstance.clickTab("Server"); - + link = window.findLink(testerInstance.createStringDescription("Server tab")); + link.click(); + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); // Database Type - testerInstance.clickTab("Database Type"); - - // Back to the name tab - testerInstance.clickTab("Name"); + link = window.findLink(testerInstance.createStringDescription("Database Type tab")); + link.click(); + // Visit all the connector tabs. + // Queries + window = testerInstance.findWindow(null); + form = window.findForm(testerInstance.createStringDescription("editconnection")); + link = window.findLink(testerInstance.createStringDescription("Queries tab")); + link.click(); + // Go back to the Name tab + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Name tab")); + link.click(); + // Now save the connection. + window = testerInstance.findWindow(null); + button = window.findButton(testerInstance.createStringDescription("Save this authority connection")); + button.click(); - // Now, save - testerInstance.clickButton("Save"); - testerInstance.verifyThereIsNoError(); - // Delete the authority connection - testerInstance.navigateTo("List authorities"); - testerInstance.clickButtonByTitle("Delete MyAuthorityConnection"); - testerInstance.acceptAlert(); - - // Delete the authority group - testerInstance.navigateTo("List authority groups"); - testerInstance.clickButtonByTitle("Delete MyAuthorityGroup"); - testerInstance.acceptAlert(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("List authorities")); + link.click(); + window = testerInstance.findWindow(null); + link = window.findLink(testerInstance.createStringDescription("Delete MyAuthorityConnection")); + link.click(); + + testerInstance.executeTest(); } }
