package net.sf.sahi.client; import org.junit.Ignore; import org.junit.Test; import java.io.File; import java.util.List; import static org.junit.Assert.*; /** * Sahi - Web Automation and Test Tool * * Copyright 2006 V Narayan Raman * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * This is a sample junit test used to demonstrate various * apis of Sahi. * You need sahi/lib/sahi.jar in your classpath */ public class DriverClientTest extends SahiTestCase { // protected String baseURL = "http://gramam"; protected String baseURL = "http://sahi.co.in"; @Test @Ignore("Move to integration test phase") public void xtestZK() { browser.setSpeed(210); browser.navigateTo("http://www.zkoss.org/zkdemo/userguide/"); browser.div("Hello World").click(); browser.span("Pure Java").click(); browser.div("Various Form").click(); // BrowserCondition condition = new BrowserCondition(browser){@Override // public boolean test() { // return browser.textbox("z-intbox[1]").isVisible(); // }}; // browser.waitFor(condition, 5000); assertTrue(browser.textbox("z-intbox[1]").isVisible()); browser.div("Comboboxes").click(); browser.textbox("z-combobox-inp").setValue("aa"); browser.italic("z-combobox-btn").click(); browser.cell("Simple and Rich").click(); browser.italic("z-combobox-btn[1]").click(); browser.span("The coolest technology").click(); browser.italic("z-combobox-btn[2]").click(); browser.image("CogwheelEye-32x32.gif").click(); assertTrue(browser.textbox("z-combobox-inp[2]").exists()); } @Test @Ignore("Move to integration test phase") public void testOpen() { browser.navigateTo(baseURL + "/demo/formTest.htm"); browser.textbox("t1").setValue("aaa"); browser.link("Back").click(); browser.link("Table Test").click(); assertEquals("Cell with id", browser.cell("CellWithId").getText()); } @Test @Ignore("Move to integration test phase") public void testFetch() throws Exception { browser.navigateTo(baseURL + "/demo/formTest.htm"); assertEquals(baseURL + "/demo/formTest.htm", browser.fetch("window.location.href")); } @Test @Ignore("Move to integration test phase") public void testDragDrop() { browser.navigateTo("http://www.snook.ca/technical/mootoolsdragdrop/"); browser.div("Drag me").dragAndDropOn(browser.div("Item 2")); // browser.waitFor(3000); browser.div("dropped").exists(); // browser.waitFor(3000); browser.div("Item 1").exists(); browser.div("Item 3").exists(); browser.div("Item 4").exists(); } @Test @Ignore("Move to integration test phase") public void testSahiDemoAccessors() { browser.navigateTo(baseURL + "/demo/formTest.htm"); assertEquals("", browser.textbox("t1").value()); assertNotNull(browser.textbox(1)); assertNotNull(browser.textbox("$a_dollar")); browser.textbox("$a_dollar").setValue("adas"); assertEquals("", browser.textbox(1).value()); assertNotNull(browser.textarea("ta1")); assertEquals("", browser.textarea("ta1").value()); assertNotNull(browser.textarea(1)); assertEquals("", browser.textarea(1).value()); assertNotNull(browser.checkbox("c1")); assertEquals("cv1", browser.checkbox("c1").value()); assertNotNull(browser.checkbox(1)); assertEquals("cv2", browser.checkbox(1).value()); assertNotNull(browser.checkbox("c1[1]")); assertEquals("cv3", browser.checkbox("c1[1]").value()); assertNotNull(browser.checkbox(3)); assertEquals("", browser.checkbox(3).value()); assertNotNull(browser.radio("r1")); assertEquals("rv1", browser.radio("r1").value()); assertNotNull(browser.password("p1")); assertEquals("", browser.password("p1").value()); assertNotNull(browser.password(1)); assertEquals("", browser.password(1).value()); assertNotNull(browser.select("s1")); assertEquals("o1", browser.select("s1").selectedText()); assertNotNull(browser.select("s1Id[1]")); assertEquals("o1", browser.select("s1Id[1]").selectedText()); assertNotNull(browser.select(2)); assertEquals("o1", browser.select(2).selectedText()); assertNotNull(browser.button("button value")); assertNotNull(browser.button("btnName[1]")); assertNotNull(browser.button("btnId[2]")); assertNotNull(browser.button(3)); assertNotNull(browser.submit("Add")); assertNotNull(browser.submit("submitBtnName[1]")); assertNotNull(browser.submit("submitBtnId[2]").fetch()); assertNotNull(browser.submit(3).fetch()); assertNotNull(browser.image("imageAlt1").fetch()); assertNotNull(browser.image("imageId1[1]").fetch()); assertNotNull(browser.image(2).fetch()); assertNull(browser.link("Back22").fetch()); assertNotNull(browser.link("Back").fetch()); assertNotNull(browser.accessor("document.getElementById('ta1')")); assertNotNull(browser.byId("ta1")); assertNotNull(browser.byClassName("button[1]", "INPUT")); browser.navigateTo("tableTest.htm"); assertNotNull(browser.byXPath("//table[1]/tbody/tr[1]/td[@id='CellWithId']")); } @Test @Ignore("Move to integration test phase") public void testSelect() { browser.navigateTo(baseURL + "/demo/formTest.htm"); assertEquals("o1", browser.select("s1Id[1]").selectedText()); browser.select("s1Id[1]").choose("o2"); assertEquals("o2", browser.select("s1Id[1]").selectedText()); } @Test @Ignore("Move to integration test phase") public void testMultiSelect() { browser.navigateTo(baseURL + "/demo/selectTest.htm"); browser.select("s4Id").choose("o1"); assertEquals("o1", browser.select("s4Id").selectedText()); browser.select("s4Id").choose("o2", true); assertEquals("o1,o2", browser.select("s4Id").selectedText()); browser.select("s4Id").choose(new String[]{"o2", "o3"}); assertEquals("o2,o3", browser.select("s4Id").selectedText()); browser.select("s4Id").choose(new String[]{"o1", "o2"}, true); assertEquals("o1,o2,o3", browser.select("s4Id").selectedText()); } @Test @Ignore("Move to integration test phase") public void testSetFile() { browser.navigateTo(baseURL + "/demo/php/fileUpload.htm"); browser.file("file").setFile("scripts/demo/uploadme.txt"); browser.submit("Submit Single").click(); assertTrue(browser.span("size").exists()); assertTrue(browser.span("size").text().indexOf("0.3046875 Kb") != -1); assertTrue(browser.span("type").text().indexOf("Single") != -1); browser.link("Back to form").click(); } @Test @Ignore("Move to integration test phase") public void testMultiFileUpload() { browser.navigateTo(baseURL + "/demo/php/fileUpload.htm"); browser.file("file[]").setFile("scripts/demo/uploadme.txt"); browser.file("file[]").setFile("scripts/demo/uploadme2.txt"); browser.submit("Submit Array").click(); assertTrue(browser.span("type").text().indexOf("Array") != -1); assertTrue(browser.span("file").text().indexOf("uploadme.txt") != -1); assertTrue(browser.span("size").text().indexOf("0.3046875 Kb") != -1); assertTrue(browser.span("file[1]").text().indexOf("uploadme2.txt") != -1); assertTrue(browser.span("size[1]").text().indexOf("0.32421875 Kb") != -1); } @Test @Ignore("Move to integration test phase") public void testSahiDemoClicks() { browser.navigateTo(baseURL + "/demo/formTest.htm"); assertNotNull(browser.checkbox("c1")); browser.checkbox("c1").click(); assertEquals("true", browser.checkbox("c1").fetch("checked")); browser.checkbox("c1").click(); assertEquals("false", browser.checkbox("c1").fetch("checked")); assertNotNull(browser.radio("r1")); browser.radio("r1").click(); assertEquals("true", browser.radio("r1").fetch("checked")); assertTrue(browser.radio("r1").checked()); assertFalse(browser.radio("r1[1]").checked()); browser.radio("r1[1]").click(); assertEquals("false", browser.radio("r1").fetch("checked")); assertTrue(browser.radio("r1[1]").checked()); assertFalse(browser.radio("r1").checked()); } @Test @Ignore("Move to integration test phase") public void testLinks() { browser.navigateTo(baseURL + "/demo/index.htm"); browser.link("Link Test").click(); browser.link("linkByContent").click(); browser.link("Back").click(); browser.link("link with return true").click(); assertTrue(browser.textarea("ta1").exists()); assertEquals("", browser.textarea("ta1").value()); browser.link("Back").click(); browser.link("Link Test").click(); browser.link("link with return false").click(); assertTrue(browser.textbox("t1").exists()); assertEquals("formTest link with return false", browser.textbox("t1").value()); assertTrue(browser.link("linkByContent").exists()); browser.link("link with returnValue=false").click(); assertTrue(browser.textbox("t1").exists()); assertEquals("formTest link with returnValue=false", browser.textbox("t1").value()); browser.link("added handler using js").click(); assertTrue(browser.textbox("t1").exists()); assertEquals("myFn called", browser.textbox("t1").value()); browser.textbox("t1").setValue(""); browser.image("imgWithLink").click(); browser.link("Link Test").click(); browser.image("imgWithLinkNoClick").click(); assertTrue(browser.textbox("t1").exists()); assertEquals("myFn called", browser.textbox("t1").value()); browser.link("Back").click(); } @Test @Ignore("Move to integration test phase") public void testPopupTitleNameMix() { browser.navigateTo(baseURL + "/demo/index.htm"); browser.link("Window Open Test").click(); browser.link("Window Open Test With Title").click(); browser.link("Table Test").click(); Browser popupPopWin = browser.popup("popWin"); popupPopWin.link("Link Test").click(); browser.link("Back").click(); Browser popupWithTitle = browser.popup("With Title"); popupWithTitle.link("Form Test").click(); browser.link("Table Test").click(); popupWithTitle.textbox("t1").setValue("d"); browser.link("Back").click(); popupWithTitle.textbox(1).setValue("e"); browser.link("Table Test").click(); popupWithTitle.textbox("name").setValue("f"); assertNotNull(popupPopWin.link("linkByHtml").exists()); assertNotNull(browser.cell("CellWithId")); assertEquals("Cell with id", browser.cell("CellWithId").text()); popupWithTitle.link("Break Frames").click(); Browser popupSahiTests = browser.popup("Sahi Tests"); popupSahiTests.close(); popupPopWin.link("Break Frames").click(); // popupPopWin.link("Close Self").click(); popupPopWin.close(); browser.link("Back").click(); } @Test @Ignore("Move to integration test phase") public void testIn() { browser.navigateTo(baseURL + "/demo/tableTest.htm"); assertEquals("111", browser.textarea("ta").near(browser.cell("a1")).getValue()); assertEquals("222", browser.textarea("ta").near(browser.cell("a2")).getValue()); browser.link("Go back").in(browser.cell("a1").parentNode()).click(); assertTrue(browser.link("Link Test").exists()); } @Test @Ignore("Move to integration test phase") public void testExists() { browser.navigateTo(baseURL + "/demo/index.htm"); assertTrue(browser.link("Link Test").exists()); assertFalse(browser.link("Link Test NonExistent").exists()); } public void testWaitFor() { browser.navigateTo(baseURL + "/demo/waitCondition1.htm"); BrowserCondition condition = new BrowserCondition(browser) { @Override public boolean test() { return "populated".equals(browser.textbox("t1").value()); } }; browser.waitFor(condition, 5000); assertEquals("populated", browser.textbox("t1").value()); } public void alert1(String message) { browser.navigateTo(baseURL + "/demo/alertTest.htm"); browser.textbox("t1").setValue("Message " + message); browser.button("Click For Alert").click(); browser.navigateTo("/demo/alertTest.htm"); browser.waitFor(1000); assertEquals("Message " + message, browser.lastAlert()); browser.clearLastAlert(); assertNull(browser.lastAlert()); } @Test @Ignore("Move to integration test phase") public void testAlert() { alert1("One"); alert1("Two"); alert1("Three"); browser.button("Click For Multiline Alert").click(); assertEquals("You must correct the following Errors:\nYou must select a messaging price plan.\nYou must select an international messaging price plan.\nYou must enter a value for the Network Lookup Charge", browser.lastAlert()); } @Test @Ignore("Move to integration test phase") public void xtestGoogle() { browser.open(); browser.navigateTo("http://www.google.com"); browser.setValue(browser.textbox("q"), "sahi forums"); browser.submit("Google Search").click(); browser.waitFor(1000); browser.link("Forums - Sahi - Web Automation and Test Tool").click(); browser.link("Login").click(); assertTrue(browser.textbox("req_username").exists()); } @Test @Ignore("Move to integration test phase") public void xtestGoogleDD() throws Exception { browser.open(); browser.navigateTo("http://www.google.com"); browser.setValue(browser.textbox("q"), "sahi dow"); browser.waitFor(3000); assertTrue(browser.cell("sahi download").isVisible()); browser.textbox("q").keyDown(40, 0); browser.textbox("q").keyUp(40, 0); assertEquals("sahi download", browser.textbox("q").getValue()); } @Test @Ignore("Move to integration test phase") public void xtestForumsExists() throws Exception { browser.navigateTo("http://sahi.co.in/forums/"); browser.link("Login").click(); assertTrue(browser.textbox("req_username").exists()); } @Test @Ignore("Move to integration test phase") public void testConfirm() { browser.navigateTo(baseURL + "/demo/confirmTest.htm"); browser.expectConfirm("Some question?", true); browser.button("Click For Confirm").click(); assertEquals("oked", browser.textbox("t1").value()); browser.navigateTo("/demo/confirmTest.htm"); browser.waitFor(1000); assertEquals("Some question?", browser.lastConfirm()); browser.clearLastConfirm(); assertNull(browser.lastConfirm()); browser.expectConfirm("Some question?", false); browser.button("Click For Confirm").click(); assertEquals("canceled", browser.textbox("t1").value()); assertEquals("Some question?", browser.lastConfirm()); browser.clearLastConfirm(); assertNull(browser.lastConfirm()); browser.expectConfirm("Some question?", true); browser.button("Click For Confirm").click(); assertEquals("oked", browser.textbox("t1").value()); assertEquals("Some question?", browser.lastConfirm()); browser.clearLastConfirm(); assertNull(browser.lastConfirm()); } @Test @Ignore("Move to integration test phase") public void testPrompt() { browser.navigateTo(baseURL + "/demo/promptTest.htm"); browser.expectPrompt("Some prompt?", "abc"); browser.button("Click For Prompt").click(); assertNotNull(browser.textbox("t1")); assertEquals("abc", browser.textbox("t1").value()); browser.navigateTo("/demo/promptTest.htm"); browser.waitFor(2000); assertEquals("Some prompt?", browser.lastPrompt()); browser.clearLastPrompt(); assertNull(browser.lastPrompt()); } @SuppressWarnings("deprecation") @Test @Ignore("Move to integration test phase") public void testIsVisible() { browser.navigateTo(baseURL + "/demo/index.htm"); browser.link("Visible Test").click(); assertTrue(browser.spandiv("using display").isVisible()); browser.button("Display none").click(); assertFalse(browser.isVisible(browser.spandiv("using display"))); browser.button("Display block").click(); assertTrue(browser.isVisible(browser.spandiv("using display"))); browser.button("Display none").click(); assertFalse(browser.isVisible(browser.spandiv("using display"))); browser.button("Display inline").click(); assertTrue(browser.isVisible(browser.spandiv("using display"))); assertTrue(browser.isVisible(browser.spandiv("using visibility"))); browser.button("Visibility hidden").click(); assertFalse(browser.isVisible(browser.spandiv("using visibility"))); browser.button("Visibility visible").click(); assertTrue(browser.isVisible(browser.spandiv("using visibility"))); assertFalse(browser.isVisible(browser.byId("nestedBlockInNone"))); assertFalse(browser.isVisible(browser.byId("absoluteNestedBlockInNone"))); } @Test @Ignore("Move to integration test phase") public void testCheck() throws Exception { browser.navigateTo(baseURL + "/demo/"); browser.link("Form Test").click(); assertEquals("false", browser.checkbox("c1").fetch("checked")); assertFalse(browser.checkbox("c1").checked()); browser.checkbox("c1").check(); assertEquals("true", browser.checkbox("c1").fetch("checked")); assertTrue(browser.checkbox("c1").checked()); browser.checkbox("c1").check(); assertEquals("true", browser.checkbox("c1").fetch("checked")); browser.checkbox("c1").uncheck(); assertEquals("false", browser.checkbox("c1").fetch("checked")); browser.checkbox("c1").uncheck(); assertEquals("false", browser.checkbox("c1").fetch("checked")); browser.checkbox("c1").click(); assertEquals("true", browser.checkbox("c1").fetch("checked")); } @Test @Ignore("Move to integration test phase") public void testFocus() throws Exception { browser.navigateTo(baseURL + "/demo/focusTest.htm"); browser.textbox("t2").focus(); assertEquals("focused", browser.textbox("t1").value()); browser.textbox("t2").removeFocus(); assertEquals("not focused", browser.textbox("t1").value()); browser.textbox("t2").focus(); assertEquals("focused", browser.textbox("t1").value()); } @Test @Ignore("Move to integration test phase") public void testTitle() throws Exception { browser.navigateTo(baseURL + "/demo/index.htm"); assertEquals("Sahi Tests", browser.title()); browser.link("Form Test").click(); assertEquals("Form Test", browser.title()); browser.link("Back").click(); browser.link("Window Open Test With Title").click(); assertEquals("With Title", browser.popup("With Title").title()); } @Test @Ignore("Move to integration test phase") public void testArea() throws Exception { browser.navigateTo(baseURL + "/demo/map.htm"); browser.navigateTo("map.htm"); assertTrue(browser.area("Record").exists()); assertTrue(browser.area("Playback").exists()); assertTrue(browser.area("Info").exists()); assertTrue(browser.area("Circular").exists()); browser.area("Record").mouseOver(); assertEquals("Record", browser.div("output").getText()); browser.mouseOver(browser.button("Clear")); assertEquals("", browser.div("output").getText()); browser.click(browser.area("Record")); assertTrue(browser.link("linkByContent").exists()); //browser.navigateTo("map.htm"); } @Test @Ignore("Move to integration test phase") public void testRegExp() throws Exception { browser.navigateTo(baseURL + "/demo/regexp.htm"); assertEquals("Inner", browser.div("Inner").getText()); assertEquals("Inner", browser.div("/Inner/[1]").getText()); assertTrue(!browser.div("/Inner/[3]").exists()); assertTrue(browser.link("/Vi/[0]").fetch("href").indexOf("0.htm") != -1); assertTrue(browser.link("View[1]").fetch("href").indexOf("1.htm") != -1); assertTrue(browser.link("/Vi/[2]").fetch("href").indexOf("2.htm") != -1); assertTrue(browser.link("View[3]").fetch("href").indexOf("3.htm") != -1); } @Test @Ignore("Move to integration test phase") public void testContainsText() throws Exception { browser.navigateTo(baseURL + "/demo/containTest.htm"); assertTrue(browser.div("a").containsText("find me here")); assertTrue(browser.div("a").containsText("me")); assertTrue(browser.div("a").containsText("/find/")); assertTrue(browser.div("a").containsText("/f.*nd/")); assertTrue(browser.accessor("document.body").containsHTML("<DIV") || browser.accessor("document.body").containsHTML("<div")); assertTrue(browser.accessor("document.body").containsHTML("/find .* here/")); } @Test @Ignore("Move to integration test phase") public void testStyle() throws Exception { browser.navigateTo(baseURL + "/demo/mouseover.htm"); if (browser.isChrome() || browser.isFirefox()) { assertEquals("16px", browser.span("Hi Kamlesh").style("font-size")); assertEquals("rgb(0, 0, 238)", browser.span("Hi Kamlesh").style("color")); } else { assertEquals("12pt", browser.span("Hi Kamlesh").style("font-size")); assertEquals("#0066cc", browser.span("Hi Kamlesh").style("color")); } } @Test @Ignore("Move to integration test phase") public void testDoubleClick() throws Exception { browser.navigateTo(baseURL + "/demo/clicks.htm"); browser.div("dbl click me").highlight(); browser.div("dbl click me").doubleClick(); assertEquals("[DOUBLE_CLICK]", browser.textarea("t2").value()); browser.button("Clear").click(); } @Test @Ignore("Move to integration test phase") public void testRightClick() throws Exception { browser.navigateTo(baseURL + "/demo/clicks.htm"); browser.div("right click me").rightClick(); assertEquals("[RIGHT_CLICK]", browser.textarea("t2").value()); browser.button("Clear").click(); } @Test @Ignore("Move to integration test phase") public void testUnder() throws Exception { browser.navigateTo(baseURL + "/demo/tableTest.htm"); assertEquals("x1-2", browser.cell(0).near(browser.cell("x1-0")).under(browser.tableHeader("header 3")).getText()); assertEquals("x1-3", browser.cell(0).near(browser.cell("x1-0")).under(browser.tableHeader("header 4")).getText()); } @Test @Ignore("Move to integration test phase") public void xtestSaveAs() throws Exception { browser.navigateTo(baseURL + "/demo/"); String absolutePath = "testsaveas_x.zip"; File file = new File(absolutePath); if (file.exists()) file.delete(); assertTrue(!file.exists()); browser.link("Save As Test").click(); browser.link("testsaveas.zip").click(); assertEquals("testsaveas.zip", browser.lastDownloadedFileName()); String filePath = "testsaveas_x.zip"; browser.saveDownloadedAs(filePath); assertTrue(file.exists()); if (file.exists()) file.delete(); browser.clearLastDownloadedFileName(); assertNull(browser.lastDownloadedFileName()); } @Test @Ignore("Move to integration test phase") public void testBrowserJS() throws Exception { browser.setBrowserJS("function giveMyNumber(){return '23';}"); browser.navigateTo(baseURL + "/demo/"); assertEquals("23", browser.fetch("giveMyNumber()")); browser.link("Link Test").click(); assertEquals("23", browser.fetch("giveMyNumber()")); browser.link("Back").click(); } @Test @Ignore("Move to integration test phase") public void testFillMe() throws Exception { browser.navigateTo(baseURL + "/demo/"); browser.link("Link Test").click(); browser.link("Back").click(); browser.link("Window Open Test").click(); browser.popup("popWin").link("Alert Test").click(); assertTrue(browser.popup("popWin").link("Alert Test").exists()); browser.popup("popWin").link("Break Frames").click(); } @Test @Ignore("Move to integration test phase") public void xtestDomain() { // works only on FF right now. browser.navigateTo(baseURL + "/demo/"); browser.link("Different Domains External").click(); browser.domain("www.tytosoftware.com").link("Link Test").click(); browser.domain("www.bing.com").textbox("q").setValue("fdsfsd"); browser.domain("www.tytosoftware.com").link("Back").click(); browser.domain("www.bing.com").div("bgDiv").click(); browser.navigateTo(baseURL + "/demo/"); } @Test @Ignore("Move to integration test phase") public void xtestLateRooms() throws Exception { browser.navigateTo("http://www.laterooms.com/"); browser.textbox("k").setValue("Manchester"); browser.submit("do").click(); browser.link("Premier Apartments Manchester").click(); assertTrue(browser.heading1("/Premier Apartments Manchester/").exists()); } @Test @Ignore("Move to integration test phase") public void testFileUploadWithChangedType() throws Exception { browser.navigateTo(baseURL + "/demo/php/fileUpload.htm"); browser.file("file").setFile("scripts/demo/uploadme.txt"); if ("true".equals(browser.fetch("_sahi._isIE()"))) { browser.execute("_sahi._file('file').outerHTML = _sahi._file('file').outerHTML.replace(/type=file/, 'type=text')"); } else { browser.execute("_sahi._file('file').type = 'text'"); } browser.textbox("file").setValue("scripts/demo/uploadme.txt"); browser.submit("Submit Single").click(); assertTrue(browser.span("size").exists()); assertTrue(browser.span("size").text().indexOf("0.3046875 Kb") != -1); assertTrue(browser.span("type").text().indexOf("Single") != -1); browser.link("Back to form").click(); } @Test @Ignore("Move to integration test phase") public void testTextareaHandlesNewlines() throws Exception { browser.navigateTo(baseURL + "/demo/"); browser.link("Form Test").click(); browser.textarea("ta1").setValue("a\nb"); assertEquals("a\nb", browser.textarea("ta1").getValue().replace("\r\n", "\n")); } @Test @Ignore("Move to integration test phase") public void testCount() throws Exception { browser.navigateTo(baseURL + "/demo/count.htm"); assertEquals(4, browser.link("group 0 link").countSimilar()); assertEquals(0, browser.link("group non existent link").countSimilar()); assertEquals(5, browser.link("/group 1/").countSimilar()); assertEquals(2, browser.link("/group 1/").in(browser.div("div1")).countSimilar()); } @Test @Ignore("Move to integration test phase") public void testCollect() throws Exception { browser.navigateTo(baseURL + "/demo/count.htm"); List<ElementStub> els = browser.link("/group 1/").collectSimilar(); assertEquals(5, els.size()); assertEquals("group 1 link1", els.get(0).getText()); assertEquals("group 1 link2", els.get(1).getText()); browser.navigateTo(baseURL + "/demo/count.htm"); List<ElementStub> els2 = browser.link("/group 1/").in(browser.div("div1")).collectSimilar(); assertEquals(2, els2.size()); assertEquals("group 1 link3", els2.get(0).getText()); assertEquals("group 1 link4", els2.get(1).getText()); browser.navigateTo(baseURL + "/demo/count.htm"); List<ElementStub> els3 = browser.link("/.*/").in(browser.div("div1")).collectSimilar(); assertEquals(2, els3.size()); assertEquals("group 1 link3", els3.get(0).getText()); assertEquals("group 1 link4", els3.get(1).getText()); } @Test @Ignore("Move to integration test phase") public void testHTML5FormFields() throws Exception { browser.navigateTo(baseURL + "/demo/html5_form_fields.htm"); browser.datebox("dob").setValue("2010-10-10"); assertEquals("2010-10-10", browser.datebox("dob").getValue()); browser.execute("_sahi._rangebox(\"points\").value = 3"); assertEquals("3", browser.rangebox("points").getValue()); browser.browser.rangebox("points").setValue("5"); assertEquals("5", browser.rangebox("points").getValue()); browser.weekbox("week2").setValue("2009-W10"); assertEquals("2009-W10", browser.weekbox("week2").getValue()); } @Test @Ignore("Move to integration test phase") public void testWikipedia() throws Exception { browser.navigateTo("http://www.wikipedia.org"); browser.searchbox("search").setValue("sahi software"); browser.submit("go").click(); } @Test @Ignore("Move to integration test phase") public void testStrictVisibility() throws Exception { browser.navigateTo(baseURL + "/demo/strict_visible.htm"); assertTrue(browser.textbox("q").exists()); assertTrue(browser.textbox("q[1]").exists()); assertFalse(browser.textbox("q[1]").isVisible()); assertTrue(browser.textbox("q[2]").exists()); browser.setStrictVisibilityCheck(true); assertTrue(browser.textbox("q").exists()); assertTrue(browser.textbox("q[1]").exists()); assertFalse(browser.textbox("q[2]").exists()); browser.setStrictVisibilityCheck(false); assertTrue(browser.textbox("q").exists()); assertTrue(browser.textbox("q[1]").exists()); assertFalse(browser.textbox("q[1]").isVisible()); assertTrue(browser.textbox("q[2]").exists()); } @Test @Ignore("Move to integration test phase") public void testCuteEditor() throws Exception { browser.navigateTo("http://cutesoft.net/asp/EnableAll.asp"); browser.rte("CE_Editor1_ID_Frame").rteWrite("<html><b>Hhahaia</b></html>"); } @Test @Ignore("Move to integration test phase") public void testActiveElement() throws Exception { browser.navigateTo(baseURL + "/demo/training/login.htm"); browser.textbox("user").focus(); assertEquals("user", browser.activeElement().fetch("name")); browser.password("password").focus(); assertEquals("password", browser.activeElement().fetch("name")); } @Test @Ignore("Move to integration test phase") public void testMouseDownMouseUp() throws Exception { browser.navigateTo(baseURL + "/demo/mouseEvents.htm"); browser.button("Capture mouse down").mouseDown(); assertEquals("[MOUSE_DOWN]", browser.getText(browser.textarea("t2"))); browser.button("Capture mouse up").mouseUp(); assertEquals("[MOUSE_DOWN][MOUSE_UP]", browser.getText(browser.textarea("t2"))); } @Test @Ignore("Move to integration test phase") public void testKeyPressAndGetAttribute() { browser.navigateTo(baseURL + "/demo/keypress.htm"); browser.click(browser.radio("r3")); browser.keyPress(browser.textbox("t2"), "a", "CTRL"); assertEquals("key pressed charCode=[97] keyCode=[0] CTRL", browser.getText(browser.textbox("t1"))); browser.keyPress(browser.textbox("t2"), "c", "ALT"); assertEquals("key pressed charCode=[99] keyCode=[0] ALT", browser.getText(browser.textbox("t1"))); assertEquals((browser.getAttribute(browser.textbox("t1"), "size")), "70"); browser.keyPress(browser.textbox("t2"), "c"); assertEquals("key pressed charCode=[99] keyCode=[0] NONE", browser.getText(browser.textbox("t1"))); } @Test @Ignore("Move to integration test phase") public void testBlur() { browser.navigateTo(baseURL + "/demo/focusTest.htm"); browser.focus(browser.textbox("t2")); assertEquals("focused", browser.textbox("t1").getValue()); browser.removeFocus(browser.textbox("t2")); assertEquals("not focused", browser.textbox("t1").getValue()); browser.focus(browser.textbox("t2")); assertEquals("focused", browser.textbox("t1").getValue()); browser.blur(browser.textbox("t2")); assertEquals("not focused", browser.textbox("t1").getValue()); } @Test @Ignore("Move to integration test phase") public void testPrintCalledAndClearPrintCalled() { browser.navigateTo(baseURL + "/demo/print.htm"); assertFalse(browser.printCalled()); browser.click(browser.button("Print")); assertTrue(browser.printCalled()); browser.clearPrintCalled(); assertFalse(browser.printCalled()); browser.click(browser.button("Print")); assertTrue(browser.printCalled()); } @Test @Ignore("Move to integration test phase") public void testSetXSRStates() { browser.navigateTo(baseURL + "/demo/"); assertEquals("true", browser.fetch("_sahi.waitWhenXHRReadyState1")); assertEquals("true", browser.fetch("_sahi.waitWhenXHRReadyState2")); assertEquals("true", browser.fetch("_sahi.waitWhenXHRReadyState3")); browser.setXHRReadyStatesToWaitFor("2,3"); assertEquals("false", browser.fetch("_sahi.waitWhenXHRReadyState1")); assertEquals("true", browser.fetch("_sahi.waitWhenXHRReadyState2")); assertEquals("true", browser.fetch("_sahi.waitWhenXHRReadyState3")); browser.click(browser.link("Link Test")); assertEquals("false", browser.fetch("_sahi.waitWhenXHRReadyState1")); assertEquals("true", browser.fetch("_sahi.waitWhenXHRReadyState2")); assertEquals("true", browser.fetch("_sahi.waitWhenXHRReadyState3")); browser.setXHRReadyStatesToWaitFor("2"); browser.click(browser.link("Back")); assertEquals("false", browser.fetch("_sahi.waitWhenXHRReadyState1")); assertEquals("true", browser.fetch("_sahi.waitWhenXHRReadyState2")); assertEquals("false", browser.fetch("_sahi.waitWhenXHRReadyState3")); } @Test @Ignore("Move to integration test phase") public void testSetFileWithThirdArguement() { browser.navigateTo(baseURL + "/demo/php/fileUpload.htm"); browser.setFile(browser.file("file4"), "scripts/demo/uploadme.txt", "fileUpload.php"); browser.click(browser.submit("Submit Single")); assertTrue(browser.span("size").exists()); assertTrue(browser.span("size").getText().contains("0.3046875 Kb")); assertTrue(browser.span("type").getText().contains("Single")); } @Test @Ignore("Move to integration test phase") public void xtestKeyUpAndKeyDown() { browser.navigateTo(baseURL + "/demo/keypress.htm"); browser.check(browser.radio("r2")); // browser.keyDown(browser.textbox("t2"), "a", "CTRL"); // assertEquals("key downed charCode=[0] keyCode=[90] CTRL",browser.getText(browser.textbox("t1"))); browser.keyDown(browser.textbox("t2"), "a"); browser.waitFor(10000); assertEquals("key downed charCode=[0] keyCode=[65] NONE", browser.getText(browser.textbox("t1"))); } @Override public void setBrowser() { setBrowser("firefox"); } }