Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- [ ] All [tests](https://github.com/jfrog/jfrog-eclipse-plugin/actions/workflows/tests.yml) passed. If this feature is not already covered by the tests, I added new tests.
-----
44 changes: 44 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Test

on:
push:
branches:
- '**'
tags-ignore:
- '**'
pull_request:
types: [labeled]

# Ensures that only the latest commit is running for each PR at a time.
# Ignores this rule for push events.
concurrency:
group: ${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]

steps:
- uses: actions/checkout@v4
with:
submodules: true
ref: ${{ github.event.pull_request.head.sha }}

- name: Unlabel 'safe to test'
uses: actions-ecosystem/action-remove-labels@v1
if: ${{ github.event_name != 'push' }}
with:
labels: "safe to test"

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"

- name: Run tests
run: mvn clean verify
5 changes: 3 additions & 2 deletions tests/.classpath
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/java"></classpathentry>
<classpathentry exported="true" kind="lib" path="lib/ide-plugins-common.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
8 changes: 4 additions & 4 deletions tests/.settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
7 changes: 4 additions & 3 deletions tests/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ Bundle-ManifestVersion: 2
Bundle-Name: XRay Plugin Tests
Bundle-SymbolicName: com.jfrog.ide.eclipse.tests;singleton:=true
Bundle-Version: 2.0.1
nEnvironment: JavaSE-1.8
Import-Package: org.apache.commons.io;version="2.2.0"
nEnvironment: JavaSE-17
Import-Package: org.apache.commons.io;version="2.2.0",
org.eclipse.swt.widgets
Automatic-Module-Name: org.jfrog.plugin.rcp
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ClassPath: .,
lib/ide-plugins-common.jar
Bundle-Vendor: JFrog
Expand Down
31 changes: 16 additions & 15 deletions tests/src/main/java/com/jfrog/ide/eclipse/scan/ScanManagerTest.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.jfrog.ide.eclipse.scan;

import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
Expand All @@ -12,37 +12,38 @@
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.jobs.JobChangeAdapter;

import com.jfrog.ide.eclipse.scheduling.ScanJob;
import com.jfrog.ide.eclipse.utils.Utils;
import com.jfrog.ide.eclipse.scheduling.CliJob;

import com.jfrog.ide.eclipse.utils.Utils;
import junit.framework.TestCase;

public class ScanManagerTest extends TestCase {
private ScanManager scanManager = ScanManager.getInstance();

// TODO: add integration test for scanning: Maven, Gradle and NPM projects.

public void testSchedulingAJob()
throws IOException, CoreException, OperationCanceledException, InterruptedException {
String projectName = "gradleIsApplicable";
JobListener jobListener = new JobListener();
IProject project = Utils.createProject(projectName, "gradle");
ScanManager scanManager = new GradleScanManager(project);
Job.getJobManager().addJobChangeListener(jobListener);
scanManager.scanAndUpdateResults(false, null, null, null);
Job.getJobManager().join(ScanJob.FAMILY, new NullProgressMonitor());
scanManager.scanAndUpdateResults(null, null, project, null);
Job.getJobManager().join(CliJob.FAMILY, new NullProgressMonitor());
assertJobInformation(projectName, jobListener);
cleanup(jobListener);
}

public void testScanFinished() throws IOException, CoreException, OperationCanceledException, InterruptedException {
ScanManagersFactory.getInstance().getScanInProgress().set(true);
scanManager.getScanInProgress().set(true);
String projectName = "gradleIsApplicable";
JobListener jobListener = new JobListener();
Job.getJobManager().addJobChangeListener(jobListener);
IProject project = Utils.createProject(projectName, "gradle");
ScanManager scanManager = new GradleScanManager(project);
scanManager.scanAndUpdateResults(false, null, null, null);
Job.getJobManager().join(ScanJob.FAMILY, new NullProgressMonitor());
scanManager.scanAndUpdateResults(null, null, project, null);
Job.getJobManager().join(CliJob.FAMILY, new NullProgressMonitor());
assertJobInformation(projectName, jobListener);
assertFalse(ScanManagersFactory.getInstance().getScanInProgress().get());
assertFalse(scanManager.getScanInProgress().get());
cleanup(jobListener);
}

Expand All @@ -54,7 +55,7 @@ private void cleanup(JobListener jobListener) {

private void assertJobInformation(String projectName, JobListener jobListener) {
assertTrue(jobListener.isJobExists());
assertEquals(projectName, jobListener.getJobName());
assertEquals("Performing Scan: " + projectName, jobListener.getJobName());
assertEquals(1, jobListener.numOfJobs());
}

Expand All @@ -63,18 +64,18 @@ static class JobListener extends JobChangeAdapter {
private static AtomicBoolean jobExists = new AtomicBoolean(false);
private String jobName;
private static AtomicInteger numOfJobs = new AtomicInteger();

@Override
public void scheduled(IJobChangeEvent event) {
if (event.getJob().belongsTo(ScanJob.FAMILY)) {
if (event.getJob().belongsTo(CliJob.FAMILY)) {
this.jobName = event.getJob().getName();
numOfJobs.incrementAndGet();
}
}

@Override
public void done(IJobChangeEvent event) {
if (event.getJob().belongsTo(ScanJob.FAMILY)) {
if (event.getJob().belongsTo(CliJob.FAMILY)) {
jobExists.set(true);
}
}
Expand Down
14 changes: 0 additions & 14 deletions tests/src/main/java/com/jfrog/ide/eclipse/utils/Utils.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package com.jfrog.ide.eclipse.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

import org.apache.commons.io.FileUtils;
import org.eclipse.core.resources.IProject;
Expand All @@ -18,8 +16,6 @@
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;

import com.jfrog.ide.eclipse.scan.GradleScanManager;

/**
* Utils class for testing
* @author alexeiv
Expand Down Expand Up @@ -60,16 +56,6 @@ public void run(IProgressMonitor monitor) throws CoreException {
return project;
}

/**
* Returns the gradle init script file location
*/
public static String getGradleInitScriptLocation(GradleScanManager gradleScanManager) throws IOException {
File currentDir = new File(System.getProperty("user.dir"));
File parentDir = currentDir.getParentFile();
File pathToGradleScriptFile = Paths.get(parentDir.getAbsolutePath(), "bundle", "src", "main", "resources", "gradle", GradleScanManager.GRADLE_INIT_SCRIPT).toFile();
return gradleScanManager.createGradleFile(new FileInputStream(pathToGradleScriptFile));
}

/**
* Returns the expected result content from the test resources.
* @param folderName - The folder name where the file located
Expand Down