From 0292ea8629c73eaf93b1766411c4d9fb746bf9db Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Wed, 10 Apr 2013 12:44:16 +0800 Subject: [PATCH] IDEMPIERE-92 Implement Selenium testing framework. Fixed checkbox support. --- .../src/fitlibrary/zk/ZkFixture.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/org.idempiere.ui.zk.selenium/src/fitlibrary/zk/ZkFixture.java b/org.idempiere.ui.zk.selenium/src/fitlibrary/zk/ZkFixture.java index 75eca0792f..c7c83d25e6 100644 --- a/org.idempiere.ui.zk.selenium/src/fitlibrary/zk/ZkFixture.java +++ b/org.idempiere.ui.zk.selenium/src/fitlibrary/zk/ZkFixture.java @@ -15,6 +15,7 @@ import fitlibrary.annotation.SimpleAction; import fitlibrary.spider.AbstractSpiderFixture; import fitlibrary.spider.Finder; import fitlibrary.spider.SpiderFixture; +import fitlibrary.spider.polling.PollForWithError; /** * @author hengsin @@ -42,9 +43,29 @@ public class ZkFixture extends SpiderFixture { @Override public boolean withSelect(String locator, final boolean select) { - locator = locator + " ~ input"; + Widget widget = new Widget(locator); + final WebElement element = widget.$n(webDriver, "real"); + if (element.isSelected()) { + if (!select) { + element.click(); + } + } else { + if (select) { + element.click(); + } + } - return super.withSelect(locator, select); + ensureBecomes(new PollForWithError() { + @Override + public boolean matches() { + return element.isSelected() == select; + } + @Override + public String error() { + return "Not selected correctly"; + } + }); + return true; } // --------- ComboBox ---------