From 5cfcf6bc53eb0603b2af0d5e558d0d7aef22c748 Mon Sep 17 00:00:00 2001 From: Anton Tarasov Date: Fri, 23 Mar 2018 13:04:11 +0300 Subject: [PATCH] Refactoring in ui scale tests --- .../com/intellij/util/IconsLoadTimeTest.java | 22 ++++++--------- .../com/intellij/util/ui/IconScaleTest.java | 19 +------------ .../intellij/util/ui/SvgIconPaintTest.java | 19 ++----------- .../com/intellij/util/ui/TestScaleHelper.java | 28 +++++++++++++++---- 4 files changed, 33 insertions(+), 55 deletions(-) diff --git a/platform/platform-tests/testSrc/com/intellij/util/IconsLoadTimeTest.java b/platform/platform-tests/testSrc/com/intellij/util/IconsLoadTimeTest.java index 51ed271c66fb..9365f5750325 100644 --- a/platform/platform-tests/testSrc/com/intellij/util/IconsLoadTimeTest.java +++ b/platform/platform-tests/testSrc/com/intellij/util/IconsLoadTimeTest.java @@ -5,8 +5,6 @@ package com.intellij.util; import com.intellij.internal.IconsLoadTime; import com.intellij.internal.IconsLoadTime.StatData; -import com.intellij.openapi.util.registry.Registry; -import com.intellij.openapi.util.registry.RegistryValue; import com.intellij.testFramework.PlatformTestUtil; import com.intellij.util.ui.TestScaleHelper; import org.junit.After; @@ -32,14 +30,16 @@ public class IconsLoadTimeTest { // a list of icons for which we have SVG versions private static final String ICONS_LIST_PATH = PlatformTestUtil.getPlatformTestDataPath() + "icons/icons_list.txt"; - private static boolean initialSvgProp; - @Before public void setState() { - TestScaleHelper.setProperty("idea.is.internal", "true"); - RegistryValue rv = Registry.get("ide.svg.icon"); - initialSvgProp = rv.asBoolean(); - if (!initialSvgProp) rv.setValue(true); + TestScaleHelper.setSystemProperty("idea.is.internal", "true"); + TestScaleHelper.setRegistryProperty("ide.svg.icon", "true"); + } + + @After + public void restoreState() { + TestScaleHelper.restoreSystemProperties(); + TestScaleHelper.restoreRegistryProperties(); } @Test @@ -63,10 +63,4 @@ public class IconsLoadTimeTest { assertTiming("SVG icon load time raised to " + String.format("%.02fms", svgData.averageTime), SVG_ICON_AVERAGE_LOAD_TIME_EXPECTED, (int)svgData.averageTime); } - - @After - public void restoreState() { - TestScaleHelper.restoreProperties(); - Registry.get("ide.svg.icon").setValue(initialSvgProp); - } } diff --git a/platform/platform-tests/testSrc/com/intellij/util/ui/IconScaleTest.java b/platform/platform-tests/testSrc/com/intellij/util/ui/IconScaleTest.java index 2c883f10b423..6982d8d944e3 100644 --- a/platform/platform-tests/testSrc/com/intellij/util/ui/IconScaleTest.java +++ b/platform/platform-tests/testSrc/com/intellij/util/ui/IconScaleTest.java @@ -3,13 +3,10 @@ package com.intellij.util.ui; import com.intellij.openapi.util.IconLoader.CachedImageIcon; import com.intellij.openapi.util.SystemInfo; -import com.intellij.openapi.util.registry.Registry; -import com.intellij.openapi.util.registry.RegistryValue; import com.intellij.testFramework.PlatformTestUtil; import com.intellij.util.IconUtil; import com.intellij.util.ui.JBUI.ScaleContext; import junit.framework.TestCase; -import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -26,25 +23,11 @@ import static com.intellij.util.ui.JBUI.ScaleType.USR_SCALE; * @author tav */ public class IconScaleTest extends TestScaleHelper { - - private static boolean initialSvgProp; - @Before @Override public void setState() { super.setState(); - - RegistryValue rv = Registry.get("ide.svg.icon"); - initialSvgProp = rv.asBoolean(); - rv.setValue(true); - } - - @After - @Override - public void restoreState() { - super.restoreState(); - - Registry.get("ide.svg.icon").setValue(initialSvgProp); + setRegistryProperty("ide.svg.icon", "true"); } @Test diff --git a/platform/platform-tests/testSrc/com/intellij/util/ui/SvgIconPaintTest.java b/platform/platform-tests/testSrc/com/intellij/util/ui/SvgIconPaintTest.java index 604605971dd3..e7efcda10bac 100644 --- a/platform/platform-tests/testSrc/com/intellij/util/ui/SvgIconPaintTest.java +++ b/platform/platform-tests/testSrc/com/intellij/util/ui/SvgIconPaintTest.java @@ -2,14 +2,11 @@ package com.intellij.util.ui; import com.intellij.openapi.util.IconLoader.CachedImageIcon; -import com.intellij.openapi.util.registry.Registry; -import com.intellij.openapi.util.registry.RegistryValue; import com.intellij.testFramework.PlatformTestUtil; import com.intellij.util.IconUtil; import com.intellij.util.ImageLoader; import com.intellij.util.ui.JBUI.ScaleContext; import com.intellij.util.ui.paint.ImageComparator; -import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -27,22 +24,11 @@ import static junit.framework.TestCase.assertTrue; * @author tav */ public class SvgIconPaintTest extends TestScaleHelper { - private static boolean initialSvgProp; - @Before @Override public void setState() { super.setState(); - RegistryValue rv = Registry.get("ide.svg.icon"); - initialSvgProp = rv.asBoolean(); - if (!initialSvgProp) rv.setValue(true); - } - - @After - @Override - public void restoreState() { - super.restoreState(); - Registry.get("ide.svg.icon").setValue(initialSvgProp); + setRegistryProperty("ide.svg.icon", "true"); } @Test @@ -56,8 +42,7 @@ public class SvgIconPaintTest extends TestScaleHelper { //save(iconImage); BufferedImage goldImage = load(); - ImageComparator comparator = - new ImageComparator(new ImageComparator.ColorAASmoother(0, 0.3f)); + ImageComparator comparator = new ImageComparator(new ImageComparator.ColorAASmoother(0, 0.3f)); StringBuilder sb = new StringBuilder("images mismatch: "); assertTrue(sb.toString(), comparator.compare(iconImage, goldImage, sb)); } diff --git a/platform/platform-tests/testSrc/com/intellij/util/ui/TestScaleHelper.java b/platform/platform-tests/testSrc/com/intellij/util/ui/TestScaleHelper.java index dced3b2146eb..ca28389870c7 100644 --- a/platform/platform-tests/testSrc/com/intellij/util/ui/TestScaleHelper.java +++ b/platform/platform-tests/testSrc/com/intellij/util/ui/TestScaleHelper.java @@ -1,6 +1,8 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.util.ui; +import com.intellij.openapi.util.registry.Registry; +import com.intellij.openapi.util.registry.RegistryValue; import com.intellij.util.SystemProperties; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -20,7 +22,8 @@ import java.util.Map; public class TestScaleHelper { private static final String STANDALONE_PROP = "intellij.test.standalone"; - private static final Map origProps = new HashMap<>(); + private static final Map originalSysProps = new HashMap<>(); + private static final Map originalRegProps = new HashMap<>(); private float originalUserScale; private boolean originalJreHiDPIEnabled; @@ -35,11 +38,18 @@ public class TestScaleHelper { public void restoreState() { JBUI.setUserScaleFactor(originalUserScale); overrideJreHiDPIEnabled(originalJreHiDPIEnabled); - restoreProperties(); + restoreRegistryProperties(); + restoreSystemProperties(); } - public static void setProperty(@NotNull String name, @Nullable String value) { - origProps.put(name, System.getProperty(name)); + public static void setRegistryProperty(@NotNull String key, @NotNull String value) { + final RegistryValue prop = Registry.get(key); + originalRegProps.put(key, prop.asString()); + prop.setValue(value); + } + + public static void setSystemProperty(@NotNull String name, @Nullable String value) { + originalSysProps.put(name, System.getProperty(name)); _setProperty(name, value); } @@ -52,12 +62,18 @@ public class TestScaleHelper { } } - public static void restoreProperties() { - for (Map.Entry entry : origProps.entrySet()) { + public static void restoreSystemProperties() { + for (Map.Entry entry : originalSysProps.entrySet()) { _setProperty(entry.getKey(), entry.getValue()); } } + public static void restoreRegistryProperties() { + for (Map.Entry entry : originalRegProps.entrySet()) { + Registry.get(entry.getKey()).setValue(entry.getValue()); + } + } + public static void overrideJreHiDPIEnabled(boolean enabled) { UIUtil.test_jreHiDPI().set(enabled); }