public String renderSummary() { StringBuilder builder = new StringBuilder(); builder.append("<fieldset>"); builder.append("<legend>").append(proxy.getClass().getSimpleName()).append("</legend>"); builder.append("listening on ").append(proxy.getRemoteHost()); if (proxy.getTimeOut() > 0) { int inSec = proxy.getTimeOut() / 1000; builder.append("test session time out after ").append(inSec).append(" sec."); } builder .append("<br>Supports up to <b>") .append(proxy.getMaxNumberOfConcurrentTestSessions()) .append("</b> concurrent tests from : </u><br>"); for (TestSlot slot : proxy.getTestSlots()) { builder.append( slot.getCapabilities().containsKey(BROWSER) ? slot.getCapabilities().get(BROWSER) : slot.getCapabilities().get(APP)); builder.append("protocol:" + slot.getProtocol() + "<br>"); TestSession session = slot.getSession(); builder.append(session == null ? "(free)" : "(busy, session " + session + ")"); builder.append("<br>"); } builder.append("</fieldset>"); return builder.toString(); }
private Object getValueByReflection(RemoteProxy proxy, String method) { Class<?>[] argsClass = new Class[] {}; try { Method m = proxy.getClass().getDeclaredMethod(method, argsClass); return m.invoke(proxy); } catch (Throwable e) { throw new RuntimeException(e.getClass() + " - " + e.getMessage()); } }
@Test public void defaultToRemoteProxy() { GridNodeConfiguration nodeConfiguration = new GridNodeConfiguration(); new JCommander(nodeConfiguration, "-role", "webdriver", "-host", "localhost"); RegistrationRequest res = RegistrationRequest.build(nodeConfiguration); res.getCapabilities().clear(); RegistrationRequest req = res; Map<String, Object> app1 = new HashMap<>(); GridNodeConfiguration config = new GridNodeConfiguration(); app1.put(CapabilityType.APPLICATION_NAME, "app1"); req.addDesiredCapability(app1); req.setConfiguration(config); // requires Custom1 & Custom1 set in config to work. RemoteProxy p = BaseRemoteProxy.getNewInstance(req, registry); assertEquals(BaseRemoteProxy.class, p.getClass()); }
@Test public void existing() { Map<String, Object> app1 = new HashMap<>(); GridNodeConfiguration config = new GridNodeConfiguration(); app1.put(CapabilityType.APPLICATION_NAME, "app1"); config.proxy = "org.openqa.grid.plugin.MyRemoteProxy"; config.custom.put("Custom1", "A"); config.custom.put("Custom2", "B"); RegistrationRequest req = new RegistrationRequest(); req.addDesiredCapability(app1); req.setConfiguration(config); RemoteProxy p = BaseRemoteProxy.getNewInstance(req, registry); assertEquals(p.getClass(), MyRemoteProxy.class); MyRemoteProxy myRemoteProxy = (MyRemoteProxy) p; assertEquals("A", myRemoteProxy.getCustom1()); assertEquals("B", myRemoteProxy.getCustom2()); assertEquals("A", myRemoteProxy.getConfig().custom.get("Custom1")); assertEquals("B", myRemoteProxy.getConfig().custom.get("Custom2")); }