/* * Copyright 2012-2014 eBay Software Foundation and selendroid committers. * * 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. */ package io.selendroid.grid; import org.openqa.grid.common.RegistrationRequest; import org.openqa.grid.internal.TestSlot; import org.openqa.grid.internal.utils.HtmlRenderer; import org.openqa.grid.web.utils.BrowserNameUtils; import org.openqa.selenium.remote.DesiredCapabilities; /** * Selendroid node renderer used in the Selenium Grid hub. * * @author ddary * */ public class SelendroidNodeHtmlRenderer implements HtmlRenderer { public static final String BROWSER_NAME = "selendroid"; private SelendroidSessionProxy proxy; SelendroidNodeHtmlRenderer(SelendroidSessionProxy proxy) { this.proxy = proxy; } public String renderSummary() { StringBuilder builder = new StringBuilder(); builder.append("<fieldset>"); builder .append("<legend>") .append( "<img width='30' src='/grid/resources/images/mac.png' style='vertical-align:middle;' title='" + proxy.getClass().getSimpleName() + "'/>") .append(proxy.getClass().getSimpleName()).append("</legend>"); builder.append("<div id='browsers'>"); for (TestSlot slot : proxy.getTestSlots()) { builder.append("<a href='#' "); builder.append(" title='").append(slot.getCapabilities()).append("' "); builder.append(" >"); String icon = null; if (BROWSER_NAME.equals(slot.getCapabilities().get(RegistrationRequest.BROWSER))) { icon = "selendroid"; } else { icon = BrowserNameUtils.consoleIconName(new DesiredCapabilities(slot.getCapabilities()), proxy.getRegistry()); } builder.append("<img src='/grid/resources/images/" + icon + ".png' height='20px' "); builder.append("</a>"); } builder.append("</div>"); builder.append("</fieldset>"); return builder.toString(); } }