package org.qooxdoo.demo.desktoptestrunner; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Test; import org.oneandone.qxwebdriver.By; import org.oneandone.qxwebdriver.ui.Scrollable; import org.oneandone.qxwebdriver.ui.Widget; import org.openqa.selenium.WebElement; import org.qooxdoo.demo.IntegrationTest; public class Runner extends IntegrationTest { @Test public void testAppLoads() { Widget treeItem= driver.findWidget(By.qxh("*/qx.ui.tree.VirtualTreeItem")); assertTrue(treeItem.getText().equals("qx")); } @Test public void selectTests() throws InterruptedException{ //select test : qx -> test -> bom -> client -> Css -> 'testBorderImageSyntax' driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=bom]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=client]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=Css]")).click(); Widget test = driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=testBorderImageSyntax]")); assertTrue(test.isDisplayed()); //select test: qx -> test -> media -> Audio -> 'testVolume' driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=media]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=Audio]")).click(); Thread.sleep(750); Widget test2 = driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=testVolume]")); test2.click(); assertTrue(test2.isDisplayed()); //select test: qx -> test -> Basic -> 'testElementAttributes' org.oneandone.qxwebdriver.ui.Scrollable scroll=(Scrollable) driver.findWidget(By.qxh("*/qx.ui.tree.VirtualTree")); Widget basic = scroll.scrollToChild("y", By.xpath("//div[text()='Basic']")); Thread.sleep(750); basic.click(); Thread.sleep(750); Widget testElementAttributes = scroll.scrollToChild("y", By.xpath("//div[text() = 'testElementAttributes']")); Thread.sleep(750); testElementAttributes.click(); assertTrue(testElementAttributes.isDisplayed()); } @Test public void runTests() throws InterruptedException{ driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=bom]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=client]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=Css]")).click(); //click 'Run Tests!' button WebElement run= driver.findElement(By.xpath("//div[contains(@class, 'qx-button-box-left')]"));; run.click(); WebElement results= driver.findElement(By.xpath("//ul[contains(@class, 'resultPane')]")); assertTrue(results.getText().equals("qx.test.bom.client.Css:testBorderImageSyntax")); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=application]")).click(); Thread.sleep(1000); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=Routing]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=testAny]")).click(); run.click(); WebElement results2= driver.findElement(By.xpath("//ul[contains(@class, 'resultPane')]")); assertTrue(results2.getText().equals("qx.test.application.Routing:testAny")); Thread.sleep(750); org.oneandone.qxwebdriver.ui.Scrollable scroll=(Scrollable) driver.findWidget(By.qxh("*/qx.ui.tree.VirtualTree")); scroll.scrollToChild("y", By.xpath("//div[text() = 'Basic']")); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=Basic]")).click(); run.click(); WebElement results3= driver.findElement(By.xpath("//ul[contains(@class, 'resultPane')]")); assertTrue(results3.getText().equals("qx.test.bom.Basic:testElementAttributes")); } @Test public void settingLogLevelWorks() throws InterruptedException{ // check debug mode after initializing By locator = By.qxh("*/[@source=system.png]"); Widget logLevelButton = driver.findWidget(locator); assertTrue(logLevelButton.isDisplayed()); Widget logContent = driver.findWidget(By.qxh("*/qx.ui.embed.Html")); //check if log content is empty assertTrue(logContent.getText().equals("")); //run a test driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=bom]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=client]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=Device]")).click(); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=testDetectDeviceType]")).click(); //click 'Run Tests!' button WebElement run= driver.findElement(By.xpath("//div[contains(@class, 'qx-button-box-left')]"));; run.click(); logContent = driver.findWidget(By.qxh("*/qx.ui.embed.Html")); //log content should not be empty after running a test assertTrue(!logContent.getText().equals("")); //switch to log level 'Warning' logLevelButton.click(); By locatorWarning = By.qxh("*/[@source=dialog-warning.png]"); Widget logLevelButtonWarning = driver.findWidget(locatorWarning); logLevelButtonWarning.click(); run.click(); Thread.sleep(750); //after running a test, content should be empty assertTrue(logContent.getText().equals("")); } @Test public void reload() throws InterruptedException{ Widget logContent = driver.findWidget(By.qxh("*/qx.ui.embed.Html")); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=bom]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=client]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=Device]")).click(); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=testDetectDeviceType]")).click(); //click 'Run Tests!' button WebElement run= driver.findElement(By.xpath("//div[contains(@class, 'qx-button-box-left')]")); run.click(); logContent = driver.findWidget(By.qxh("*/qx.ui.embed.Html")); //log content should not be empty after running a test assertTrue(!logContent.getText().equals("")); Widget reload = driver.findWidget(By.qxh("*/qx.ui.toolbar.PartContainer/*/[@label=Reload]")); reload.click(); Thread.sleep(1500); //log content should be empty after reloading assertTrue(logContent.getText().equals("")); //result pane should be empty after reloading WebElement results= driver.findElement(By.xpath("//ul[contains(@class, 'resultPane')]")); assertTrue(results.getText().equals("")); } @Test public void autoReload() throws InterruptedException{ Widget logContent = driver.findWidget(By.qxh("*/qx.ui.embed.Html")); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=bom]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=client]")).click(); Thread.sleep(750); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=Device]")).click(); driver.findWidget(By.qxh("*/qx.ui.virtual.layer.WidgetCell/[@label=testDetectDeviceType]")).click(); //click 'Run Tests!' button WebElement run= driver.findElement(By.xpath("//div[contains(@class, 'qx-button-box-left')]")); run.click(); logContent = driver.findWidget(By.qxh("*/qx.ui.embed.Html")); //log content should not be empty after running a test assertTrue(!logContent.getText().equals("")); Widget autoReload = driver.findWidget(By.qxh("*/qx.ui.toolbar.ToolBar/*/[@label=Auto Reload]")); autoReload.click(); run.click(); Thread.sleep(1000); //result pane should be empty after reloading WebElement results= driver.findElement(By.xpath("//ul[contains(@class, 'resultPane')]")); assertTrue(!results.getText().equals("")); autoReload.click(); } @After public void setUpAfterTest() throws Exception{ driver.get(System.getProperty("org.qooxdoo.demo.auturl")); driver.manage().window().maximize(); driver.registerLogAppender(); driver.registerGlobalErrorHandler(); } }