/******************************************************************************* * Copyright (c) 2017 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributor: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.eclipse.linuxtools.docker.integration.tests.container; import java.io.IOException; import org.eclipse.linuxtools.docker.integration.tests.image.AbstractImageBotTest; import org.eclipse.linuxtools.docker.integration.tests.mock.MockUtils; import org.eclipse.linuxtools.docker.reddeer.core.ui.wizards.ImageRunSelectionPage; import org.eclipse.linuxtools.docker.reddeer.ui.DockerImagesTab; import org.eclipse.linuxtools.docker.reddeer.utils.BrowserContentsCheck; import org.jboss.reddeer.common.wait.WaitWhile; import org.jboss.reddeer.core.condition.JobIsRunning; import org.jboss.reddeer.eclipse.condition.ConsoleHasNoChange; import org.jboss.reddeer.eclipse.ui.browser.BrowserView; import org.junit.After; import org.junit.Test; /** * * @author jkopriva@redhat.com * */ public class ExposePortTest extends AbstractImageBotTest { private static final String CONTAINER_NAME = "test_run_uhttpd"; private static final String EXPOSED_PORT = "80"; @Test public void testExposePort() throws IOException { pullImage(IMAGE_UHTTPD, IMAGE_TAG_LATEST); DockerImagesTab imagesTab = openDockerImagesTab(); runContainer(IMAGE_UHTTPD, IMAGE_TAG_LATEST, CONTAINER_NAME, imagesTab); if(mockitoIsUsed()){ MockUtils.runContainer(DEFAULT_CONNECTION_NAME, IMAGE_UHTTPD, IMAGE_TAG_LATEST, CONTAINER_NAME); } assertPortIsAccessible(EXPOSED_PORT); } private void assertPortIsAccessible(String exposedPort) { BrowserView browserView = new BrowserView(); browserView.open(); String url = createURL(":" + exposedPort); if (!mockitoIsUsed()) { BrowserContentsCheck.checkBrowserForErrorPage(browserView, url); } } private void runContainer(String imageName, String imageTag, String containerName, DockerImagesTab imagesTab) { imagesTab.runImage(imageName + ":" + imageTag); ImageRunSelectionPage firstPage = new ImageRunSelectionPage(); firstPage.setContainerName(containerName); firstPage.setPublishAllExposedPorts(false); firstPage.finish(); new WaitWhile(new JobIsRunning()); new WaitWhile(new ConsoleHasNoChange()); } @After public void after() { deleteContainerIfExists(CONTAINER_NAME); } }