Javafx: Added tests for JavaFxColorProvider - number format for JavaFX colors in Java source (IDEA-167948)

This commit is contained in:
Pavel Dolgov
2017-02-16 13:20:18 +03:00
parent b4f135fa76
commit ca54c8fa1f
3 changed files with 117 additions and 0 deletions
@@ -0,0 +1,51 @@
package org.jetbrains.plugins.javaFX
import com.intellij.openapi.application.PluginPathManager
import com.intellij.openapi.application.WriteAction
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
import java.awt.Color
import java.util.*
/**
* @author Pavel.Dolgov
*/
class JavaFxColorProviderFormatTest : AbstractJavaFXTestCase() {
override fun getTestDataPath() = PluginPathManager.getPluginHomePath("javaFX") + "/testData/colorProviderFormat"
fun testLocaleWithDotAsNumberSeparator() = withLocale(Locale.US) { doTest("NumberComponentFormat") }
fun testLocaleWithCommaAsNumberSeparator() = withLocale(Locale.GERMANY) { doTest("NumberComponentFormat") }
private fun withLocale(locale: Locale, doWork: () -> Unit) {
val oldLocale = Locale.getDefault()
try {
Locale.setDefault(locale)
doWork()
}
finally {
Locale.setDefault(oldLocale)
}
}
private fun doTest(testName: String) {
myFixture.configureByFile(testName + ".java")
val colorExpressions = myFixture.editor.caretModel.allCarets
.map { caret -> myFixture.file.findElementAt(caret.offset) }
.map { element -> PsiTreeUtil.findFirstParent(element, { it?.parent !is PsiExpression }) as? PsiExpression }
val colorProvider = JavaFxColorProvider()
val components = arrayOf(0, 0x40, 0x80, 0xFF)
for ((i, expression) in colorExpressions.withIndex()) {
val color = Color(components[i % 4], components[(i + 1) % 4], components[(i + 2) % 4], components[(i + 3) % 4])
WriteAction.run<RuntimeException> {
if (expression != null) {
colorProvider.setColorTo(expression, color)
}
}
}
myFixture.checkResultByFile(testName + "_after.java")
}
}
@@ -0,0 +1,33 @@
import javafx.scene.paint.Color;
import static javafx.scene.paint.Color.*;
public class Main {
void foo() {
Color color1 = <caret>new Color (1, 1, 1, 1);
Color color2 = <caret>Color.color(1, 1, 1, 1);
Color color3 = <caret>Color.color(1, 1, 1, 1);
Color color4 = <caret>color (1, 1, 1, 1);
Color color5 = <caret>color (1, 1, 1);
Color gray1 = <caret>Color.gray(1, 1);
Color gray2 = <caret>Color.gray(1, 1);
Color gray3 = <caret>gray (1, 1);
Color gray4 = <caret>gray (1);
Color rgb1 = <caret>Color.rgb(255, 255, 255, 1);
Color rgb2 = <caret>rgb (255, 255, 255, 1);
Color rgb3 = <caret>Color.rgb(255, 255, 255, 1);
Color rgb4 = <caret>rgb (255, 255, 255);
Color grayRgb1 = <caret>Color.grayRgb(255, 1);
Color grayRgb2 = <caret>grayRgb (255, 1);
Color grayRgb3 = <caret>Color.grayRgb(255, 1);
Color grayRgb4 = <caret>grayRgb (255);
Color hsb1 = Color.<caret>hsb(360, 1, 1, 1);
Color hsb2 = <caret>hsb(360, 1, 1, 1);
Color hsb3 = Color.<caret>hsb(360, 1, 1, 1);
Color hsb4 = <caret>hsb(360, 1, 1, 1);
Color hsb5 = <caret>hsb(360, 1, 1);
}
}
@@ -0,0 +1,33 @@
import javafx.scene.paint.Color;
import static javafx.scene.paint.Color.*;
public class Main {
void foo() {
Color color1 = new Color (0,0.251,0.502,1);
Color color2 = Color.color(0.251,0.502,1,0);
Color color3 = Color.color(0.502,1,0,0.251);
Color color4 = color (1,0,0.251,0.502);
Color color5 = color (0,0.251,0.502);
Color gray1 = Color.color(0.251,0.502,1,0);
Color gray2 = Color.color(0.502,1,0,0.251);
Color gray3 = color (1,0,0.251,0.502);
Color gray4 = color (0,0.251,0.502);
Color rgb1 = Color.rgb(64,128,255,0);
Color rgb2 = rgb (128,255,0,0.251);
Color rgb3 = Color.rgb(255,0,64,0.502);
Color rgb4 = rgb (0,64,128);
Color grayRgb1 = Color.rgb(64,128,255,0);
Color grayRgb2 = rgb (128,255,0,0.251);
Color grayRgb3 = Color.rgb(255,0,64,0.502);
Color grayRgb4 = rgb (0,64,128);
Color hsb1 = Color.hsb(219.8953,0.749,1,0);
Color hsb2 = hsb(89.8824,1,1,0.251);
Color hsb3 = Color.hsb(344.9412,1,1,0.502);
Color hsb4 = hsb(210,1,0.502);
Color hsb5 = hsb(219.8953,0.749,1,0);
}
}