/******************************************************************************* * Copyright (c) 2016 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.jboss.tools.docker.ui.bot.test.image; import static org.junit.Assert.assertTrue; import java.util.List; import org.jboss.reddeer.common.wait.WaitWhile; import org.jboss.reddeer.core.condition.ShellWithTextIsAvailable; import org.jboss.reddeer.swt.api.TreeItem; import org.jboss.tools.docker.reddeer.ui.DockerImageHierarchyTab; import org.jboss.tools.docker.reddeer.ui.DockerImagesTab; import org.junit.After; import org.junit.Test; /** * * @author jkopriva@redhat.com * @cotributor adietish@redhat.com * */ public class HierarchyViewTest extends AbstractImageBotTest { private static final int DAEMON_MAJOR_VERSION = 11; private static final int DAEMON_MINOR_VERSION = 1; @Test public void testHierarchyView() { getConnection(); DockerImagesTab imageTab = openDockerImagesTab(); buildImage(IMAGE_TEST_BUILD, DOCKERFILE_FOLDER, imageTab); DockerImageHierarchyTab hierarchyTab = openDockerImageHierarchyTab(); List<TreeItem> treeItems = hierarchyTab.getTreeItems(); compareTextInFirstNode(treeItems, "alpine:3.3"); List<TreeItem> treeItems2 = treeItems.get(0).getItems(); compareTextInFirstNode(treeItems2, IMAGE_TEST_BUILD + NAME_TAG_SEPARATOR + IMAGE_TAG_LATEST); } public void compareTextInFirstNode(List<TreeItem> treeItems, String expectedValue) { String nodeText = treeItems.get(0).getText().replaceAll("\\(.*\\)", "").trim(); if (isDockerDaemon(DAEMON_MAJOR_VERSION, DAEMON_MINOR_VERSION)) { nodeText = nodeText.replaceAll("docker.io/", ""); //On older deamons is this prefix } assertTrue("Hierarchy view contains string: " + nodeText + ", but it is expected: " + expectedValue, nodeText.startsWith(expectedValue)); } private DockerImageHierarchyTab openDockerImageHierarchyTab() { getConnection().getImage(IMAGE_TEST_BUILD).openImageHierarchy(); new WaitWhile(new ShellWithTextIsAvailable("Docker Image Hierarchy")); DockerImageHierarchyTab hierarchyTab = new DockerImageHierarchyTab(); hierarchyTab.open(); return hierarchyTab; } @After public void after() { deleteImageContainerAfter(IMAGE_TEST_BUILD); cleanUpWorkspace(); } }