mirror of
https://github.com/processing/processing4.git
synced 2026-01-29 03:11:08 +01:00
Moves to Java11 and OpenJDK via AdoptOpenJDK within the processing4 train using a squash of sampottinger processing fork's java11 branch. **Primary required changes:** Some changes directly support OpenJFX / OpenJDK 11: - Response to image loading changes caused by [JEP 320](https://openjdk.java.net/jeps/320) - Use of jmodules as necessitated by [JEP 261](https://openjdk.java.net/jeps/261) - Reponse to largely changed file paths caused by [JEP 220](https://openjdk.java.net/jeps/220). - Modifications in build system related to AdoptOpenJDK and Java 11 which have a different naming structure for downloads. - Allowing use of non-Oracle Java within internal Processing checks. **Secondary required changes:** There were some secondary required changes that impacted the usability of Processing after having moved to OpenJFX / OpenJDK 11: - Removal of com.apple.eawt calls related to [JEP 272](http://openjdk.java.net/jeps/272) - Response to HiDPI support on Windows and Linux in [JEP 263](https://openjdk.java.net/jeps/263) - Removal of `java.ext.dirs`. Would be forced by [JEP 220](http://openjdk.java.net/jeps/220). - Due to bugs on Windows, updated the JNA jars. - Changes in downloader build tasks to support AdoptOpenJDK and OpenJFX. - Updated org.eclipse.* / equinox jars. - Some optimization around size of distribution. - Update of AppBundler. - Some changes in formulation of classpath and modifications in PreprocessingService given [JEP 261](https://openjdk.java.net/jeps/261). **Incidental changes:** This was (ahem) a bit of a larger PR with the above modifications. So, I wanted to introduce automated tests when possible and convenient along with a few changes for platform sustainability in order to support development: - Addition of cross-building capability (!) made possible by AdoptOpenJDK. - Addition of mockito for testing. - Upgrade of junit. - Addition of ant-contrib. - Standardized nomenclature around JRE / JDK in `build/build.xml` - Deduplication of code in `jre/build.xml`. - Addition of JavaDoc in a few places. - Some refactoring of PImage / Shape to support increased testing and readability in image manipulation code.
34 lines
1.0 KiB
Java
34 lines
1.0 KiB
Java
package processing.core;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
import processing.core.PApplet;
|
|
import processing.core.PImage;
|
|
|
|
import java.awt.*;
|
|
|
|
|
|
public class Base64StringImageLoadTest {
|
|
|
|
// Simple pattern to try loading. Would be part of SVG.
|
|
private static final String TEST_CONTENT = "data:image/svg;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAFCAMAAAC+RAbqAAAADFBMVEUAAAA0AP67u7v///+votL2AAAAGElEQVR4AWNgYAZBIIIAIJ8RyGGC8WHyAAYpAE9LN1znAAAAAElFTkSuQmCC";
|
|
|
|
@Test
|
|
public void testLoad() {
|
|
PImage results = PShape.parseBase64Image(TEST_CONTENT);
|
|
|
|
// Simply check a few sample pixels from the above pattern
|
|
Assert.assertEquals(7, results.pixelWidth);
|
|
Assert.assertEquals(5, results.pixelHeight);
|
|
Assert.assertEquals(7, results.width);
|
|
Assert.assertEquals(5, results.height);
|
|
|
|
int valueBlack = results.get(0, 0);
|
|
int valueBlue = results.get(2, 2);
|
|
|
|
Assert.assertEquals(Color.BLACK, new Color(valueBlack));
|
|
Assert.assertEquals(new Color(52, 0, 254), new Color(valueBlue));
|
|
}
|
|
|
|
}
|