From 8de4d31a5ae6d641636c72c1587da7eaa440ef08 Mon Sep 17 00:00:00 2001 From: Pavel Dolgov Date: Wed, 15 Feb 2017 14:46:28 +0300 Subject: [PATCH] Javafx: Added tests for JavaFxColorProvider - check that the color component is in the range (EA-96689) --- .../plugins/javaFX/JavaFxColorProviderTest.kt | 46 +++++++++++++++++++ .../javaFX/testData/colorProvider/Color.java | 16 +++++++ .../javaFX/testData/colorProvider/Color2.java | 17 +++++++ .../javaFX/testData/colorProvider/Hsb.java | 12 +++++ .../javaFX/testData/colorProvider/Hsb2.java | 12 +++++ .../javaFX/testData/colorProvider/Rgb.java | 16 +++++++ .../javaFX/testData/colorProvider/Rgb2.java | 16 +++++++ 7 files changed, 135 insertions(+) create mode 100644 plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxColorProviderTest.kt create mode 100644 plugins/javaFX/testData/colorProvider/Color.java create mode 100644 plugins/javaFX/testData/colorProvider/Color2.java create mode 100644 plugins/javaFX/testData/colorProvider/Hsb.java create mode 100644 plugins/javaFX/testData/colorProvider/Hsb2.java create mode 100644 plugins/javaFX/testData/colorProvider/Rgb.java create mode 100644 plugins/javaFX/testData/colorProvider/Rgb2.java diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxColorProviderTest.kt b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxColorProviderTest.kt new file mode 100644 index 000000000000..5eb3a128e9f5 --- /dev/null +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/JavaFxColorProviderTest.kt @@ -0,0 +1,46 @@ +package org.jetbrains.plugins.javaFX + +import com.intellij.openapi.application.PluginPathManager +import com.intellij.psi.PsiExpression +import com.intellij.psi.util.PsiTreeUtil +import org.jetbrains.plugins.javaFX.fxml.AbstractJavaFXTestCase +import org.jetbrains.plugins.javaFX.fxml.codeInsight.JavaFxColorProvider + +/** + * @author Pavel.Dolgov + */ + +class JavaFxColorProviderTest : AbstractJavaFXTestCase() { + override fun getTestDataPath() = PluginPathManager.getPluginHomePath("javaFX") + "/testData/colorProvider" + + fun testColor() = doTest() + fun testColor2() = doTest(false) + + fun testRgb() = doTest() + fun testRgb2() = doTest(false) + + fun testHsb() = doTest() + fun testHsb2() = doTest(false) + + + private fun doTest(isNotNull: Boolean = true) { + myFixture.configureByFile(getTestName(false) + ".java") + val carets = myFixture.editor.caretModel.allCarets + for (caret in carets) { + val element = myFixture.file.findElementAt(caret.offset) + assertNotNull("Element at caret:$caret", element) + + val expression = PsiTreeUtil.findFirstParent(element, { it?.parent !is PsiExpression }) as? PsiExpression + assertNotNull("Expression at caret:${element?.text}", expression) + + val type = expression?.type?.canonicalText + assertEquals("Expression type:${expression?.text}", "javafx.scene.paint.Color", type) + + val color = JavaFxColorProvider().getColorFrom(expression ?: return) + if (isNotNull) + assertNotNull("Color expected:${expression.text}", color) + else + assertNull("Color is not expected:${expression.text}", color) + } + } +} diff --git a/plugins/javaFX/testData/colorProvider/Color.java b/plugins/javaFX/testData/colorProvider/Color.java new file mode 100644 index 000000000000..037d384c3293 --- /dev/null +++ b/plugins/javaFX/testData/colorProvider/Color.java @@ -0,0 +1,16 @@ +import javafx.scene.paint.Color; +import static javafx.scene.paint.Color.*; + +public class Main { + void foo() { + Color color1 = new Color ( 0, 1, 0.5, 0.65); + Color color2 = Color.color( 1L, 0, 1 ); + Color color3 = color (0.8, .3d, 0, 1); + Color color4 = color ( 1, 0.6, 0.5f, 0); + + Color gray1 = Color.gray( 0.5 ); + Color gray2 = Color.gray( 0L, 0.8); + Color gray3 = gray ( 1d, 0); + Color gray4 = gray (0.7f, 1); + } +} \ No newline at end of file diff --git a/plugins/javaFX/testData/colorProvider/Color2.java b/plugins/javaFX/testData/colorProvider/Color2.java new file mode 100644 index 000000000000..1d23869c5774 --- /dev/null +++ b/plugins/javaFX/testData/colorProvider/Color2.java @@ -0,0 +1,17 @@ +import javafx.scene.paint.Color; +import static javafx.scene.paint.Color.*; + +public class Main { + void foo() { + Color color1 = new Color (null, 1, 0.5, 0.65); + Color color2 = Color.color( 1L,-.01, 1 ); + Color color3 = color (0.8, .3d, 1.01, 1); + Color color4 = color ( 1, 0.6, 0.5f, "s"); + + Color gray1 = Color.gray(int.class); + Color gray2 = Color.gray( -1, 0.8); + Color gray3 = gray ( 2, 0); + Color gray4 = gray (0.7f, -1); + Color gray5 = gray (0.7f, 2); + } +} \ No newline at end of file diff --git a/plugins/javaFX/testData/colorProvider/Hsb.java b/plugins/javaFX/testData/colorProvider/Hsb.java new file mode 100644 index 000000000000..2be2fd2bed76 --- /dev/null +++ b/plugins/javaFX/testData/colorProvider/Hsb.java @@ -0,0 +1,12 @@ +import javafx.scene.paint.Color; +import static javafx.scene.paint.Color.*; + +public class Main { + void foo() { + Color hsb1 = Color.hsb( 0, 1, 0.8); + Color hsb2 = hsb( 0xF, 0, 1, .1/2); + Color hsb3 = Color.hsb(-9.9, 0.6, 0, 1); + Color hsb4 = hsb( 1, .2f, .6, 0); + Color hsb5 = hsb(50*5, 0d, 0.3, 0.95); + } +} \ No newline at end of file diff --git a/plugins/javaFX/testData/colorProvider/Hsb2.java b/plugins/javaFX/testData/colorProvider/Hsb2.java new file mode 100644 index 000000000000..6d6d6f196d8f --- /dev/null +++ b/plugins/javaFX/testData/colorProvider/Hsb2.java @@ -0,0 +1,12 @@ +import javafx.scene.paint.Color; +import static javafx.scene.paint.Color.*; + +public class Main { + void foo() { + Color hsb1 = Color.hsb(null, 1, 0.8); + Color hsb2 = hsb( 0xF, 15, 1, .1/2); + Color hsb3 = Color.hsb(-9.9, 0.6,-0.1, 1); + Color hsb4 = hsb( 1, .2f, .6, 2); + Color hsb5 = hsb(50*5, 0d, 0.3, -.95); + } +} \ No newline at end of file diff --git a/plugins/javaFX/testData/colorProvider/Rgb.java b/plugins/javaFX/testData/colorProvider/Rgb.java new file mode 100644 index 000000000000..a2d509c4365c --- /dev/null +++ b/plugins/javaFX/testData/colorProvider/Rgb.java @@ -0,0 +1,16 @@ +import javafx.scene.paint.Color; +import static javafx.scene.paint.Color.*; + +public class Main { + void foo() { + Color rgb1 = Color.rgb( 0, 255, (150) ); + Color rgb2 = rgb (150, 0, 255, 0.12); + Color rgb3 = Color.rgb(0xF, 100, 0, 1d); + Color rgb4 = rgb (255, 100, (int)'a', 0f); + + Color grayRgb1 = Color.grayRgb(147 ); + Color grayRgb2 = grayRgb ( 0, 0.3+0.5); + Color grayRgb3 = Color.grayRgb(255, 0); + Color grayRgb4 = grayRgb (0xF, 1); + } +} \ No newline at end of file diff --git a/plugins/javaFX/testData/colorProvider/Rgb2.java b/plugins/javaFX/testData/colorProvider/Rgb2.java new file mode 100644 index 000000000000..1f628b0b0613 --- /dev/null +++ b/plugins/javaFX/testData/colorProvider/Rgb2.java @@ -0,0 +1,16 @@ +import javafx.scene.paint.Color; +import static javafx.scene.paint.Color.*; + +public class Main { + void foo() { + Color rgb1 = Color.rgb(500, 255, (150) ); + Color rgb2 = rgb (150, -1, 255, 0.12); + Color rgb3 = Color.rgb(0xF, 100, 256, 1d); + Color rgb4 = rgb (255, 100, (int)'a', -.1f); + + Color grayRgb1 = Color.grayRgb(-147 ); + Color grayRgb2 = grayRgb ( 0, 0.3-0.5); + Color grayRgb3 = Color.grayRgb(256, 0); + Color grayRgb4 = grayRgb (0xF, 1.1); + } +} \ No newline at end of file