Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkopriva2017-07-27 11:47:43 +0000
committerJeff Johnston2017-07-31 16:51:12 +0000
commit8114a2385cc372a4b5b598f87eb96cf8a11c500c (patch)
tree51d060546c37e71405da606ccf18793cad768852
parent1e6ff760a1db6662a5687626313b4eaef7460ad4 (diff)
downloadorg.eclipse.linuxtools-8114a2385cc372a4b5b598f87eb96cf8a11c500c.tar.gz
org.eclipse.linuxtools-8114a2385cc372a4b5b598f87eb96cf8a11c500c.tar.xz
org.eclipse.linuxtools-8114a2385cc372a4b5b598f87eb96cf8a11c500c.zip
Bug 519932 - Implement new integration tests for Docker Tooling
Signed-off-by: jkopriva <jkopriva@redhat.com> Change-Id: I0f55a3ab4ab7796822126d3e8e49ca2e7253393f Reviewed-on: https://git.eclipse.org/r/102074 Tested-by: Hudson CI Reviewed-by: Jeff Johnston <jjohnstn@redhat.com>
-rw-r--r--containers/org.eclipse.linuxtools.docker.integration.tests/META-INF/MANIFEST.MF3
-rw-r--r--containers/org.eclipse.linuxtools.docker.integration.tests/launchers/DockerAllBotTest Local.launch117
-rw-r--r--containers/org.eclipse.linuxtools.docker.integration.tests/resources/test-edit-dockerfile/Dockerfile2
-rw-r--r--containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/DockerAllBotTest.java12
-rw-r--r--containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/container/ContainerLogTest.java126
-rw-r--r--containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/container/NetworkModeTest.java131
-rw-r--r--containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/image/AbstractImageBotTest.java2
-rw-r--r--containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/image/EditDockerFileTest.java87
-rw-r--r--containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/core/ui/wizards/ImageRunNetworkPage.java73
-rw-r--r--containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/core/ui/wizards/ImageRunResourceVolumesVariablesPage.java5
-rw-r--r--containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/ui/DockerTerminal.java2
-rw-r--r--containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/ui/EditDockerfile.java47
12 files changed, 602 insertions, 5 deletions
diff --git a/containers/org.eclipse.linuxtools.docker.integration.tests/META-INF/MANIFEST.MF b/containers/org.eclipse.linuxtools.docker.integration.tests/META-INF/MANIFEST.MF
index e72394b48c..b3d80d104a 100644
--- a/containers/org.eclipse.linuxtools.docker.integration.tests/META-INF/MANIFEST.MF
+++ b/containers/org.eclipse.linuxtools.docker.integration.tests/META-INF/MANIFEST.MF
@@ -24,7 +24,8 @@ Require-Bundle: org.junit,
org.mockito,
com.spotify.docker.client;bundle-version="3.6.8",
org.eclipse.linuxtools.docker.ui.tests,
- org.eclipse.ui.console
+ org.eclipse.ui.console,
+ org.eclipse.swt
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Import-Package: org.eclipse.debug.core,
diff --git a/containers/org.eclipse.linuxtools.docker.integration.tests/launchers/DockerAllBotTest Local.launch b/containers/org.eclipse.linuxtools.docker.integration.tests/launchers/DockerAllBotTest Local.launch
new file mode 100644
index 0000000000..f77586c8c9
--- /dev/null
+++ b/containers/org.eclipse.linuxtools.docker.integration.tests/launchers/DockerAllBotTest Local.launch
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.jboss.reddeer.eclipse.ui.launcher.JunitLaunchConfig">
+<setAttribute key="additional_plugins">
+<setEntry value="com.spotify.docker.client:6.1.1.v20170301-1624:default:true"/>
+<setEntry value="org.apache.httpcomponents.httpclient:4.5.2.v20170210-0925:default:true"/>
+<setEntry value="org.apache.httpcomponents.httpcore:4.4.6.v20170210-0925:default:true"/>
+<setEntry value="org.eclipse.linuxtools.docker.core:3.1.0.qualifier:default:true"/>
+<setEntry value="org.eclipse.linuxtools.docker.editor:1.0.0.qualifier:default:true"/>
+<setEntry value="org.eclipse.linuxtools.docker.integration.tests:1.0.0.qualifier:default:true"/>
+<setEntry value="org.eclipse.linuxtools.docker.reddeer:1.0.0.qualifier:default:true"/>
+<setEntry value="org.eclipse.linuxtools.docker.tests.hamcrest-wrap:1.2.0.qualifier:default:true"/>
+<setEntry value="org.eclipse.linuxtools.docker.ui.tests:2.1.0.qualifier:default:true"/>
+<setEntry value="org.eclipse.linuxtools.docker.ui:3.1.0.qualifier:default:true"/>
+<setEntry value="org.slf4j.api:1.7.2.v20121108-1250:default:true"/>
+</setAttribute>
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="true"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/DockerAllBotTest.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<mapAttribute key="org.eclipse.debug.core.environmentVariables">
+<mapEntry key="DISPLAY" value=":2"/>
+</mapAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.linuxtools.docker.integration.tests.DockerAllBotTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -consolelog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.linuxtools.docker.integration.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-DdockerMockito=false -DunixSocket=unix:///var/run/docker.sock -Dusage_reporting_enabled=false -DdockerHubUsername=test -DdockerHubEmail=test@test.com -DdockerHubPassword=password -DdockerComposePath=//testpath"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<stringAttribute key="rd.launch.property.rd.captureScreenshot" value="true"/>
+<stringAttribute key="rd.launch.property.rd.closeShells" value="true"/>
+<stringAttribute key="rd.launch.property.rd.closeWelcomeScreen" value="true"/>
+<stringAttribute key="rd.launch.property.rd.disableMavenIndex" value="true"/>
+<stringAttribute key="rd.launch.property.rd.logCollectorEnabled" value="true"/>
+<stringAttribute key="rd.launch.property.rd.logLevel" value="ALL"/>
+<stringAttribute key="rd.launch.property.rd.logMessageFilter" value="ALL"/>
+<stringAttribute key="rd.launch.property.rd.openAssociatedPerspective" value="never"/>
+<stringAttribute key="rd.launch.property.rd.pauseFailedTest" value="false"/>
+<stringAttribute key="rd.launch.property.rd.timePeriodFactor" value="1.0"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.cdt.autotools:default"/>
+<setEntry value="org.eclipse.cdt.gdb:default"/>
+<setEntry value="org.eclipse.cdt.gnu.build:default"/>
+<setEntry value="org.eclipse.cdt.gnu.debug:default"/>
+<setEntry value="org.eclipse.cdt.gnu.dsf:default"/>
+<setEntry value="org.eclipse.cdt.native:default"/>
+<setEntry value="org.eclipse.cdt.platform:default"/>
+<setEntry value="org.eclipse.cdt:default"/>
+<setEntry value="org.eclipse.draw2d:default"/>
+<setEntry value="org.eclipse.e4.rcp:default"/>
+<setEntry value="org.eclipse.ecf.core.feature:default"/>
+<setEntry value="org.eclipse.ecf.core.ssl.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.httpclient4.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature:default"/>
+<setEntry value="org.eclipse.ecf.filetransfer.ssl.feature:default"/>
+<setEntry value="org.eclipse.emf.common:default"/>
+<setEntry value="org.eclipse.emf.ecore:default"/>
+<setEntry value="org.eclipse.equinox.p2.core.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
+<setEntry value="org.eclipse.help:default"/>
+<setEntry value="org.eclipse.jgit:default"/>
+<setEntry value="org.eclipse.launchbar:default"/>
+<setEntry value="org.eclipse.license:default"/>
+<setEntry value="org.eclipse.linuxtools.docker.feature:default"/>
+<setEntry value="org.eclipse.platform:default"/>
+<setEntry value="org.eclipse.ptp.rdt.sync:default"/>
+<setEntry value="org.eclipse.rcp:default"/>
+<setEntry value="org.eclipse.remote:default"/>
+<setEntry value="org.eclipse.swtbot.eclipse:default"/>
+<setEntry value="org.eclipse.swtbot.forms:default"/>
+<setEntry value="org.eclipse.swtbot:default"/>
+<setEntry value="org.eclipse.tm.terminal.connector.local.feature:default"/>
+<setEntry value="org.eclipse.tm.terminal.connector.ssh.feature:default"/>
+<setEntry value="org.eclipse.tm.terminal.connector.telnet.feature:default"/>
+<setEntry value="org.eclipse.tm.terminal.control.feature:default"/>
+<setEntry value="org.eclipse.tm.terminal.feature:default"/>
+<setEntry value="org.eclipse.tm.terminal.view.feature:default"/>
+<setEntry value="org.eclipse.zest:default"/>
+<setEntry value="org.jboss.reddeer.eclipse.feature:default"/>
+<setEntry value="org.jboss.reddeer.junit.extension.feature:default"/>
+<setEntry value="org.jboss.reddeer.ui.feature:default"/>
+</setAttribute>
+<stringAttribute key="selected_target_plugins" value="com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-guava@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.github.jnr.constants@default:default,com.github.jnr.enxio@default:default,com.github.jnr.ffi@default:default,com.github.jnr.jffi.native@default:false,com.github.jnr.jffi@default:default,com.github.jnr.posix@default:default,com.github.jnr.unixsocket@default:default,com.google.gson@default:default,com.google.guava@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.spotify.docker.client@default:true,com.sun.el@default:default,javaewah@default:default,javassist@default:default,javax.annotation@default:default,javax.el@default:default,javax.inject@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.ws.rs@default:default,javax.xml@default:default,jnr.x86asm@default:default,org.aopalliance@default:default,org.apache.ant@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.compress@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.lang3.source@default:default,org.apache.commons.lang3@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient*4.3.6.v201511171540@default:default,org.apache.httpcomponents.httpclient*4.5.2.v20161115-1643@default:default,org.apache.httpcomponents.httpcore*4.3.3.v201411290715@default:default,org.apache.httpcomponents.httpcore*4.4.4.v20161115-1643@default:default,org.apache.jasper.glassfish@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.assertj@default:default,org.bouncycastle.bcpkix@default:default,org.bouncycastle.bcprov@default:default,org.cyberneko.html@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.cdt.autotools.core@default:default,org.eclipse.cdt.autotools.docs@default:default,org.eclipse.cdt.autotools.ui@default:default,org.eclipse.cdt.build.gcc.core@default:default,org.eclipse.cdt.codan.checkers.ui@default:default,org.eclipse.cdt.codan.checkers@default:default,org.eclipse.cdt.codan.core.cxx@default:default,org.eclipse.cdt.codan.core@default:default,org.eclipse.cdt.codan.ui.cxx@default:default,org.eclipse.cdt.codan.ui@default:default,org.eclipse.cdt.core.linux.x86_64@default:false,org.eclipse.cdt.core.linux@default:false,org.eclipse.cdt.core.native@default:default,org.eclipse.cdt.core@default:default,org.eclipse.cdt.debug.core@default:default,org.eclipse.cdt.debug.ui@default:default,org.eclipse.cdt.doc.user@default:default,org.eclipse.cdt.dsf.gdb.ui@default:default,org.eclipse.cdt.dsf.gdb@default:default,org.eclipse.cdt.dsf.ui@default:default,org.eclipse.cdt.dsf@default:default,org.eclipse.cdt.gdb.ui@default:default,org.eclipse.cdt.gdb@default:default,org.eclipse.cdt.launch@default:default,org.eclipse.cdt.make.core@default:default,org.eclipse.cdt.make.ui@default:default,org.eclipse.cdt.managedbuilder.core@default:default,org.eclipse.cdt.managedbuilder.gnu.ui@default:default,org.eclipse.cdt.managedbuilder.ui@default:default,org.eclipse.cdt.native.serial@default:default,org.eclipse.cdt.remote.core@default:default,org.eclipse.cdt.ui@default:default,org.eclipse.cdt@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d@default:default,org.eclipse.dstore.core@default:default,org.eclipse.dstore.extra@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.dialogs@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.gtk.linux.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.gef@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit.archive@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.launchbar.core@default:default,org.eclipse.launchbar.ui.controls@default:default,org.eclipse.launchbar.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ui@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.ptp.rdt.sync.core@default:default,org.eclipse.ptp.rdt.sync.git.core@default:default,org.eclipse.ptp.rdt.sync.git.ui@default:default,org.eclipse.ptp.rdt.sync.ui@default:default,org.eclipse.rcp@default:default,org.eclipse.remote.console@default:default,org.eclipse.remote.core@default:default,org.eclipse.remote.doc.isv@default:default,org.eclipse.remote.jsch.core@default:default,org.eclipse.remote.jsch.ui@default:default,org.eclipse.remote.serial.core@default:default,org.eclipse.remote.serial.ui@default:default,org.eclipse.remote.telnet.core@default:default,org.eclipse.remote.telnet.ui@default:default,org.eclipse.remote.ui@default:default,org.eclipse.search@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.e4.finder@default:default,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.tm.terminal.connector.local@default:default,org.eclipse.tm.terminal.connector.process@default:default,org.eclipse.tm.terminal.connector.serial@default:default,org.eclipse.tm.terminal.connector.ssh@default:default,org.eclipse.tm.terminal.connector.telnet@default:default,org.eclipse.tm.terminal.control@default:default,org.eclipse.tm.terminal.view.core@default:default,org.eclipse.tm.terminal.view.ui@default:default,org.eclipse.tools.templates.core@default:default,org.eclipse.tools.templates.ui@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.quicklinks@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.monitoring@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.themes@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.wb.core.lib@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.wst.internet.monitor.core@default:default,org.eclipse.wst.server.core@default:default,org.eclipse.wst.server.discovery@default:default,org.eclipse.wst.server.ui@default:default,org.eclipse.zest.core@default:default,org.eclipse.zest.layouts@default:default,org.glassfish.hk2.api@default:default,org.glassfish.hk2.locator@default:default,org.glassfish.hk2.osgi-resource-locator@default:default,org.glassfish.hk2.utils@default:default,org.glassfish.jersey.apache.connector@default:default,org.glassfish.jersey.bundles.repackaged.jersey-guava@default:default,org.glassfish.jersey.core.jersey-client@default:default,org.glassfish.jersey.core.jersey-common@default:default,org.glassfish.jersey.core.jersey-server@default:default,org.glassfish.jersey.ext.entityfiltering@default:default,org.glassfish.jersey.media.jersey-media-json-jackson@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.jboss.reddeer.common@default:default,org.jboss.reddeer.core@default:default,org.jboss.reddeer.direct@default:default,org.jboss.reddeer.eclipse@default:default,org.jboss.reddeer.gef@default:default,org.jboss.reddeer.go@default:default,org.jboss.reddeer.jface@default:default,org.jboss.reddeer.junit.extension@default:default,org.jboss.reddeer.junit@default:default,org.jboss.reddeer.requirements@default:default,org.jboss.reddeer.swt@default:default,org.jboss.reddeer.ui@default:default,org.jboss.reddeer.uiforms@default:default,org.jboss.reddeer.workbench@default:default,org.junit@default:default,org.mockito@default:default,org.objectweb.asm.analysis@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm.util@default:default,org.objectweb.asm@default:default,org.objenesis@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api*1.7.10.v20160921-1923@default:default,org.slf4j.api*1.7.2.v20121108-1250@default:default,org.slf4j.impl.log4j12@default:false,org.swtchart@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.linuxtools.docker.core@default:default,org.eclipse.linuxtools.docker.docs@default:default,org.eclipse.linuxtools.docker.editor@default:default,org.eclipse.linuxtools.docker.integration.tests@default:default,org.eclipse.linuxtools.docker.reddeer@default:default,org.eclipse.linuxtools.docker.tests.hamcrest-wrap@default:default,org.eclipse.linuxtools.docker.ui.tests@default:default,org.eclipse.linuxtools.docker.ui@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/containers/org.eclipse.linuxtools.docker.integration.tests/resources/test-edit-dockerfile/Dockerfile b/containers/org.eclipse.linuxtools.docker.integration.tests/resources/test-edit-dockerfile/Dockerfile
new file mode 100644
index 0000000000..b07aea8c4f
--- /dev/null
+++ b/containers/org.eclipse.linuxtools.docker.integration.tests/resources/test-edit-dockerfile/Dockerfile
@@ -0,0 +1,2 @@
+FROM alpine:latest
+MAINTAINER Josef Kopriva <jkopriva@redhat.com> \ No newline at end of file
diff --git a/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/DockerAllBotTest.java b/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/DockerAllBotTest.java
index e88ee659a8..e01bb083f6 100644
--- a/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/DockerAllBotTest.java
+++ b/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/DockerAllBotTest.java
@@ -12,18 +12,20 @@
package org.eclipse.linuxtools.docker.integration.tests;
-import org.jboss.reddeer.junit.runner.RedDeerSuite;
import org.eclipse.linuxtools.docker.integration.tests.connection.AddConnectionTest;
+import org.eclipse.linuxtools.docker.integration.tests.container.ContainerLogTest;
import org.eclipse.linuxtools.docker.integration.tests.container.DockerContainerTest;
import org.eclipse.linuxtools.docker.integration.tests.container.ExposePortTest;
import org.eclipse.linuxtools.docker.integration.tests.container.LabelsTest;
import org.eclipse.linuxtools.docker.integration.tests.container.LinkContainersTest;
+import org.eclipse.linuxtools.docker.integration.tests.container.NetworkModeTest;
import org.eclipse.linuxtools.docker.integration.tests.container.PrivilegedModeTest;
import org.eclipse.linuxtools.docker.integration.tests.container.UnconfinedTest;
import org.eclipse.linuxtools.docker.integration.tests.container.VariablesTest;
import org.eclipse.linuxtools.docker.integration.tests.container.VolumeMountTest;
import org.eclipse.linuxtools.docker.integration.tests.image.BuildImageTest;
import org.eclipse.linuxtools.docker.integration.tests.image.DeleteImagesAfter;
+import org.eclipse.linuxtools.docker.integration.tests.image.EditDockerFileTest;
import org.eclipse.linuxtools.docker.integration.tests.image.HierarchyViewTest;
import org.eclipse.linuxtools.docker.integration.tests.image.ImageTagTest;
import org.eclipse.linuxtools.docker.integration.tests.image.PullImageTest;
@@ -31,11 +33,12 @@ import org.eclipse.linuxtools.docker.integration.tests.image.PushImageTest;
import org.eclipse.linuxtools.docker.integration.tests.ui.ComposeTest;
import org.eclipse.linuxtools.docker.integration.tests.ui.ContainerTabTest;
import org.eclipse.linuxtools.docker.integration.tests.ui.DifferentRegistryTest;
+import org.eclipse.linuxtools.docker.integration.tests.ui.ImageTabTest;
+import org.eclipse.linuxtools.docker.integration.tests.ui.LaunchDockerImageTest;
import org.eclipse.linuxtools.docker.integration.tests.ui.PerspectiveTest;
import org.eclipse.linuxtools.docker.integration.tests.ui.PropertiesViewTest;
import org.eclipse.linuxtools.docker.integration.tests.ui.SearchDialogTest;
-import org.eclipse.linuxtools.docker.integration.tests.ui.ImageTabTest;
-import org.eclipse.linuxtools.docker.integration.tests.ui.LaunchDockerImageTest;
+import org.jboss.reddeer.junit.runner.RedDeerSuite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@@ -70,6 +73,9 @@ import org.junit.runners.Suite;
PushImageTest.class,
LaunchDockerImageTest.class,
ComposeTest.class,
+ ContainerLogTest.class,
+ NetworkModeTest.class,
+ EditDockerFileTest.class,
DeleteImagesAfter.class
})
diff --git a/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/container/ContainerLogTest.java b/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/container/ContainerLogTest.java
new file mode 100644
index 0000000000..5257b7a403
--- /dev/null
+++ b/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/container/ContainerLogTest.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * 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 static org.junit.Assert.assertTrue;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.linuxtools.docker.integration.tests.image.AbstractImageBotTest;
+import org.eclipse.linuxtools.docker.integration.tests.mock.MockDockerConnectionManager;
+import org.eclipse.linuxtools.docker.integration.tests.mock.MockUtils;
+import org.eclipse.linuxtools.docker.reddeer.condition.ContainerIsDeployedCondition;
+import org.eclipse.linuxtools.docker.reddeer.core.ui.wizards.ImageRunSelectionPage;
+import org.eclipse.linuxtools.docker.reddeer.ui.DockerTerminal;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockContainerFactory;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockContainerInfoFactory;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerClientFactory;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerConnectionFactory;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockImageFactory;
+import org.jboss.reddeer.common.wait.TimePeriod;
+import org.jboss.reddeer.common.wait.WaitUntil;
+import org.jboss.reddeer.common.wait.WaitWhile;
+import org.jboss.reddeer.core.condition.JobIsRunning;
+import org.jboss.reddeer.eclipse.ui.console.ConsoleView;
+import org.jboss.reddeer.swt.api.CTabItem;
+import org.jboss.reddeer.swt.impl.menu.ContextMenu;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.spotify.docker.client.DockerClient;
+
+/**
+ *
+ * @author jkopriva@redhat.com
+ *
+ */
+
+public class ContainerLogTest extends AbstractImageBotTest {
+
+ private static final String IMAGE_NAME = "docker.io/" + IMAGE_HELLO_WORLD;
+ private static final String CONTAINER_NAME = "test_run";
+ private static final String CONSOLE_TEXT = "test_run Console output";
+
+ @Before
+ public void before() {
+ deleteAllConnections();
+ getConnection();
+ pullImage(IMAGE_NAME);
+ new WaitWhile(new JobIsRunning());
+ getConnection().refresh();
+ getConnection().getImage(IMAGE_NAME).run();
+ ImageRunSelectionPage firstPage = new ImageRunSelectionPage();
+ firstPage.setContainerName(CONTAINER_NAME);
+ firstPage.setAllocatePseudoTTY();
+ firstPage.setKeepSTDINOpen();
+ firstPage.finish();
+ if (mockitoIsUsed()) {
+ runContainer();
+ getConnection().refresh();
+ new WaitUntil(new ContainerIsDeployedCondition(CONTAINER_NAME, getConnection()));
+ }
+ new WaitWhile(new JobIsRunning(), TimePeriod.NORMAL);
+ }
+
+ @Test
+ public void testDislayLog() {
+ getConnection().getContainer(CONTAINER_NAME).select();
+ String consoleText = getContainerLog();
+ assertTrue("Log for container:" + CONTAINER_NAME + " is empty!", StringUtils.isNotEmpty(consoleText));
+ }
+
+ @After
+ public void after() {
+ deleteImageContainerAfter(CONTAINER_NAME);
+ deleteImageContainerAfter(IMAGE_NAME);
+ cleanDockerTerminal();
+ }
+
+ private void runContainer() {
+ final DockerClient client = MockDockerClientFactory
+ .container(MockContainerFactory.name(CONTAINER_NAME).status("Stopped").build(),
+ MockContainerInfoFactory.link(IMAGE_NAME + ":" + IMAGE_TAG_LATEST).id("TestTestTestTestTest")
+ .ipAddress("127.0.0.1").build())
+ .image(MockImageFactory.id("987654321abcde").name(IMAGE_UHTTPD + ":" + IMAGE_TAG_LATEST).build())
+ .build();
+ final org.eclipse.linuxtools.internal.docker.core.DockerConnection dockerConnection = MockDockerConnectionFactory
+ .from(DEFAULT_CONNECTION_NAME, client).withDefaultTCPConnectionSettings();
+ MockDockerConnectionManager.configureConnectionManager(dockerConnection);
+ }
+
+ private String getContainerLog() {
+ new ContextMenu("Display Log").select();
+ String consoleText;
+ if (mockitoIsUsed()) {
+ ConsoleView consoleView = new ConsoleView();
+ consoleView.open();
+ consoleView = MockUtils.getConsoleViewText(CONSOLE_TEXT);
+ consoleText = consoleView.getConsoleText();
+ } else {
+ DockerTerminal dockerTerminal = new DockerTerminal();
+ dockerTerminal.activate();
+ consoleText = dockerTerminal.getTextFromPage(CONTAINER_NAME);
+ }
+ return consoleText;
+ }
+
+ private void cleanDockerTerminal () {
+ if (!mockitoIsUsed()) {
+ DockerTerminal dockerTerminal = new DockerTerminal();
+ dockerTerminal.activate();
+ CTabItem tabItem = dockerTerminal.getPage(CONTAINER_NAME);
+ tabItem.close();
+ dockerTerminal.close();
+ }
+ }
+
+} \ No newline at end of file
diff --git a/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/container/NetworkModeTest.java b/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/container/NetworkModeTest.java
new file mode 100644
index 0000000000..5991268e68
--- /dev/null
+++ b/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/container/NetworkModeTest.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * 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 static org.junit.Assert.assertTrue;
+
+import org.eclipse.linuxtools.docker.integration.tests.image.AbstractImageBotTest;
+import org.eclipse.linuxtools.docker.integration.tests.mock.MockDockerConnectionManager;
+import org.eclipse.linuxtools.docker.reddeer.condition.ContainerIsDeployedCondition;
+import org.eclipse.linuxtools.docker.reddeer.core.ui.wizards.ImageRunNetworkPage;
+import org.eclipse.linuxtools.docker.reddeer.core.ui.wizards.ImageRunResourceVolumesVariablesPage;
+import org.eclipse.linuxtools.docker.reddeer.core.ui.wizards.ImageRunSelectionPage;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockContainerFactory;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockContainerInfoFactory;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerClientFactory;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerConnectionFactory;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockImageFactory;
+import org.jboss.reddeer.common.wait.WaitUntil;
+import org.jboss.reddeer.common.wait.WaitWhile;
+import org.jboss.reddeer.core.condition.JobIsRunning;
+import org.jboss.reddeer.eclipse.ui.views.properties.PropertiesView;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.spotify.docker.client.DockerClient;
+import com.spotify.docker.client.exceptions.DockerException;
+
+/**
+ *
+ * @author jkopriva@redhat.com
+ *
+ */
+public class NetworkModeTest extends AbstractImageBotTest {
+
+ private static final String IMAGE_NAME = "docker.io/" + IMAGE_BUSYBOX;
+ private static final String IMAGE_TAG = IMAGE_TAG_LATEST;
+ private static final String CONTAINER_NAME = "test_run_busybox";
+ private static final String NETWORK_MODE_DEFAULT = "default";
+ private static final String NETWORK_MODE_BRIDGE = "bridge";
+ private static final String NETWORK_MODE_HOST = "host";
+ private static final String NETWORK_MODE_NONE = "none";
+ private static final String NETWORK_MODE_CONTAINER = "container";
+ private static final String NETWORK_MODE_OTHER = "other";
+
+ @Before
+ public void before() throws DockerException, InterruptedException {
+ deleteAllConnections();
+ getConnection();
+ pullImage(IMAGE_NAME, IMAGE_TAG);
+ new WaitWhile(new JobIsRunning());
+ getConnection().getImage(IMAGE_NAME).run();
+ ImageRunSelectionPage firstPage = new ImageRunSelectionPage();
+ firstPage.setContainerName(CONTAINER_NAME);
+ firstPage.setAllocatePseudoTTY();
+ firstPage.setKeepSTDINOpen();
+ firstPage.next();
+ ImageRunResourceVolumesVariablesPage variablesPage = new ImageRunResourceVolumesVariablesPage();
+ variablesPage.next();
+ }
+
+ @Test
+ public void testDefaultMode() {
+ ImageRunNetworkPage networkPage = new ImageRunNetworkPage();
+ networkPage.setDefaultNetworkMode();
+ networkPage.finish();
+ checkNetworkMode(NETWORK_MODE_DEFAULT);
+ }
+
+ @Test
+ public void testBridgeMode() {
+ ImageRunNetworkPage networkPage = new ImageRunNetworkPage();
+ networkPage.setBridgeNetworkMode();
+ networkPage.finish();
+ checkNetworkMode(NETWORK_MODE_BRIDGE);
+ }
+
+ @Test
+ public void testHostMode() {
+ ImageRunNetworkPage networkPage = new ImageRunNetworkPage();
+ networkPage.setHostNetworkMode();
+ networkPage.finish();
+ checkNetworkMode(NETWORK_MODE_HOST);
+ }
+
+ @Test
+ public void testNoneMode() {
+ ImageRunNetworkPage networkPage = new ImageRunNetworkPage();
+ networkPage.setNoneNetworkMode();
+ networkPage.finish();
+ checkNetworkMode(NETWORK_MODE_NONE);
+ }
+
+ @After
+ public void after() {
+ deleteContainerIfExists(CONTAINER_NAME);
+ }
+
+ private void runContainer(String networkMode) {
+ final DockerClient client = MockDockerClientFactory
+ .container(MockContainerFactory.name(CONTAINER_NAME).status("Stopped").build(),
+ MockContainerInfoFactory.link(IMAGE_NAME + ":" + IMAGE_TAG_LATEST).networkMode(networkMode)
+ .id("TestTestTestTestTest").ipAddress("127.0.0.1").build())
+ .image(MockImageFactory.id("987654321abcde").name(IMAGE_UHTTPD + ":" + IMAGE_TAG_LATEST).build())
+ .build();
+ final org.eclipse.linuxtools.internal.docker.core.DockerConnection dockerConnection = MockDockerConnectionFactory
+ .from(DEFAULT_CONNECTION_NAME, client).withDefaultTCPConnectionSettings();
+ MockDockerConnectionManager.configureConnectionManager(dockerConnection);
+ }
+
+ private void checkNetworkMode(String networkMode) {
+ if (mockitoIsUsed()) {
+ runContainer(networkMode);
+ getConnection().refresh();
+ new WaitUntil(new ContainerIsDeployedCondition(CONTAINER_NAME, getConnection()));
+ }
+ new WaitWhile(new JobIsRunning());
+ PropertiesView propertiesView = openPropertiesTabForContainer("Inspect", CONTAINER_NAME);
+ String networkProp = propertiesView.getProperty("HostConfig", "NetworkMode").getPropertyValue();
+ assertTrue("Container is not running in " + networkMode + " network mode!", networkProp.equals(networkMode));
+ }
+} \ No newline at end of file
diff --git a/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/image/AbstractImageBotTest.java b/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/image/AbstractImageBotTest.java
index 8649463d40..46ce1a604d 100644
--- a/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/image/AbstractImageBotTest.java
+++ b/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/image/AbstractImageBotTest.java
@@ -68,6 +68,8 @@ public class AbstractImageBotTest extends AbstractDockerBotTest {
protected static final String IMAGE_RHEL = "rhel7.2";
protected static final String DOCKERFILE_FOLDER = "resources/test-build";
+
+ protected static final String EDIT_DOCKERFILE_FOLDER = "resources/test-edit-dockerfile";
protected static final String REGISTRY_URL = "https://index.docker.io";
diff --git a/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/image/EditDockerFileTest.java b/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/image/EditDockerFileTest.java
new file mode 100644
index 0000000000..4d52920a7d
--- /dev/null
+++ b/containers/org.eclipse.linuxtools.docker.integration.tests/src/org/eclipse/linuxtools/docker/integration/tests/image/EditDockerFileTest.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * 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.image;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.linuxtools.docker.reddeer.ui.DockerImagesTab;
+import org.eclipse.swt.SWT;
+import org.jboss.reddeer.common.wait.TimePeriod;
+import org.jboss.reddeer.common.wait.WaitUntil;
+import org.jboss.reddeer.common.wait.WaitWhile;
+import org.jboss.reddeer.core.condition.JobIsRunning;
+import org.jboss.reddeer.core.condition.ShellWithTextIsAvailable;
+import org.jboss.reddeer.swt.api.CTabFolder;
+import org.jboss.reddeer.swt.api.CTabItem;
+import org.jboss.reddeer.swt.impl.button.FinishButton;
+import org.jboss.reddeer.swt.impl.button.PushButton;
+import org.jboss.reddeer.swt.impl.ctab.DefaultCTabFolder;
+import org.jboss.reddeer.swt.impl.shell.DefaultShell;
+import org.jboss.reddeer.swt.impl.styledtext.DefaultStyledText;
+import org.jboss.reddeer.swt.impl.text.LabeledText;
+import org.jboss.reddeer.swt.impl.toolbar.DefaultToolItem;
+import org.jboss.reddeer.swt.keyboard.KeyboardFactory;
+import org.junit.After;
+import org.junit.Test;
+
+/**
+ *
+ * @author jkopriva@redhat.com
+ *
+ */
+
+public class EditDockerFileTest extends AbstractImageBotTest {
+ protected static final String IMAGE_NAME = "test-edit-dockerfile";
+ private static final String BUILD_IMAGE = "FROM alpine:latest\nMAINTAINER Josef Kopriva <jkopriva@redhat.com>";
+
+ @Test
+ public void testEditDockerFile() {
+ getConnection();
+ DockerImagesTab imageTab = openDockerImagesTab();
+
+ try {
+ String dockerFilePath = new File(EDIT_DOCKERFILE_FOLDER).getCanonicalPath();
+ getConnection();
+ imageTab.activate();
+ new DefaultToolItem("Build Image").click();
+ new WaitUntil(new ShellWithTextIsAvailable(""));
+ new LabeledText("Image Name:").setText(IMAGE_NAME);
+ new LabeledText("Directory:").setText(dockerFilePath);
+ new PushButton("Edit Dockerfile").click();
+ DefaultStyledText defaultStyledText = new DefaultStyledText();
+ String editorText = defaultStyledText.getText();
+ assertTrue("Editor is empty!", StringUtils.isNotEmpty(editorText));
+ defaultStyledText.setText(BUILD_IMAGE);
+ CTabFolder tabFolder = new DefaultCTabFolder();
+ CTabItem tabItem = tabFolder.getSelection();
+ KeyboardFactory.getKeyboard().invokeKeyCombination(SWT.CTRL,'S');
+ tabItem.close();
+ new WaitUntil(new ShellWithTextIsAvailable(""));
+ new DefaultShell("").setFocus();
+ new FinishButton().click();
+ new WaitWhile(new JobIsRunning(), TimePeriod.VERY_LONG);
+ } catch (IOException ex) {
+ fail("Resource file not found!");
+ }
+ }
+
+ @After
+ public void after() {
+ deleteImageContainer(IMAGE_NAME);
+ cleanUpWorkspace();
+ }
+
+} \ No newline at end of file
diff --git a/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/core/ui/wizards/ImageRunNetworkPage.java b/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/core/ui/wizards/ImageRunNetworkPage.java
new file mode 100644
index 0000000000..c4b2b1e1e7
--- /dev/null
+++ b/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/core/ui/wizards/ImageRunNetworkPage.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * 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.reddeer.core.ui.wizards;
+
+import org.jboss.reddeer.common.wait.TimePeriod;
+import org.jboss.reddeer.common.wait.WaitUntil;
+import org.jboss.reddeer.common.wait.WaitWhile;
+import org.jboss.reddeer.core.condition.JobIsRunning;
+import org.jboss.reddeer.core.condition.ShellWithTextIsAvailable;
+import org.jboss.reddeer.jface.wizard.WizardPage;
+import org.jboss.reddeer.swt.impl.button.FinishButton;
+import org.jboss.reddeer.swt.impl.button.RadioButton;
+import org.jboss.reddeer.swt.impl.combo.LabeledCombo;
+import org.jboss.reddeer.swt.impl.text.LabeledText;
+
+/**
+ *
+ * @author jkopriva@redhat.com
+ *
+ */
+
+public class ImageRunNetworkPage extends WizardPage {
+
+ public ImageRunNetworkPage() {
+ super();
+ new WaitUntil(new ShellWithTextIsAvailable("Run a Docker Image"), TimePeriod.LONG);
+ }
+
+ public void finish() {
+ if (new FinishButton().isEnabled()) {
+ new FinishButton().click();
+ new WaitWhile(new JobIsRunning(), TimePeriod.VERY_LONG);
+ } else {
+ throw new RuntimeException("Image cannot be run! (Duplicate name?)");
+ }
+ }
+
+ public void setDefaultNetworkMode() {
+ new RadioButton("Default").click();
+ }
+
+ public void setBridgeNetworkMode() {
+ new RadioButton("Bridge").click();
+ }
+
+ public void setHostNetworkMode() {
+ new RadioButton("Host").click();
+ }
+
+ public void setNoneNetworkMode() {
+ new RadioButton("None").click();
+ }
+
+ public void setContainerNetworkMode(String containerName) {
+ new RadioButton("Container:").click();
+ new LabeledCombo("").setText(containerName);
+ }
+
+ public void setOtherNetworkMode(String other) {
+ new RadioButton("Other").click();
+ new LabeledText("").setText(other);
+ }
+
+}
diff --git a/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/core/ui/wizards/ImageRunResourceVolumesVariablesPage.java b/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/core/ui/wizards/ImageRunResourceVolumesVariablesPage.java
index ec55be4bd2..79cc3ad6ec 100644
--- a/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/core/ui/wizards/ImageRunResourceVolumesVariablesPage.java
+++ b/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/core/ui/wizards/ImageRunResourceVolumesVariablesPage.java
@@ -18,6 +18,7 @@ import org.jboss.reddeer.core.matcher.WithTextMatcher;
import org.jboss.reddeer.jface.wizard.WizardPage;
import org.jboss.reddeer.swt.impl.button.CheckBox;
import org.jboss.reddeer.swt.impl.button.FinishButton;
+import org.jboss.reddeer.swt.impl.button.NextButton;
import org.jboss.reddeer.swt.impl.button.OkButton;
import org.jboss.reddeer.swt.impl.button.PushButton;
import org.jboss.reddeer.swt.impl.button.RadioButton;
@@ -40,6 +41,10 @@ public class ImageRunResourceVolumesVariablesPage extends WizardPage {
new FinishButton().click();
new WaitWhile(new JobIsRunning(), TimePeriod.VERY_LONG);
}
+
+ public void next() {
+ new NextButton().click();
+ }
public void addDataVolumeNoExternalMount(String containerPath) {
new PushButton(0, new WithTextMatcher("Add...")).click();
diff --git a/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/ui/DockerTerminal.java b/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/ui/DockerTerminal.java
index 77a8d29779..0dd172ad65 100644
--- a/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/ui/DockerTerminal.java
+++ b/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/ui/DockerTerminal.java
@@ -11,9 +11,9 @@
package org.eclipse.linuxtools.docker.reddeer.ui;
-import org.jboss.reddeer.swt.impl.ctab.DefaultCTabFolder;
import org.jboss.reddeer.swt.api.CTabFolder;
import org.jboss.reddeer.swt.api.CTabItem;
+import org.jboss.reddeer.swt.impl.ctab.DefaultCTabFolder;
/**
*
diff --git a/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/ui/EditDockerfile.java b/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/ui/EditDockerfile.java
new file mode 100644
index 0000000000..d428a51475
--- /dev/null
+++ b/containers/org.eclipse.linuxtools.docker.reddeer/src/org/eclipse/linuxtools/docker/reddeer/ui/EditDockerfile.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * 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.reddeer.ui;
+
+import org.jboss.reddeer.swt.impl.ctab.DefaultCTabFolder;
+import org.jboss.reddeer.swt.impl.styledtext.DefaultStyledText;
+import org.jboss.reddeer.core.reference.ReferencedComposite;
+import org.jboss.reddeer.swt.api.CTabFolder;
+import org.jboss.reddeer.swt.api.CTabItem;
+
+/**
+ *
+ * @author jkopriva@redhat.com
+ *
+ */
+
+public class EditDockerfile extends WorkbenchView {
+
+ public EditDockerfile() {
+ super("");
+ }
+
+ public CTabItem getPage(String pageLabel) {
+ CTabFolder tabFolder = new DefaultCTabFolder();
+ CTabItem tabItem = tabFolder.getSelection();
+ tabItem.activate();
+ return tabItem;
+ }
+
+ public String getTextFromPage(String tabName) {
+ return getPage(tabName).getText();
+ }
+
+ public void setTextOnPage(String tabName, String text) {
+ new DefaultStyledText((ReferencedComposite) getPage(tabName)).setText(text);
+ }
+
+}

Back to the top