diff options
author | jkopriva | 2017-07-27 11:47:43 +0000 |
---|---|---|
committer | Jeff Johnston | 2017-07-31 16:51:12 +0000 |
commit | 8114a2385cc372a4b5b598f87eb96cf8a11c500c (patch) | |
tree | 51d060546c37e71405da606ccf18793cad768852 | |
parent | 1e6ff760a1db6662a5687626313b4eaef7460ad4 (diff) | |
download | org.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>
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); + } + +} |