@@ -0,0 +1,2946 @@
+/*******************************************************************************%0A * This file is part of OpenNMS(R).%0A *%0A * Copyright (C) 2016 The OpenNMS Group, Inc.%0A * OpenNMS(R) is Copyright (C) 1999-2016 The OpenNMS Group, Inc.%0A *%0A * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.%0A *%0A * OpenNMS(R) is free software: you can redistribute it and/or modify%0A * it under the terms of the GNU Affero General Public License as published%0A * by the Free Software Foundation, either version 3 of the License,%0A * or (at your option) any later version.%0A *%0A * OpenNMS(R) is distributed in the hope that it will be useful,%0A * but WITHOUT ANY WARRANTY; without even the implied warranty of%0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the%0A * GNU Affero General Public License for more details.%0A *%0A * You should have received a copy of the GNU Affero General Public License%0A * along with OpenNMS(R).  If not, see:%0A *      http://www.gnu.org/licenses/%0A *%0A * For more information contact:%0A *     OpenNMS(R) Licensing %3Clicense@opennms.org%3E%0A *     http://www.opennms.org/%0A *     http://www.opennms.com/%0A *******************************************************************************/%0A%0Apackage org.opennms.smoketest;%0A%0Aimport java.util.List;%0A%0Aimport org.junit.Before;%0Aimport org.junit.Test;%0A%0Aimport com.google.common.collect.Lists;%0A%0Apublic class TopologyIT extends OpenNMSSeleniumTestCase %7B%0A%0A    private static final String TOPOLOGY_UI_URL = BASE_URL + %22opennms/topology%22;%0A%0A    private final TopologyUiPage topologyUiPage = new TopologyUiPage();%0A%0A    private final static List%3CString%3E availableLayouts = Lists.newArrayList(%0A            %22Circle Layout%22,%0A            %22D3 Layout%22,%0A            %22FR Layout%22,%0A            %22Hierarchy Layout%22,%0A            %22ISOM Layout%22,%0A            %22KK Layout%22,%0A            %22Manual Layout%22,%0A            %22Real Ultimate Layout%22,%0A            %22Spring Layout%22%0A            );%0A%0A    /**%0A     * Class to control the inputs and workflow of the %22Topology UI%22 Page%0A     */%0A    private class TopologyUiPage %7B%0A        public TopologyUiPage open() %7B%0A            m_driver.get(TOPOLOGY_UI_URL);%0A            return this;%0A        %7D%0A %0A        public TopologyUiPage selectLayout(String layoutName) %7B%0A            clickItemInMenuBar(%22View%22);%0A            clickItemInMenuBar(layoutName);%0A            showEntireMap();%0A            return this;%0A        %7D%0A%0A        private void clickItemInMenuBar(String itemName) %7B%0A            findElementByXpath(%22//span%5B@class='v-menubar-menuitem-caption' and text()='%22 + itemName + %22'%5D%22).click();%0A        %7D%0A%0A        private void showEntireMap() %7B%0A            findElementByXpath(%22//i%5B@class='icon-globe'%5D%22).click();%0A        %7D%0A    %7D%0A%0A    @Before%0A    public void setUp() %7B%0A        topologyUiPage.open();%0A    %7D%0A%0A    @Test%0A    public void canSelectLayouts() throws InterruptedException %7B%0A        for (String layout : availableLayouts) %7B%0A            topologyUiPage.selectLayout(layout);%0A        %7D%0A    %7D%0A%7D%0A

Add a simple Topology UI tests that cycles through known layouts.