From dd2e7e879b39ad86de66ca8aeb25d3b2c2d76c34 Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Thu, 21 Mar 2019 15:11:56 +0100 Subject: [PATCH 01/25] fix: add missing import for class generics map (PR #480) * Fix missing import for class Generics map. * Add import only when needed (in non-inner class declaration) * Remove unneeded import --- .../src/main/java/jadx/cli/JadxCLIArgs.java | 2 +- .../java/jadx/core/codegen/AnnotationGen.java | 2 +- .../main/java/jadx/core/codegen/ClassGen.java | 8 +++- .../java/jadx/core/codegen/MethodGen.java | 2 +- .../generics/TestImportGenericMap.java | 40 +++++++++++++++++++ 5 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java diff --git a/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java b/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java index 806c7280e..aa9acc2e6 100644 --- a/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java +++ b/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java @@ -107,7 +107,7 @@ public class JadxCLIArgs { return process(jcw); } - private boolean process(JCommanderWrapper jcw) { + private boolean process(JCommanderWrapper jcw) { if (printHelp) { jcw.printUsage(); return false; diff --git a/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java b/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java index bb53ac1c2..5234ebced 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java @@ -151,7 +151,7 @@ public class AnnotationGen { InsnGen.makeStaticFieldAccess(code, field, classGen); } else if (val instanceof Iterable) { code.add('{'); - Iterator it = ((Iterable) val).iterator(); + Iterator it = ((Iterable) val).iterator(); while (it.hasNext()) { Object obj = it.next(); encodeValue(code, obj); diff --git a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java index b06c5aa4b..f1436c58d 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java @@ -144,7 +144,7 @@ public class ClassGen { clsCode.attachDefinition(cls); clsCode.add(cls.getShortName()); - addGenericMap(clsCode, cls.getGenericMap()); + addGenericMap(clsCode, cls.getGenericMap(), true); clsCode.add(' '); ArgType sup = cls.getSuperClass(); @@ -175,7 +175,7 @@ public class ClassGen { } } - public boolean addGenericMap(CodeWriter code, Map> gmap) { + public boolean addGenericMap(CodeWriter code, Map> gmap, boolean classDeclaration) { if (gmap == null || gmap.isEmpty()) { return false; } @@ -200,6 +200,10 @@ public class ClassGen { code.add(g.getObject()); } else { useClass(code, g); + + if (classDeclaration && !cls.getAlias().isInner()) { + addImport(ClassInfo.extCls(cls.root(), g)); + } } if (it.hasNext()) { code.add(" & "); diff --git a/jadx-core/src/main/java/jadx/core/codegen/MethodGen.java b/jadx-core/src/main/java/jadx/core/codegen/MethodGen.java index efcbf2f62..8c27865c0 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/MethodGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/MethodGen.java @@ -90,7 +90,7 @@ public class MethodGen { code.add(mth.isVirtual() ? "/* virtual */ " : "/* direct */ "); } - if (classGen.addGenericMap(code, mth.getGenericMap())) { + if (classGen.addGenericMap(code, mth.getGenericMap(), false)) { code.add(' '); } if (ai.isConstructor()) { diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java new file mode 100644 index 000000000..0148c4a6f --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java @@ -0,0 +1,40 @@ +package jadx.tests.integration.generics; + +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.CoreMatchers.not; +import static org.junit.Assert.assertThat; + +import org.junit.Test; + +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + +public class TestImportGenericMap extends IntegrationTest { + + @Test + public void test() { + ClassNode cls = getClassNode(SuperClass.class); + String code = cls.getCode().toString(); + + assertThat(code, containsString( + "import " + SuperClass.ToImport.class.getName().replace('$', '.') + ';')); + assertThat(code, not(containsString( + "import " + SuperClass.NotToImport.class.getName().replace('$', '.') + ';'))); + } +} + +final class SuperClass { + + interface ToImport { + } + + interface NotToImport { + } + + static final class Class1 { + } + + public SuperClass(Class1 zzf) { + } + +} \ No newline at end of file From 74562e6868d0fe00e0aa21429a3c5e353eeda682 Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Thu, 21 Mar 2019 15:14:00 +0100 Subject: [PATCH 02/25] test: assertion already passes (PR #482) --- .../java/jadx/tests/integration/generics/TestGenerics6.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java index 5f2c1e3ad..debc0e0c4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java @@ -41,7 +41,6 @@ public class TestGenerics6 extends IntegrationTest { String code = cls.getCode().toString(); assertThat(code, containsOne("for (A a : as) {")); - // TODO: fix iterable arg type (unexpected cast to A in bytecode) -// assertThat(code, containsOne("for (I i : is) {")); + assertThat(code, containsOne("for (I i : is) {")); } } From 988ada3ce97c62ef9793a22aee977940e4ef4831 Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Thu, 21 Mar 2019 15:16:33 +0100 Subject: [PATCH 03/25] style: remove unneeded casts (PR #481) As detected by Eclipse, and the test case doesn't depend on the explicit casting. --- .../src/main/java/jadx/core/xmlgen/entry/ValuesParser.java | 2 +- jadx-gui/src/main/java/jadx/gui/JadxWrapper.java | 2 +- jadx-samples/src/main/java/jadx/samples/TestCF4.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/entry/ValuesParser.java b/jadx-core/src/main/java/jadx/core/xmlgen/entry/ValuesParser.java index ed02114a0..1710e18ad 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/entry/ValuesParser.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/entry/ValuesParser.java @@ -215,7 +215,7 @@ public class ValuesParser extends ParserConstants { } private static String floatToString(float value) { - return doubleToString((double) value); + return doubleToString(value); } public static Map getAndroidResMap() { diff --git a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java index 69bd82107..539a90aff 100644 --- a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java +++ b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java @@ -53,7 +53,7 @@ public class JadxWrapper { while (ex.isTerminating()) { long total = ex.getTaskCount(); long done = ex.getCompletedTaskCount(); - progressMonitor.setProgress((int) (done * 100.0 / (double) total)); + progressMonitor.setProgress((int) (done * 100.0 / total)); Thread.sleep(500); } progressMonitor.close(); diff --git a/jadx-samples/src/main/java/jadx/samples/TestCF4.java b/jadx-samples/src/main/java/jadx/samples/TestCF4.java index 630482031..fa5fd7a79 100644 --- a/jadx-samples/src/main/java/jadx/samples/TestCF4.java +++ b/jadx-samples/src/main/java/jadx/samples/TestCF4.java @@ -21,13 +21,13 @@ public class TestCF4 extends AbstractTest { f = null; c = 2; testComplexIf("abcdef", 0); - assertEquals(c, (int) 'c'); + assertEquals(c, 'c'); d = ""; f = null; c = 0; testComplexIf("abcdef", 0); - assertEquals(c, (int) 'a'); + assertEquals(c, 'a'); d = ""; f = "1"; From d5f42662835a861064564bebbe26a514cd3430fa Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Fri, 22 Mar 2019 08:55:44 +0100 Subject: [PATCH 04/25] fix: rename class with reserved java keywords (#485) (PR #488) --- .../jadx/core/dex/visitors/RenameVisitor.java | 3 +++ .../names/TestReservedClassNames.java | 27 +++++++++++++++++++ .../smali/names/TestReservedClassNames.smali | 12 +++++++++ 3 files changed, 42 insertions(+) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java create mode 100644 jadx-core/src/test/smali/names/TestReservedClassNames.smali diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java index 4f91ed490..77822451f 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java @@ -92,6 +92,9 @@ public class RenameVisitor extends AbstractVisitor { if (firstChar == '$') { return 'C' + NameMapper.removeInvalidCharsMiddle(clsName); } + if (!NameMapper.isValidIdentifier(clsName)) { + return 'C' + clsName; + } return NameMapper.removeInvalidChars(clsName, "C"); } diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java new file mode 100644 index 000000000..b29baa63f --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java @@ -0,0 +1,27 @@ +package jadx.tests.integration.names; + +import org.junit.Test; + +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.SmaliTest; + +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.not; +import static org.junit.Assert.assertThat; + +import java.io.File; + +public class TestReservedClassNames extends SmaliTest { + /* + public class do { + } + */ + + @Test + public void test() { + ClassNode cls = getClassNodeFromSmali("names" + File.separatorChar + "TestReservedClassNames", "do"); + String code = cls.getCode().toString(); + + assertThat(code, not(containsString("public class do"))); + } +} diff --git a/jadx-core/src/test/smali/names/TestReservedClassNames.smali b/jadx-core/src/test/smali/names/TestReservedClassNames.smali new file mode 100644 index 000000000..b5dadcccc --- /dev/null +++ b/jadx-core/src/test/smali/names/TestReservedClassNames.smali @@ -0,0 +1,12 @@ +.class public Ldo; +.super Ljava/lang/Object; + +# direct methods +.method public constructor ()V + .locals 0 + + .line 3 + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method From 42b784376195082f9766e492f940033e4f03d9b0 Mon Sep 17 00:00:00 2001 From: tRuNKator <34552981+tRuNKator@users.noreply.github.com> Date: Fri, 22 Mar 2019 13:04:30 +0500 Subject: [PATCH 05/25] fix: use quantity attribute for plurals (PR #486) --- .../main/java/jadx/core/xmlgen/ResXmlGen.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java index 452744809..a23768495 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java @@ -15,6 +15,8 @@ import jadx.core.xmlgen.entry.RawNamedValue; import jadx.core.xmlgen.entry.ResourceEntry; import jadx.core.xmlgen.entry.ValuesParser; +import static jadx.core.xmlgen.ParserConstants.PLURALS_MAP; + public class ResXmlGen { private static final Set SKIP_RES_TYPES = new HashSet<>(Arrays.asList( @@ -147,16 +149,22 @@ public class ResXmlGen { } } } - if (typeName.equals("attr")) { - if (nameStr != null) { - addSimpleValue(cw, typeName, itemTag, nameStr, valueStr, ""); - } - } else if (typeName.equals("style")) { - if (nameStr != null) { - addSimpleValue(cw, typeName, itemTag, nameStr, "", valueStr); - } - } else { - addSimpleValue(cw, typeName, itemTag, null, null, valueStr); + switch (typeName) { + case "attr": + if (nameStr != null) + addSimpleValue(cw, typeName, itemTag, nameStr, valueStr, ""); + break; + case "style": + if (nameStr != null) + addSimpleValue(cw, typeName, itemTag, nameStr, "", valueStr); + break; + case "plurals": + final String quantity = PLURALS_MAP.get(value.getNameRef()); + addSimpleValue(cw, typeName, itemTag, "quantity", quantity, valueStr); + break; + default: + addSimpleValue(cw, typeName, itemTag, null, null, valueStr); + break; } } From 650cf315626b28973a091add4a998f092384071a Mon Sep 17 00:00:00 2001 From: tRuNKator <34552981+tRuNKator@users.noreply.github.com> Date: Fri, 22 Mar 2019 13:05:08 +0500 Subject: [PATCH 06/25] fix: resource qualifiers (PR #487) --- .../java/jadx/core/xmlgen/ParserStream.java | 18 + .../java/jadx/core/xmlgen/ResTableParser.java | 224 +++--- .../main/java/jadx/core/xmlgen/ResXmlGen.java | 6 +- .../jadx/core/xmlgen/entry/EntryConfig.java | 756 +++++++++++++++--- 4 files changed, 760 insertions(+), 244 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ParserStream.java b/jadx-core/src/main/java/jadx/core/xmlgen/ParserStream.java index fc6cb2731..10e37eb36 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ParserStream.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ParserStream.java @@ -1,5 +1,6 @@ package jadx.core.xmlgen; +import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; @@ -143,6 +144,23 @@ public class ParserStream { input.reset(); } + public void readFully(byte[] b) throws IOException { + readFully(b, 0, b.length); + } + + public void readFully(byte[] b, int off, int len) throws IOException { + readPos += len; + if (len < 0) + throw new IndexOutOfBoundsException(); + int n = 0; + while (n < len) { + int count = input.read(b, off + n, len - n); + if (count < 0) + throw new EOFException(); + n += count; + } + } + @Override public String toString() { return "pos: 0x" + Long.toHexString(readPos); diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java index dd04ae6c1..8c109c2ca 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java @@ -2,6 +2,7 @@ package jadx.core.xmlgen; import java.io.IOException; import java.io.InputStream; +import java.math.BigInteger; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -21,6 +22,8 @@ public class ResTableParser extends CommonBinaryParser { private static final Logger LOG = LoggerFactory.getLogger(ResTableParser.class); + private static final int KNOWN_CONFIG_BYTES = 56; + private static final class PackageChunk { private final int id; private final String name; @@ -194,6 +197,11 @@ public class ResTableParser extends CommonBinaryParser { EntryConfig config = parseConfig(); + if (config.isInvalid) { + String typeName = pkg.getTypeStrings()[id - 1]; + LOG.warn("Invalid config flags detected: " + typeName + config.getQualifiers()); + } + int[] entryIndexes = new int[entryCount]; for (int i = 0; i < entryCount; i++) { entryIndexes[i] = is.readInt32(); @@ -248,134 +256,134 @@ public class ResTableParser extends CommonBinaryParser { } private EntryConfig parseConfig() throws IOException { - long start = is.getPos(); int size = is.readInt32(); + int read = 28; - EntryConfig config = new EntryConfig(); + if (size < 28) { + throw new IOException("Config size < 28"); + } - is.readInt16(); //mcc - is.readInt16(); //mnc + boolean isInvalid = false; - config.setLanguage(parseLocale()); - config.setCountry(parseLocale()); + short mcc = (short) is.readInt16(); + short mnc = (short) is.readInt16(); + + char[] language = unpackLocaleOrRegion((byte) is.readInt8(), (byte) is.readInt8(), 'a'); + char[] country = unpackLocaleOrRegion((byte) is.readInt8(), (byte) is.readInt8(), '0'); + + byte orientation = (byte) is.readInt8(); + byte touchscreen = (byte) is.readInt8(); - int orientation = is.readInt8(); - int touchscreen = is.readInt8(); int density = is.readInt16(); - if (density != 0) { - config.setDensity(parseDensity(density)); + byte keyboard = (byte) is.readInt8(); + byte navigation = (byte) is.readInt8(); + byte inputFlags = (byte) is.readInt8(); + /* inputPad0 */is.readInt8(); + + short screenWidth = (short) is.readInt16(); + short screenHeight = (short) is.readInt16(); + + short sdkVersion = (short) is.readInt16(); + /* minorVersion, now must always be 0 */is.readInt16(); + + byte screenLayout = 0; + byte uiMode = 0; + short smallestScreenWidthDp = 0; + if (size >= 32) { + screenLayout = (byte) is.readInt8(); + uiMode = (byte) is.readInt8(); + smallestScreenWidthDp = (short) is.readInt16(); + read = 32; } - is.readInt8(); // keyboard - is.readInt8(); // navigation - is.readInt8(); // inputFlags - is.readInt8(); // inputPad0 - - int screenWidth = is.readInt16(); - int screenHeight = is.readInt16(); - - if (screenWidth != 0 && screenHeight != 0) { - config.setScreenSize(screenWidth + "x" + screenHeight); + short screenWidthDp = 0; + short screenHeightDp = 0; + if (size >= 36) { + screenWidthDp = (short) is.readInt16(); + screenHeightDp = (short) is.readInt16(); + read = 36; } - int sdkVersion = is.readInt16(); - - if (sdkVersion != 0) { - config.setSdkVersion("v" + sdkVersion); + char[] localeScript = null; + char[] localeVariant = null; + if (size >= 48) { + localeScript = readScriptOrVariantChar(4).toCharArray(); + localeVariant = readScriptOrVariantChar(8).toCharArray(); + read = 48; } - int minorVersion = is.readInt16(); - - int screenLayout = is.readInt8(); - int uiMode = is.readInt8(); - int smallestScreenWidthDp = is.readInt16(); - - int screenWidthDp = is.readInt16(); - int screenHeightDp = is.readInt16(); - - if (screenLayout != 0) { - config.setScreenLayout(parseScreenLayout(screenLayout)); + byte screenLayout2 = 0; + byte colorMode = 0; + if (size >= 52) { + screenLayout2 = (byte) is.readInt8(); + colorMode = (byte) is.readInt8(); + is.readInt16(); // reserved padding + read = 52; } - if (smallestScreenWidthDp != 0) { - config.setSmallestScreenWidthDp("sw" + smallestScreenWidthDp + "dp"); + if (size >= 56) { + is.readInt32(); + read = 56; } - if (orientation != 0) { - config.setOrientation(parseOrientation(orientation)); - } + int exceedingSize = size - KNOWN_CONFIG_BYTES; + if (exceedingSize > 0) { + byte[] buf = new byte[exceedingSize]; + read += exceedingSize; + is.readFully(buf); + BigInteger exceedingBI = new BigInteger(1, buf); - if (screenWidthDp != 0) { - config.setScreenWidthDp("w" + screenWidthDp + "dp"); - } - - if (screenHeightDp != 0) { - config.setScreenHeightDp("h" + screenHeightDp + "dp"); - } - - is.skipToPos(start + size, "Skip config parsing"); - return config; - } - - private String parseOrientation(int orientation) { - if (orientation == 1) { - return "port"; - } else if (orientation == 2) { - return "land"; - } else { - return "o" + orientation; - } - } - - private String parseScreenLayout(int screenLayout) { - switch (screenLayout) { - case 1: - return "small"; - case 2: - return "normal"; - case 3: - return "large"; - case 4: - return "xlarge"; - case 64: - return "ldltr"; - case 128: - return "ldrtl"; - default: - return "sl" + screenLayout; - } - } - - private String parseDensity(int density) { - if (density == 120) { - return "ldpi"; - } else if (density == 160) { - return "mdpi"; - } else if (density == 240) { - return "hdpi"; - } else if (density == 320) { - return "xhdpi"; - } else if (density == 480) { - return "xxhdpi"; - } else if (density == 640) { - return "xxxhdpi"; - } else { - return density + "dpi"; - } - } - - private String parseLocale() throws IOException { - int b1 = is.readInt8(); - int b2 = is.readInt8(); - String str = null; - if (b1 != 0 && b2 != 0) { - if ((b1 & 0x80) == 0) { - str = new String(new char[]{(char) b1, (char) b2}); + if (exceedingBI.equals(BigInteger.ZERO)) { + LOG.info(String + .format("Config flags size > %d, but exceeding bytes are all zero, so it should be ok.", + KNOWN_CONFIG_BYTES)); } else { - LOG.warn("TODO: parse locale: 0x{}{}", Integer.toHexString(b1), Integer.toHexString(b2)); + LOG.warn(String.format("Config flags size > %d. Size = %d. Exceeding bytes: 0x%X.", + KNOWN_CONFIG_BYTES, size, exceedingBI)); + isInvalid = true; } } - return str; + + int remainingSize = size - read; + if (remainingSize > 0) { + is.skip(remainingSize); + } + + return new EntryConfig(mcc, mnc, language, country, + orientation, touchscreen, density, keyboard, navigation, + inputFlags, screenWidth, screenHeight, sdkVersion, + screenLayout, uiMode, smallestScreenWidthDp, screenWidthDp, + screenHeightDp, localeScript, localeVariant, screenLayout2, + colorMode, isInvalid, size); + } + + private char[] unpackLocaleOrRegion(byte in0, byte in1, char base) throws IOException { + // check high bit, if so we have a packed 3 letter code + if (((in0 >> 7) & 1) == 1) { + int first = in1 & 0x1F; + int second = ((in1 & 0xE0) >> 5) + ((in0 & 0x03) << 3); + int third = (in0 & 0x7C) >> 2; + + // since this function handles languages & regions, we add the value(s) to the base char + // which is usually 'a' or '0' depending on language or region. + return new char[] { (char) (first + base), (char) (second + base), (char) (third + base) }; + } + return new char[] { (char) in0, (char) in1 }; + } + + private String readScriptOrVariantChar(int length) throws IOException { + StringBuilder string = new StringBuilder(16); + + while(length-- != 0) { + short ch = (short) is.readInt8(); + if (ch == 0) { + break; + } + string.append((char) ch); + } + is.skip(length); + + return string.toString(); } } diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java index a23768495..fec14a113 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResXmlGen.java @@ -202,10 +202,10 @@ public class ResXmlGen { private String getFileName(ResourceEntry ri) { StringBuilder sb = new StringBuilder(); - String locale = ri.getConfig().getLocale(); + String qualifiers = ri.getConfig().getQualifiers(); sb.append("res/values"); - if (!locale.isEmpty()) { - sb.append('-').append(locale); + if (!qualifiers.isEmpty()) { + sb.append(qualifiers); } sb.append('/'); sb.append(ri.getTypeName()); diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/entry/EntryConfig.java b/jadx-core/src/main/java/jadx/core/xmlgen/entry/EntryConfig.java index d19b84666..bd5ca80fc 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/entry/EntryConfig.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/entry/EntryConfig.java @@ -1,159 +1,649 @@ +/** + * Copyright (C) 2018 Ryszard Wiśniewski + * Copyright (C) 2018 Connor Tumbleson + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package jadx.core.xmlgen.entry; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Original source code can be found here + */ + public class EntryConfig { - private String language; - private String country; - private String density; - private String screenSize; - private String sdkVersion; - private String screenLayout; - private String smallestScreenWidthDp; - private String orientation; - private String screenWidthDp; - private String screenHeightDp; + public final short mcc; + public final short mnc; - public String getLanguage() { - return language; - } + public final char[] language; + public final char[] region; - public void setLanguage(String language) { - this.language = language; - } + public final byte orientation; + public final byte touchscreen; + public final int density; - public String getCountry() { - return country; - } + public final byte keyboard; + public final byte navigation; + public final byte inputFlags; - public void setCountry(String country) { - this.country = country; - } + public final short screenWidth; + public final short screenHeight; - public String getLocale() { - StringBuilder sb = new StringBuilder(); - if (screenSize != null) { - if (sb.length() != 0) { - sb.append("-"); - } - sb.append(screenSize); - } else if (screenHeightDp != null) { - if (sb.length() != 0) { - sb.append("-"); - } - sb.append(screenHeightDp); - } else if (screenWidthDp != null) { - if (sb.length() != 0) { - sb.append("-"); - } - sb.append(screenWidthDp); - } else if (screenLayout != null) { - if (sb.length() != 0) { - sb.append("-"); - } - sb.append(screenLayout); - } else if (smallestScreenWidthDp != null) { - if (sb.length() != 0) { - sb.append("-"); - } - sb.append(smallestScreenWidthDp); - } else if (density != null) { - sb.append(density); - } - if (language != null) { - if (sb.length() != 0) { - sb.append("-"); - } - sb.append(language); - } - if (country != null) { - sb.append("-r").append(country); - } - if (orientation != null) { - if (sb.length() != 0) { - sb.append("-"); - } - sb.append(orientation); - } - if (sdkVersion != null) { - if (sb.length() != 0) { - sb.append("-"); - } - sb.append(sdkVersion); - } - return sb.toString(); - } + public final short sdkVersion; - public String getDensity() { - return density; - } + public final byte screenLayout; + public final byte uiMode; + public final short smallestScreenWidthDp; - public void setDensity(String density) { - this.density = density; - } + public final short screenWidthDp; + public final short screenHeightDp; - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getLocale()); - if (sb.length() != 0) { - sb.insert(0, " ["); - sb.append(']'); - } - return sb.toString(); - } + private final char[] localeScript; + private final char[] localeVariant; - public void setScreenSize(String screenSize) { - this.screenSize = screenSize; - } + private final byte screenLayout2; + private final byte colorMode; - public String getScreenSize() { - return screenSize; - } + public final boolean isInvalid; - public void setSdkVersion(String sdkVersion) { - this.sdkVersion = sdkVersion; - } + private final String mQualifiers; - public String getSdkVersion() { - return sdkVersion; - } + private final int size; - public void setScreenLayout(String screenLayout) { - this.screenLayout = screenLayout; - } + public EntryConfig() { + mcc = 0; + mnc = 0; + language = new char[]{'\00', '\00'}; + region = new char[]{'\00', '\00'}; + orientation = ORIENTATION_ANY; + touchscreen = TOUCHSCREEN_ANY; + density = DENSITY_DEFAULT; + keyboard = KEYBOARD_ANY; + navigation = NAVIGATION_ANY; + inputFlags = KEYSHIDDEN_ANY | NAVHIDDEN_ANY; + screenWidth = 0; + screenHeight = 0; + sdkVersion = 0; + screenLayout = SCREENLONG_ANY | SCREENSIZE_ANY; + uiMode = UI_MODE_TYPE_ANY | UI_MODE_NIGHT_ANY; + smallestScreenWidthDp = 0; + screenWidthDp = 0; + screenHeightDp = 0; + localeScript = null; + localeVariant = null; + screenLayout2 = 0; + colorMode = COLOR_WIDE_UNDEFINED; + isInvalid = false; + mQualifiers = ""; + size = 0; + } - public String getScreenLayout() { - return screenLayout; - } + public EntryConfig(short mcc, short mnc, char[] language, + char[] region, byte orientation, + byte touchscreen, int density, byte keyboard, byte navigation, + byte inputFlags, short screenWidth, short screenHeight, + short sdkVersion, byte screenLayout, byte uiMode, + short smallestScreenWidthDp, short screenWidthDp, + short screenHeightDp, char[] localeScript, char[] localeVariant, + byte screenLayout2, byte colorMode, boolean isInvalid, int size) { + if (orientation < 0 || orientation > 3) { + LOG.warn("Invalid orientation value: " + orientation); + orientation = 0; + isInvalid = true; + } + if (touchscreen < 0 || touchscreen > 3) { + LOG.warn("Invalid touchscreen value: " + touchscreen); + touchscreen = 0; + isInvalid = true; + } + if (density < -1) { + LOG.warn("Invalid density value: " + density); + density = 0; + isInvalid = true; + } + if (keyboard < 0 || keyboard > 3) { + LOG.warn("Invalid keyboard value: " + keyboard); + keyboard = 0; + isInvalid = true; + } + if (navigation < 0 || navigation > 4) { + LOG.warn("Invalid navigation value: " + navigation); + navigation = 0; + isInvalid = true; + } - public void setSmallestScreenWidthDp(String smallestScreenWidthDp) { - this.smallestScreenWidthDp = smallestScreenWidthDp; - } + if (localeScript != null && localeScript.length != 0) { + if (localeScript[0] == '\00') { + localeScript = null; + } + } else { + localeScript = null; + } - public String getSmallestScreenWidthDp() { - return smallestScreenWidthDp; - } + if (localeVariant != null && localeVariant.length != 0) { + if (localeVariant[0] == '\00') { + localeVariant = null; + } + } else { + localeVariant = null; + } - public void setOrientation(String orientation) { - this.orientation = orientation; - } + this.mcc = mcc; + this.mnc = mnc; + this.language = language; + this.region = region; + this.orientation = orientation; + this.touchscreen = touchscreen; + this.density = density; + this.keyboard = keyboard; + this.navigation = navigation; + this.inputFlags = inputFlags; + this.screenWidth = screenWidth; + this.screenHeight = screenHeight; + this.sdkVersion = sdkVersion; + this.screenLayout = screenLayout; + this.uiMode = uiMode; + this.smallestScreenWidthDp = smallestScreenWidthDp; + this.screenWidthDp = screenWidthDp; + this.screenHeightDp = screenHeightDp; + this.localeScript = localeScript; + this.localeVariant = localeVariant; + this.screenLayout2 = screenLayout2; + this.colorMode = colorMode; + this.isInvalid = isInvalid; + this.size = size; + mQualifiers = generateQualifiers(); + } - public String getOrientation() { - return orientation; - } + public String getQualifiers() { + return mQualifiers; + } - public void setScreenWidthDp(String screenWidthDp) { - this.screenWidthDp = screenWidthDp; - } + private String generateQualifiers() { + StringBuilder ret = new StringBuilder(); + if (mcc != 0) { + ret.append("-mcc").append(String.format("%03d", mcc)); + if (mnc != MNC_ZERO) { + if (mnc != 0) { + ret.append("-mnc"); + if (size <= 32) { + if (mnc > 0 && mnc < 10) { + ret.append(String.format("%02d", mnc)); + } else { + ret.append(String.format("%03d", mnc)); + } + } else { + ret.append(mnc); + } + } + } else { + ret.append("-mnc00"); + } + } else { + if (mnc != 0) { + ret.append("-mnc").append(mnc); + } + } + ret.append(getLocaleString()); - public String getScreenWidthDp() { - return screenWidthDp; - } + switch (screenLayout & MASK_LAYOUTDIR) { + case SCREENLAYOUT_LAYOUTDIR_RTL: + ret.append("-ldrtl"); + break; + case SCREENLAYOUT_LAYOUTDIR_LTR: + ret.append("-ldltr"); + break; + } + if (smallestScreenWidthDp != 0) { + ret.append("-sw").append(smallestScreenWidthDp).append("dp"); + } + if (screenWidthDp != 0) { + ret.append("-w").append(screenWidthDp).append("dp"); + } + if (screenHeightDp != 0) { + ret.append("-h").append(screenHeightDp).append("dp"); + } + switch (screenLayout & MASK_SCREENSIZE) { + case SCREENSIZE_SMALL: + ret.append("-small"); + break; + case SCREENSIZE_NORMAL: + ret.append("-normal"); + break; + case SCREENSIZE_LARGE: + ret.append("-large"); + break; + case SCREENSIZE_XLARGE: + ret.append("-xlarge"); + break; + } + switch (screenLayout & MASK_SCREENLONG) { + case SCREENLONG_YES: + ret.append("-long"); + break; + case SCREENLONG_NO: + ret.append("-notlong"); + break; + } + switch (screenLayout2 & MASK_SCREENROUND) { + case SCREENLAYOUT_ROUND_NO: + ret.append("-notround"); + break; + case SCREENLAYOUT_ROUND_YES: + ret.append("-round"); + break; + } + switch (colorMode & COLOR_HDR_MASK) { + case COLOR_HDR_YES: + ret.append("-highdr"); + break; + case COLOR_HDR_NO: + ret.append("-lowdr"); + break; + } + switch (colorMode & COLOR_WIDE_MASK) { + case COLOR_WIDE_YES: + ret.append("-widecg"); + break; + case COLOR_WIDE_NO: + ret.append("-nowidecg"); + break; + } + switch (orientation) { + case ORIENTATION_PORT: + ret.append("-port"); + break; + case ORIENTATION_LAND: + ret.append("-land"); + break; + case ORIENTATION_SQUARE: + ret.append("-square"); + break; + } + switch (uiMode & MASK_UI_MODE_TYPE) { + case UI_MODE_TYPE_CAR: + ret.append("-car"); + break; + case UI_MODE_TYPE_DESK: + ret.append("-desk"); + break; + case UI_MODE_TYPE_TELEVISION: + ret.append("-television"); + break; + case UI_MODE_TYPE_SMALLUI: + ret.append("-smallui"); + break; + case UI_MODE_TYPE_MEDIUMUI: + ret.append("-mediumui"); + break; + case UI_MODE_TYPE_LARGEUI: + ret.append("-largeui"); + break; + case UI_MODE_TYPE_GODZILLAUI: + ret.append("-godzillaui"); + break; + case UI_MODE_TYPE_HUGEUI: + ret.append("-hugeui"); + break; + case UI_MODE_TYPE_APPLIANCE: + ret.append("-appliance"); + break; + case UI_MODE_TYPE_WATCH: + ret.append("-watch"); + break; + case UI_MODE_TYPE_VR_HEADSET: + ret.append("-vrheadset"); + break; + } + switch (uiMode & MASK_UI_MODE_NIGHT) { + case UI_MODE_NIGHT_YES: + ret.append("-night"); + break; + case UI_MODE_NIGHT_NO: + ret.append("-notnight"); + break; + } + switch (density) { + case DENSITY_DEFAULT: + break; + case DENSITY_LOW: + ret.append("-ldpi"); + break; + case DENSITY_MEDIUM: + ret.append("-mdpi"); + break; + case DENSITY_HIGH: + ret.append("-hdpi"); + break; + case DENSITY_TV: + ret.append("-tvdpi"); + break; + case DENSITY_XHIGH: + ret.append("-xhdpi"); + break; + case DENSITY_XXHIGH: + ret.append("-xxhdpi"); + break; + case DENSITY_XXXHIGH: + ret.append("-xxxhdpi"); + break; + case DENSITY_ANY: + ret.append("-anydpi"); + break; + case DENSITY_NONE: + ret.append("-nodpi"); + break; + default: + ret.append('-').append(density).append("dpi"); + } + switch (touchscreen) { + case TOUCHSCREEN_NOTOUCH: + ret.append("-notouch"); + break; + case TOUCHSCREEN_STYLUS: + ret.append("-stylus"); + break; + case TOUCHSCREEN_FINGER: + ret.append("-finger"); + break; + } + switch (inputFlags & MASK_KEYSHIDDEN) { + case KEYSHIDDEN_NO: + ret.append("-keysexposed"); + break; + case KEYSHIDDEN_YES: + ret.append("-keyshidden"); + break; + case KEYSHIDDEN_SOFT: + ret.append("-keyssoft"); + break; + } + switch (keyboard) { + case KEYBOARD_NOKEYS: + ret.append("-nokeys"); + break; + case KEYBOARD_QWERTY: + ret.append("-qwerty"); + break; + case KEYBOARD_12KEY: + ret.append("-12key"); + break; + } + switch (inputFlags & MASK_NAVHIDDEN) { + case NAVHIDDEN_NO: + ret.append("-navexposed"); + break; + case NAVHIDDEN_YES: + ret.append("-navhidden"); + break; + } + switch (navigation) { + case NAVIGATION_NONAV: + ret.append("-nonav"); + break; + case NAVIGATION_DPAD: + ret.append("-dpad"); + break; + case NAVIGATION_TRACKBALL: + ret.append("-trackball"); + break; + case NAVIGATION_WHEEL: + ret.append("-wheel"); + break; + } + if (screenWidth != 0 && screenHeight != 0) { + if (screenWidth > screenHeight) { + ret.append(String.format("-%dx%d", screenWidth, screenHeight)); + } else { + ret.append(String.format("-%dx%d", screenHeight, screenWidth)); + } + } + if (sdkVersion > 0 && sdkVersion >= getNaturalSdkVersionRequirement()) { + ret.append("-v").append(sdkVersion); + } + if (isInvalid) { + ret.append("-ERR").append(sErrCounter++); + } - public void setScreenHeightDp(String screenHeightDp) { - this.screenHeightDp = screenHeightDp; - } + return ret.toString(); + } - public String getScreenHeightDp() { - return screenHeightDp; - } + private short getNaturalSdkVersionRequirement() { + if ((uiMode & MASK_UI_MODE_TYPE) == UI_MODE_TYPE_VR_HEADSET || (colorMode & COLOR_WIDE_MASK) != 0 || ((colorMode & COLOR_HDR_MASK) != 0)) { + return SDK_OREO; + } + if ((screenLayout2 & MASK_SCREENROUND) != 0) { + return SDK_MNC; + } + if (density == DENSITY_ANY) { + return SDK_LOLLIPOP; + } + if (smallestScreenWidthDp != 0 || screenWidthDp != 0 || screenHeightDp != 0) { + return SDK_HONEYCOMB_MR2; + } + if ((uiMode & (MASK_UI_MODE_TYPE | MASK_UI_MODE_NIGHT)) != UI_MODE_NIGHT_ANY) { + return SDK_FROYO; + } + if ((screenLayout & (MASK_SCREENSIZE | MASK_SCREENLONG)) != SCREENSIZE_ANY || density != DENSITY_DEFAULT) { + return SDK_DONUT; + } + return 0; + } + + private String getLocaleString() { + StringBuilder sb = new StringBuilder(); + + // check for old style non BCP47 tags + // allows values-xx-rXX, values-xx, values-xxx-rXX + // denies values-xxx, anything else + if (localeVariant == null && localeScript == null && (region[0] != '\00' || language[0] != '\00') && + region.length != 3) { + sb.append("-").append(language); + if (region[0] != '\00') { + sb.append("-r").append(region); + } + } else { // BCP47 + if (language[0] == '\00' && region[0] == '\00') { + return sb.toString(); // early return, no language or region + } + sb.append("-b+"); + if (language[0] != '\00') { + sb.append(language); + } + if (localeScript != null && localeScript.length == 4) { + sb.append("+").append(localeScript); + } + if ((region.length == 2 || region.length == 3) && region[0] != '\00') { + sb.append("+").append(region); + } + if (localeVariant != null && localeVariant.length >= 5) { + sb.append("+").append(toUpper(localeVariant)); + } + } + return sb.toString(); + } + + private String toUpper(char[] character) { + StringBuilder sb = new StringBuilder(); + for (char ch : character) { + sb.append(Character.toUpperCase(ch)); + } + return sb.toString(); + } + + + @Override + public String toString() { + return !getQualifiers().equals("") ? getQualifiers() : "[DEFAULT]"; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final EntryConfig other = (EntryConfig) obj; + return this.mQualifiers.equals(other.mQualifiers); + } + + @Override + public int hashCode() { + int hash = 17; + hash = 31 * hash + this.mQualifiers.hashCode(); + return hash; + } + + // TODO: Dirty static hack. This counter should be a part of ResPackage, + // but it would be hard right now and this feature is very rarely used. + private static int sErrCounter = 0; + + public final static byte SDK_BASE = 1; + public final static byte SDK_BASE_1_1 = 2; + public final static byte SDK_CUPCAKE = 3; + public final static byte SDK_DONUT = 4; + public final static byte SDK_ECLAIR = 5; + public final static byte SDK_ECLAIR_0_1 = 6; + public final static byte SDK_ECLAIR_MR1 = 7; + public final static byte SDK_FROYO = 8; + public final static byte SDK_GINGERBREAD = 9; + public final static byte SDK_GINGERBREAD_MR1 = 10; + public final static byte SDK_HONEYCOMB = 11; + public final static byte SDK_HONEYCOMB_MR1 = 12; + public final static byte SDK_HONEYCOMB_MR2 = 13; + public final static byte SDK_ICE_CREAM_SANDWICH = 14; + public final static byte SDK_ICE_CREAM_SANDWICH_MR1 = 15; + public final static byte SDK_JELLY_BEAN = 16; + public final static byte SDK_JELLY_BEAN_MR1 = 17; + public final static byte SDK_JELLY_BEAN_MR2 = 18; + public final static byte SDK_KITKAT = 19; + public final static byte SDK_LOLLIPOP = 21; + public final static byte SDK_LOLLIPOP_MR1 = 22; + public final static byte SDK_MNC = 23; + public final static byte SDK_NOUGAT = 24; + public final static byte SDK_NOUGAT_MR1 = 25; + public final static byte SDK_OREO = 26; + public final static byte SDK_OREO_MR1 = 27; + public final static byte SDK_P = 28; + + public final static byte ORIENTATION_ANY = 0; + public final static byte ORIENTATION_PORT = 1; + public final static byte ORIENTATION_LAND = 2; + public final static byte ORIENTATION_SQUARE = 3; + + public final static byte TOUCHSCREEN_ANY = 0; + public final static byte TOUCHSCREEN_NOTOUCH = 1; + public final static byte TOUCHSCREEN_STYLUS = 2; + public final static byte TOUCHSCREEN_FINGER = 3; + + public final static int DENSITY_DEFAULT = 0; + public final static int DENSITY_LOW = 120; + public final static int DENSITY_MEDIUM = 160; + public final static int DENSITY_400 = 190; + public final static int DENSITY_TV = 213; + public final static int DENSITY_HIGH = 240; + public final static int DENSITY_XHIGH = 320; + public final static int DENSITY_XXHIGH = 480; + public final static int DENSITY_XXXHIGH = 640; + public final static int DENSITY_ANY = 0xFFFE; + public final static int DENSITY_NONE = 0xFFFF; + + public final static int MNC_ZERO = -1; + + public final static short MASK_LAYOUTDIR = 0xc0; + public final static short SCREENLAYOUT_LAYOUTDIR_ANY = 0x00; + public final static short SCREENLAYOUT_LAYOUTDIR_LTR = 0x40; + public final static short SCREENLAYOUT_LAYOUTDIR_RTL = 0x80; + public final static short SCREENLAYOUT_LAYOUTDIR_SHIFT = 0x06; + + public final static short MASK_SCREENROUND = 0x03; + public final static short SCREENLAYOUT_ROUND_ANY = 0; + public final static short SCREENLAYOUT_ROUND_NO = 0x1; + public final static short SCREENLAYOUT_ROUND_YES = 0x2; + + public final static byte KEYBOARD_ANY = 0; + public final static byte KEYBOARD_NOKEYS = 1; + public final static byte KEYBOARD_QWERTY = 2; + public final static byte KEYBOARD_12KEY = 3; + + public final static byte NAVIGATION_ANY = 0; + public final static byte NAVIGATION_NONAV = 1; + public final static byte NAVIGATION_DPAD = 2; + public final static byte NAVIGATION_TRACKBALL = 3; + public final static byte NAVIGATION_WHEEL = 4; + + public final static byte MASK_KEYSHIDDEN = 0x3; + public final static byte KEYSHIDDEN_ANY = 0x0; + public final static byte KEYSHIDDEN_NO = 0x1; + public final static byte KEYSHIDDEN_YES = 0x2; + public final static byte KEYSHIDDEN_SOFT = 0x3; + + public final static byte MASK_NAVHIDDEN = 0xc; + public final static byte NAVHIDDEN_ANY = 0x0; + public final static byte NAVHIDDEN_NO = 0x4; + public final static byte NAVHIDDEN_YES = 0x8; + + public final static byte MASK_SCREENSIZE = 0x0f; + public final static byte SCREENSIZE_ANY = 0x00; + public final static byte SCREENSIZE_SMALL = 0x01; + public final static byte SCREENSIZE_NORMAL = 0x02; + public final static byte SCREENSIZE_LARGE = 0x03; + public final static byte SCREENSIZE_XLARGE = 0x04; + + public final static byte MASK_SCREENLONG = 0x30; + public final static byte SCREENLONG_ANY = 0x00; + public final static byte SCREENLONG_NO = 0x10; + public final static byte SCREENLONG_YES = 0x20; + + public final static byte MASK_UI_MODE_TYPE = 0x0f; + public final static byte UI_MODE_TYPE_ANY = 0x00; + public final static byte UI_MODE_TYPE_NORMAL = 0x01; + public final static byte UI_MODE_TYPE_DESK = 0x02; + public final static byte UI_MODE_TYPE_CAR = 0x03; + public final static byte UI_MODE_TYPE_TELEVISION = 0x04; + public final static byte UI_MODE_TYPE_APPLIANCE = 0x05; + public final static byte UI_MODE_TYPE_WATCH = 0x06; + public final static byte UI_MODE_TYPE_VR_HEADSET = 0x07; + + // start - miui + public final static byte UI_MODE_TYPE_GODZILLAUI = 0x0b; + public final static byte UI_MODE_TYPE_SMALLUI = 0x0c; + public final static byte UI_MODE_TYPE_MEDIUMUI = 0x0d; + public final static byte UI_MODE_TYPE_LARGEUI = 0x0e; + public final static byte UI_MODE_TYPE_HUGEUI = 0x0f; + // end - miui + + public final static byte MASK_UI_MODE_NIGHT = 0x30; + public final static byte UI_MODE_NIGHT_ANY = 0x00; + public final static byte UI_MODE_NIGHT_NO = 0x10; + public final static byte UI_MODE_NIGHT_YES = 0x20; + + public final static byte COLOR_HDR_MASK = 0xC; + public final static byte COLOR_HDR_NO = 0x4; + public final static byte COLOR_HDR_SHIFT = 0x2; + public final static byte COLOR_HDR_UNDEFINED = 0x0; + public final static byte COLOR_HDR_YES = 0x8; + + public final static byte COLOR_UNDEFINED = 0x0; + + public final static byte COLOR_WIDE_UNDEFINED = 0x0; + public final static byte COLOR_WIDE_NO = 0x1; + public final static byte COLOR_WIDE_YES = 0x2; + public final static byte COLOR_WIDE_MASK = 0x3; + + private static final Logger LOG = LoggerFactory.getLogger(EntryConfig.class); } From 2e9039da4eca7c02c9361517615a22ed263fecd2 Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Fri, 22 Mar 2019 09:26:29 +0100 Subject: [PATCH 07/25] fix(gui): show java version, instead of VM version in about dialog (PR #489) --- jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java index 4659aab39..a32e9a290 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/AboutDialog.java @@ -34,7 +34,7 @@ class AboutDialog extends JDialog { version.setAlignmentX(0.5f); String javaVm = System.getProperty("java.vm.name"); - String javaVer = System.getProperty("java.vm.version"); + String javaVer = System.getProperty("java.version"); javaVm = javaVm == null ? "" : javaVm; From 5f0dbf856b5dcb4c8d71ead6a24c2c0c44b32dab Mon Sep 17 00:00:00 2001 From: tRuNKator <34552981+tRuNKator@users.noreply.github.com> Date: Fri, 22 Mar 2019 16:54:22 +0500 Subject: [PATCH 08/25] fix: don't rename R class fields alias (PR #492) * fix: R class fields alias * implemented with clearer approach --- jadx-core/src/main/java/jadx/core/deobf/Deobfuscator.java | 3 +++ jadx-core/src/main/java/jadx/core/dex/attributes/AFlag.java | 1 + .../java/jadx/core/utils/android/AndroidResourcesUtils.java | 2 ++ 3 files changed, 6 insertions(+) diff --git a/jadx-core/src/main/java/jadx/core/deobf/Deobfuscator.java b/jadx-core/src/main/java/jadx/core/deobf/Deobfuscator.java index e555b05de..8949dd6f4 100644 --- a/jadx-core/src/main/java/jadx/core/deobf/Deobfuscator.java +++ b/jadx-core/src/main/java/jadx/core/deobf/Deobfuscator.java @@ -11,6 +11,7 @@ import java.util.Map; import java.util.Set; import java.util.TreeSet; +import jadx.core.dex.attributes.AFlag; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -225,6 +226,8 @@ public class Deobfuscator { clsInfo.rename(cls.dex().root(), fullName); } for (FieldNode field : cls.getFields()) { + if (field.contains(AFlag.DONT_RENAME)) + continue; renameField(field); } for (MethodNode mth : cls.getMethods()) { diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/AFlag.java b/jadx-core/src/main/java/jadx/core/dex/attributes/AFlag.java index 06d4824f1..1a4e3c61c 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/AFlag.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/AFlag.java @@ -19,6 +19,7 @@ public enum AFlag { DONT_SHRINK, DONT_INLINE, DONT_GENERATE, + DONT_RENAME, // do not rename during deobfuscation SKIP, REMOVE, diff --git a/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java b/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java index 3efb5125a..c5cd4bb2f 100644 --- a/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java +++ b/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java @@ -6,6 +6,7 @@ import java.util.Map; import java.util.TreeMap; import com.android.dx.rop.code.AccessFlags; +import jadx.core.dex.attributes.AFlag; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -124,6 +125,7 @@ public class AndroidResourcesUtils { if (fieldNode != null && !fieldNode.getName().equals(resName) && NameMapper.isValidIdentifier(resName)) { + fieldNode.add(AFlag.DONT_RENAME); fieldNode.getFieldInfo().setAlias(resName); } } From 16b6345c7f4bc6ee290763c031f26108d98f8624 Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Fri, 22 Mar 2019 15:36:13 +0100 Subject: [PATCH 09/25] test: migrate to JUnit 5 (PR #493) --- build.gradle | 8 +++++- .../test/java/jadx/cli/JadxCLIArgsTest.java | 2 +- .../api/JadxArgsValidatorOutDirsTest.java | 2 +- .../java/jadx/api/JadxDecompilerTest.java | 6 ++--- .../java/jadx/core/deobf/NameMapperTest.java | 2 +- .../jadx/core/dex/info/AccessInfoTest.java | 2 +- .../tests/functional/JadxClasspathTest.java | 24 ++++++++--------- .../functional/JadxVisitorsOrderTest.java | 2 +- .../tests/functional/TemplateFileTest.java | 2 +- .../tests/functional/TestIfCondition.java | 2 +- .../jadx/tests/functional/TypeMergeTest.java | 26 +++++++++---------- .../SimplifyVisitorStringBuilderTest.java | 2 +- .../jadx/tests/integration/TestArgInline.java | 2 +- .../jadx/tests/integration/TestClassGen.java | 2 +- .../tests/integration/TestDuplicateCast.java | 2 +- .../tests/integration/TestFloatValue.java | 2 +- .../integration/TestRedundantBrackets.java | 2 +- .../integration/TestRedundantReturn.java | 2 +- .../tests/integration/TestReturnWrapping.java | 2 +- .../integration/TestStaticFieldsInit.java | 2 +- .../tests/integration/TestStaticMethod.java | 2 +- .../TestStringBuilderElimination.java | 2 +- .../jadx/tests/integration/TestWrongCode.java | 2 +- .../annotations/TestAnnotations.java | 2 +- .../annotations/TestAnnotations2.java | 2 +- .../annotations/TestParamAnnotations.java | 2 +- .../tests/integration/arith/TestArith.java | 2 +- .../tests/integration/arith/TestArith3.java | 2 +- .../integration/arith/TestArithConst.java | 2 +- .../tests/integration/arith/TestArithNot.java | 2 +- .../integration/arith/TestFieldIncrement.java | 2 +- .../arith/TestFieldIncrement2.java | 2 +- .../arith/TestFieldIncrement3.java | 2 +- .../integration/arith/TestSpecialValues.java | 2 +- .../integration/arrays/TestArrayFill.java | 2 +- .../integration/arrays/TestArrayFill2.java | 2 +- .../arrays/TestArrayFillConstReplace.java | 2 +- .../tests/integration/arrays/TestArrays.java | 2 +- .../tests/integration/arrays/TestArrays2.java | 2 +- .../tests/integration/arrays/TestArrays3.java | 2 +- .../tests/integration/arrays/TestArrays4.java | 2 +- .../integration/conditions/TestCmpOp.java | 2 +- .../integration/conditions/TestCmpOp2.java | 2 +- .../integration/conditions/TestComplexIf.java | 2 +- .../conditions/TestConditions.java | 2 +- .../conditions/TestConditions10.java | 2 +- .../conditions/TestConditions11.java | 2 +- .../conditions/TestConditions12.java | 2 +- .../conditions/TestConditions13.java | 2 +- .../conditions/TestConditions14.java | 2 +- .../conditions/TestConditions15.java | 2 +- .../conditions/TestConditions16.java | 2 +- .../conditions/TestConditions2.java | 2 +- .../conditions/TestConditions3.java | 2 +- .../conditions/TestConditions4.java | 2 +- .../conditions/TestConditions5.java | 2 +- .../conditions/TestConditions6.java | 2 +- .../conditions/TestConditions7.java | 2 +- .../conditions/TestConditions8.java | 2 +- .../conditions/TestConditions9.java | 2 +- .../integration/conditions/TestElseIf.java | 2 +- .../integration/conditions/TestNestedIf.java | 2 +- .../integration/conditions/TestNestedIf2.java | 2 +- .../conditions/TestSimpleConditions.java | 2 +- .../integration/conditions/TestTernary.java | 2 +- .../integration/conditions/TestTernary2.java | 2 +- .../integration/conditions/TestTernary3.java | 2 +- .../conditions/TestTernaryInIf.java | 2 +- .../debuginfo/TestLineNumbers.java | 2 +- .../debuginfo/TestLineNumbers2.java | 2 +- .../debuginfo/TestReturnSourceLine.java | 2 +- .../debuginfo/TestVariablesNames.java | 2 +- .../integration/deobf/TestMthRename.java | 2 +- .../tests/integration/enums/TestEnums.java | 2 +- .../tests/integration/enums/TestEnums2.java | 2 +- .../tests/integration/enums/TestEnums3.java | 2 +- .../tests/integration/enums/TestEnums4.java | 2 +- .../integration/enums/TestEnumsInterface.java | 2 +- .../enums/TestEnumsWithConsts.java | 2 +- .../integration/enums/TestSwitchOverEnum.java | 2 +- .../enums/TestSwitchOverEnum2.java | 2 +- .../fallback/TestFallbackMode.java | 2 +- .../integration/generics/TestGenerics.java | 2 +- .../integration/generics/TestGenerics2.java | 2 +- .../integration/generics/TestGenerics3.java | 2 +- .../integration/generics/TestGenerics4.java | 2 +- .../integration/generics/TestGenerics6.java | 2 +- .../generics/TestImportGenericMap.java | 2 +- .../tests/integration/inline/TestInline.java | 2 +- .../tests/integration/inline/TestInline2.java | 2 +- .../tests/integration/inline/TestInline3.java | 2 +- .../tests/integration/inline/TestInline6.java | 2 +- .../integration/inline/TestInlineInLoop.java | 2 +- .../tests/integration/inline/TestIssue86.java | 2 +- .../inline/TestSyntheticInline.java | 2 +- .../inline/TestSyntheticInline2.java | 2 +- .../integration/inner/TestAnonymousClass.java | 2 +- .../inner/TestAnonymousClass10.java | 2 +- .../inner/TestAnonymousClass11.java | 2 +- .../inner/TestAnonymousClass12.java | 2 +- .../inner/TestAnonymousClass2.java | 2 +- .../inner/TestAnonymousClass3.java | 2 +- .../inner/TestAnonymousClass4.java | 2 +- .../inner/TestAnonymousClass5.java | 2 +- .../inner/TestAnonymousClass6.java | 2 +- .../inner/TestAnonymousClass7.java | 2 +- .../inner/TestAnonymousClass8.java | 2 +- .../inner/TestAnonymousClass9.java | 2 +- .../integration/inner/TestInner2Samples.java | 2 +- .../integration/inner/TestInnerClass.java | 2 +- .../integration/inner/TestInnerClass2.java | 2 +- .../integration/inner/TestInnerClass3.java | 2 +- .../integration/inner/TestInnerClass4.java | 2 +- .../integration/inner/TestInnerClass5.java | 2 +- ...estInnerClassFakeSyntheticConstructor.java | 2 +- .../TestInnerClassSyntheticConstructor.java | 2 +- .../inner/TestInnerClassSyntheticRename.java | 2 +- .../inner/TestOuterConstructorCall.java | 2 +- .../integration/inner/TestRFieldAccess.java | 2 +- .../integration/inner/TestRFieldRestore.java | 2 +- .../integration/inner/TestRFieldRestore2.java | 2 +- .../inner/TestSyntheticMthRename.java | 2 +- .../invoke/TestConstructorInvoke.java | 2 +- .../tests/integration/invoke/TestInvoke1.java | 2 +- .../integration/invoke/TestInvokeInCatch.java | 2 +- .../invoke/TestOverloadedMethodInvoke.java | 2 +- .../integration/invoke/TestSuperInvoke.java | 2 +- .../tests/integration/invoke/TestVarArg.java | 2 +- .../integration/loops/TestArrayForEach.java | 2 +- .../integration/loops/TestArrayForEach2.java | 2 +- .../loops/TestArrayForEachNegative.java | 2 +- .../loops/TestBreakInComplexIf.java | 2 +- .../loops/TestBreakInComplexIf2.java | 2 +- .../integration/loops/TestBreakInLoop.java | 2 +- .../integration/loops/TestBreakInLoop2.java | 2 +- .../integration/loops/TestBreakWithLabel.java | 2 +- .../integration/loops/TestContinueInLoop.java | 2 +- .../loops/TestContinueInLoop2.java | 2 +- .../integration/loops/TestDoWhileBreak.java | 2 +- .../integration/loops/TestEndlessLoop.java | 2 +- .../integration/loops/TestIfInLoop2.java | 2 +- .../integration/loops/TestIfInLoop3.java | 2 +- .../integration/loops/TestIndexForLoop.java | 2 +- .../loops/TestIterableForEach.java | 2 +- .../loops/TestIterableForEach2.java | 2 +- .../loops/TestIterableForEach3.java | 2 +- .../integration/loops/TestLoopCondition.java | 2 +- .../integration/loops/TestLoopCondition2.java | 2 +- .../integration/loops/TestLoopCondition3.java | 2 +- .../integration/loops/TestLoopCondition4.java | 2 +- .../integration/loops/TestLoopCondition5.java | 2 +- .../loops/TestLoopConditionInvoke.java | 2 +- .../integration/loops/TestLoopDetection.java | 2 +- .../integration/loops/TestLoopDetection2.java | 2 +- .../integration/loops/TestLoopDetection3.java | 2 +- .../integration/loops/TestLoopDetection4.java | 2 +- .../integration/loops/TestNestedLoops.java | 2 +- .../integration/loops/TestNestedLoops2.java | 2 +- .../integration/loops/TestNestedLoops3.java | 2 +- .../loops/TestSequentialLoops.java | 2 +- .../loops/TestSequentialLoops2.java | 2 +- .../integration/loops/TestTryCatchInLoop.java | 2 +- .../loops/TestTryCatchInLoop2.java | 2 +- .../names/TestDuplicatedNames.java | 2 +- .../integration/names/TestNameAssign2.java | 2 +- .../names/TestReservedClassNames.java | 2 +- .../integration/names/TestReservedNames.java | 2 +- .../names/TestSameMethodsNames.java | 2 +- .../others/TestBadMethodAccessModifiers.java | 2 +- .../integration/others/TestFieldInit.java | 2 +- .../integration/others/TestFieldInit2.java | 2 +- .../others/TestFieldInitInTryCatch.java | 2 +- .../tests/integration/others/TestIfInTry.java | 2 +- .../integration/others/TestIfTryInCatch.java | 2 +- .../integration/others/TestIssue13a.java | 2 +- .../integration/others/TestIssue13b.java | 2 +- .../integration/others/TestLoopInTry.java | 2 +- .../integration/others/TestLoopInTry2.java | 2 +- .../integration/switches/TestSwitch.java | 2 +- .../integration/switches/TestSwitch2.java | 2 +- .../integration/switches/TestSwitch3.java | 2 +- .../integration/switches/TestSwitchBreak.java | 2 +- .../switches/TestSwitchContinue.java | 2 +- .../switches/TestSwitchInLoop.java | 2 +- .../switches/TestSwitchLabels.java | 2 +- .../switches/TestSwitchNoDefault.java | 2 +- .../switches/TestSwitchReturnFromCase.java | 2 +- .../switches/TestSwitchReturnFromCase2.java | 2 +- .../switches/TestSwitchSimple.java | 2 +- .../TestSwitchWithFallThroughCase.java | 2 +- .../TestSwitchWithFallThroughCase2.java | 2 +- .../switches/TestSwitchWithTryCatch.java | 2 +- .../synchronize/TestSynchronized.java | 2 +- .../synchronize/TestSynchronized2.java | 2 +- .../synchronize/TestSynchronized3.java | 2 +- .../integration/trycatch/TestFinally.java | 2 +- .../integration/trycatch/TestFinally2.java | 2 +- .../trycatch/TestFinallyExtract.java | 2 +- .../trycatch/TestInlineInCatch.java | 2 +- .../trycatch/TestMultiExceptionCatch.java | 2 +- .../TestMultiExceptionCatchSameJump.java | 2 +- .../trycatch/TestNestedTryCatch.java | 2 +- .../integration/trycatch/TestTryCatch.java | 2 +- .../integration/trycatch/TestTryCatch2.java | 2 +- .../integration/trycatch/TestTryCatch3.java | 2 +- .../integration/trycatch/TestTryCatch4.java | 2 +- .../integration/trycatch/TestTryCatch5.java | 2 +- .../integration/trycatch/TestTryCatch6.java | 2 +- .../integration/trycatch/TestTryCatch7.java | 2 +- .../integration/trycatch/TestTryCatch8.java | 2 +- .../trycatch/TestTryCatchFinally.java | 2 +- .../trycatch/TestTryCatchFinally2.java | 2 +- .../trycatch/TestTryCatchFinally3.java | 2 +- .../trycatch/TestTryCatchFinally4.java | 2 +- .../trycatch/TestTryCatchFinally5.java | 2 +- .../trycatch/TestTryCatchFinally6.java | 2 +- .../trycatch/TestTryCatchInIf.java | 2 +- .../trycatch/TestTryCatchNoMove.java | 2 +- .../trycatch/TestTryCatchNoMoveExc2.java | 2 +- .../trycatch/TestTryCatchStartOnMove.java | 2 +- .../integration/types/TestTypeResolver.java | 2 +- .../integration/types/TestTypeResolver2.java | 2 +- .../integration/types/TestTypeResolver3.java | 2 +- .../integration/types/TestTypeResolver4.java | 2 +- .../usethis/TestDontInlineThis.java | 2 +- .../integration/usethis/TestInlineThis.java | 2 +- .../integration/usethis/TestInlineThis2.java | 2 +- .../integration/variables/TestVariables2.java | 2 +- .../integration/variables/TestVariables3.java | 2 +- .../integration/variables/TestVariables4.java | 2 +- .../integration/variables/TestVariables5.java | 2 +- .../variables/TestVariablesDefinitions.java | 2 +- .../variables/TestVariablesIfElseChain.java | 2 +- .../jadx/tests/smali/TestConstructor.java | 2 +- .../jadx/tests/smali/TestInlineVarArg.java | 2 +- .../test/java/jadx/tests/smali/TestN21.java | 2 +- .../java/jadx/gui/treemodel/JSourcesTest.java | 6 ++--- .../gui/utils/CertificateManagerTest.java | 6 ++--- 238 files changed, 273 insertions(+), 267 deletions(-) diff --git a/build.gradle b/build.gradle index e27970da9..7e33160ad 100644 --- a/build.gradle +++ b/build.gradle @@ -38,10 +38,16 @@ allprojects { compile 'org.slf4j:slf4j-api:1.7.26' testCompile 'ch.qos.logback:logback-classic:1.2.3' - testCompile 'junit:junit:4.12' testCompile 'org.hamcrest:hamcrest-library:2.1' testCompile 'org.mockito:mockito-core:2.25.0' testCompile 'org.spockframework:spock-core:1.1-groovy-2.4' + + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.1' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.1' + } + + test { + useJUnitPlatform() } repositories { diff --git a/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java b/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java index 7f8658fb4..c36825f31 100644 --- a/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java +++ b/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java @@ -1,6 +1,6 @@ package jadx.cli; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jadx-core/src/test/java/jadx/api/JadxArgsValidatorOutDirsTest.java b/jadx-core/src/test/java/jadx/api/JadxArgsValidatorOutDirsTest.java index e03775b27..236f5caf8 100644 --- a/jadx-core/src/test/java/jadx/api/JadxArgsValidatorOutDirsTest.java +++ b/jadx-core/src/test/java/jadx/api/JadxArgsValidatorOutDirsTest.java @@ -1,6 +1,6 @@ package jadx.api; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jadx-core/src/test/java/jadx/api/JadxDecompilerTest.java b/jadx-core/src/test/java/jadx/api/JadxDecompilerTest.java index 5c3814d8d..55a5e717e 100644 --- a/jadx-core/src/test/java/jadx/api/JadxDecompilerTest.java +++ b/jadx-core/src/test/java/jadx/api/JadxDecompilerTest.java @@ -2,13 +2,13 @@ package jadx.api; import java.io.File; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; public class JadxDecompilerTest { @Test - @Ignore + @Disabled public void testExampleUsage() { JadxArgs args = new JadxArgs(); args.getInputFiles().add(new File("test.apk")); diff --git a/jadx-core/src/test/java/jadx/core/deobf/NameMapperTest.java b/jadx-core/src/test/java/jadx/core/deobf/NameMapperTest.java index b5ff7b203..160536d00 100644 --- a/jadx-core/src/test/java/jadx/core/deobf/NameMapperTest.java +++ b/jadx-core/src/test/java/jadx/core/deobf/NameMapperTest.java @@ -1,6 +1,6 @@ package jadx.core.deobf; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static jadx.core.deobf.NameMapper.isValidIdentifier; import static jadx.core.deobf.NameMapper.removeInvalidChars; diff --git a/jadx-core/src/test/java/jadx/core/dex/info/AccessInfoTest.java b/jadx-core/src/test/java/jadx/core/dex/info/AccessInfoTest.java index 7fd7acc87..71e2c4b4f 100644 --- a/jadx-core/src/test/java/jadx/core/dex/info/AccessInfoTest.java +++ b/jadx-core/src/test/java/jadx/core/dex/info/AccessInfoTest.java @@ -1,7 +1,7 @@ package jadx.core.dex.info; import com.android.dx.rop.code.AccessFlags; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.info.AccessInfo.AFType; diff --git a/jadx-core/src/test/java/jadx/tests/functional/JadxClasspathTest.java b/jadx-core/src/test/java/jadx/tests/functional/JadxClasspathTest.java index 6b472f9cb..aae7423ad 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/JadxClasspathTest.java +++ b/jadx-core/src/test/java/jadx/tests/functional/JadxClasspathTest.java @@ -1,16 +1,5 @@ package jadx.tests.functional; -import java.io.IOException; - -import org.junit.Before; -import org.junit.Test; - -import jadx.core.clsp.ClspGraph; -import jadx.core.dex.instructions.args.ArgType; -import jadx.core.dex.nodes.DexNode; -import jadx.core.dex.nodes.RootNode; -import jadx.core.utils.exceptions.DecodeException; - import static jadx.core.dex.instructions.args.ArgType.STRING; import static jadx.core.dex.instructions.args.ArgType.object; import static org.junit.Assert.assertFalse; @@ -18,6 +7,17 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.io.IOException; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import jadx.core.clsp.ClspGraph; +import jadx.core.dex.instructions.args.ArgType; +import jadx.core.dex.nodes.DexNode; +import jadx.core.dex.nodes.RootNode; +import jadx.core.utils.exceptions.DecodeException; + public class JadxClasspathTest { private static final String JAVA_LANG_EXCEPTION = "java.lang.Exception"; @@ -26,7 +26,7 @@ public class JadxClasspathTest { private DexNode dex; private ClspGraph clsp; - @Before + @BeforeEach public void initClsp() throws IOException, DecodeException { clsp = new ClspGraph(); clsp.load(); diff --git a/jadx-core/src/test/java/jadx/tests/functional/JadxVisitorsOrderTest.java b/jadx-core/src/test/java/jadx/tests/functional/JadxVisitorsOrderTest.java index 23d9309dc..012c491f8 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/JadxVisitorsOrderTest.java +++ b/jadx-core/src/test/java/jadx/tests/functional/JadxVisitorsOrderTest.java @@ -5,7 +5,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jadx-core/src/test/java/jadx/tests/functional/TemplateFileTest.java b/jadx-core/src/test/java/jadx/tests/functional/TemplateFileTest.java index ec7ea0213..2b822235a 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/TemplateFileTest.java +++ b/jadx-core/src/test/java/jadx/tests/functional/TemplateFileTest.java @@ -1,6 +1,6 @@ package jadx.tests.functional; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.export.TemplateFile; diff --git a/jadx-core/src/test/java/jadx/tests/functional/TestIfCondition.java b/jadx-core/src/test/java/jadx/tests/functional/TestIfCondition.java index 9c251f40a..d139ab35c 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/TestIfCondition.java +++ b/jadx-core/src/test/java/jadx/tests/functional/TestIfCondition.java @@ -1,6 +1,6 @@ package jadx.tests.functional; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.instructions.IfNode; import jadx.core.dex.instructions.IfOp; diff --git a/jadx-core/src/test/java/jadx/tests/functional/TypeMergeTest.java b/jadx-core/src/test/java/jadx/tests/functional/TypeMergeTest.java index 2a9bd21ea..b6f18f18b 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/TypeMergeTest.java +++ b/jadx-core/src/test/java/jadx/tests/functional/TypeMergeTest.java @@ -1,17 +1,5 @@ package jadx.tests.functional; -import java.io.IOException; - -import org.junit.Before; -import org.junit.Test; - -import jadx.core.clsp.ClspGraph; -import jadx.core.dex.instructions.args.ArgType; -import jadx.core.dex.instructions.args.PrimitiveType; -import jadx.core.dex.nodes.DexNode; -import jadx.core.dex.nodes.RootNode; -import jadx.core.utils.exceptions.DecodeException; - import static jadx.core.dex.instructions.args.ArgType.BOOLEAN; import static jadx.core.dex.instructions.args.ArgType.BYTE; import static jadx.core.dex.instructions.args.ArgType.CHAR; @@ -32,11 +20,23 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.io.IOException; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import jadx.core.clsp.ClspGraph; +import jadx.core.dex.instructions.args.ArgType; +import jadx.core.dex.instructions.args.PrimitiveType; +import jadx.core.dex.nodes.DexNode; +import jadx.core.dex.nodes.RootNode; +import jadx.core.utils.exceptions.DecodeException; + public class TypeMergeTest { private DexNode dex; - @Before + @BeforeEach public void initClsp() throws IOException, DecodeException { ClspGraph clsp = new ClspGraph(); clsp.load(); diff --git a/jadx-core/src/test/java/jadx/tests/integration/SimplifyVisitorStringBuilderTest.java b/jadx-core/src/test/java/jadx/tests/integration/SimplifyVisitorStringBuilderTest.java index 5baf911d4..8e9a748c2 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/SimplifyVisitorStringBuilderTest.java +++ b/jadx-core/src/test/java/jadx/tests/integration/SimplifyVisitorStringBuilderTest.java @@ -4,7 +4,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.core.dex.visitors.SimplifyVisitor; import jadx.core.utils.exceptions.JadxException; import jadx.tests.api.IntegrationTest; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.containsString; import static org.junit.Assert.assertThat; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestArgInline.java b/jadx-core/src/test/java/jadx/tests/integration/TestArgInline.java index 488d75c68..58153b5ef 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestArgInline.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestArgInline.java @@ -1,6 +1,6 @@ package jadx.tests.integration; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java b/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java index df20e0504..5878fa08e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java @@ -1,6 +1,6 @@ package jadx.tests.integration; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestDuplicateCast.java b/jadx-core/src/test/java/jadx/tests/integration/TestDuplicateCast.java index 2450b300d..1cdbb6ea6 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestDuplicateCast.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestDuplicateCast.java @@ -2,7 +2,7 @@ package jadx.tests.integration; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.instructions.InsnType; import jadx.core.dex.instructions.args.InsnWrapArg; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestFloatValue.java b/jadx-core/src/test/java/jadx/tests/integration/TestFloatValue.java index 5cd7da9e6..195623189 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestFloatValue.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestFloatValue.java @@ -1,6 +1,6 @@ package jadx.tests.integration; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestRedundantBrackets.java b/jadx-core/src/test/java/jadx/tests/integration/TestRedundantBrackets.java index c37ab062d..edd17534d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestRedundantBrackets.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestRedundantBrackets.java @@ -1,6 +1,6 @@ package jadx.tests.integration; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestRedundantReturn.java b/jadx-core/src/test/java/jadx/tests/integration/TestRedundantReturn.java index 1aac4736c..81d52c1cf 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestRedundantReturn.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestRedundantReturn.java @@ -1,6 +1,6 @@ package jadx.tests.integration; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestReturnWrapping.java b/jadx-core/src/test/java/jadx/tests/integration/TestReturnWrapping.java index ae6596400..1772eab46 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestReturnWrapping.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestReturnWrapping.java @@ -1,6 +1,6 @@ package jadx.tests.integration; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java b/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java index 1aa20660d..a0669b1ef 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java @@ -1,6 +1,6 @@ package jadx.tests.integration; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestStaticMethod.java b/jadx-core/src/test/java/jadx/tests/integration/TestStaticMethod.java index 552048484..4bd505a0d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestStaticMethod.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestStaticMethod.java @@ -1,6 +1,6 @@ package jadx.tests.integration; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestStringBuilderElimination.java b/jadx-core/src/test/java/jadx/tests/integration/TestStringBuilderElimination.java index ad2c11e12..80a3c5239 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestStringBuilderElimination.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestStringBuilderElimination.java @@ -1,6 +1,6 @@ package jadx.tests.integration; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestWrongCode.java b/jadx-core/src/test/java/jadx/tests/integration/TestWrongCode.java index c175f851b..797cf210f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestWrongCode.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestWrongCode.java @@ -1,6 +1,6 @@ package jadx.tests.integration; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations.java b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations.java index 70be6b793..963e20be2 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations.java +++ b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations.java @@ -1,6 +1,6 @@ package jadx.tests.integration.annotations; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java index 1ddf284f2..2881195c7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java @@ -5,7 +5,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestParamAnnotations.java b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestParamAnnotations.java index 9738bd568..7a7228f58 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestParamAnnotations.java +++ b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestParamAnnotations.java @@ -5,7 +5,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith.java index d1ff231fb..07280ff93 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arith; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith3.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith3.java index 9ab664756..3937c266a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arith; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithConst.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithConst.java index 8476f3354..5a0dc8e20 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithConst.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithConst.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arith; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithNot.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithNot.java index dc7944077..2a719e966 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithNot.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithNot.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arith; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement.java index 1811c403b..ba6b7e08f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arith; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java index 0e2bba34e..2ce0dccf9 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arith; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement3.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement3.java index 166f43b41..7724d61ed 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement3.java @@ -2,7 +2,7 @@ package jadx.tests.integration.arith; import java.util.Random; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestSpecialValues.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestSpecialValues.java index 8a2f0a730..5ffc35785 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestSpecialValues.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestSpecialValues.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arith; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill.java index eda1c0998..38db8d846 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arrays; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java index 1904b8516..7f61bab43 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arrays; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFillConstReplace.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFillConstReplace.java index 8371016b6..462dd1cc2 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFillConstReplace.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFillConstReplace.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arrays; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays.java index 8b3587ac5..50effaaed 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arrays; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays2.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays2.java index 9f0235dab..880caed84 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arrays; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays3.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays3.java index c33112d4a..100fe5457 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.arrays; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays4.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays4.java index d2b5e7bdb..505421a1a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays4.java @@ -4,7 +4,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.junit.Assert.assertThat; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class TestArrays4 extends SmaliTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp.java index 0936b1529..98afee944 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp2.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp2.java index 92479b7be..86acafc00 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestComplexIf.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestComplexIf.java index 5ac1dab3f..f40c17d5b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestComplexIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestComplexIf.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions.java index 7434956d5..f246c746e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions10.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions10.java index df73596b2..236d231b2 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions10.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions10.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions11.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions11.java index ed2341eef..30beb92d3 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions11.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions11.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions12.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions12.java index fb92b6dde..60aaebaee 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions12.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions12.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions13.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions13.java index 58290fcfe..21478abe5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions13.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions13.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions14.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions14.java index 56b68e735..69b729b9e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions14.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions14.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions15.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions15.java index 8a84d6a8e..b26dc6690 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions15.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions15.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions16.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions16.java index 4e988aaf2..3fdb791f1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions16.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions16.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions2.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions2.java index 055b1dc7e..34da34677 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java index 455437709..86481233e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java @@ -3,7 +3,7 @@ package jadx.tests.integration.conditions; import java.util.List; import java.util.regex.Pattern; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions4.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions4.java index 3033e7108..15be7937c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions4.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions5.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions5.java index bfcaa2d3f..ee0e667ae 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions5.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions6.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions6.java index ce793964d..9d4a36151 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions6.java @@ -2,7 +2,7 @@ package jadx.tests.integration.conditions; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions7.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions7.java index 6ba5deb2c..6032c020f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions7.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions7.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions8.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions8.java index 4ce573a5a..55cf487ad 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions8.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions8.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions9.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions9.java index 3b0bd34e3..a661c3391 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions9.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions9.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestElseIf.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestElseIf.java index 52e2321ef..a5bf85204 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestElseIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestElseIf.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf.java index bbe4fbd49..c3659014d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java index 63cc64a35..79d5b513e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestSimpleConditions.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestSimpleConditions.java index d8a023599..0398ce295 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestSimpleConditions.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestSimpleConditions.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary.java index 3c6c5bf02..1c8cbd46e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java index 9047f58ab..1d9350b75 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary3.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary3.java index f0dece784..1918e12a5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.instructions.args.InsnArg; import jadx.core.dex.instructions.args.Named; diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernaryInIf.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernaryInIf.java index 67175bec4..4068ed2ca 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernaryInIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernaryInIf.java @@ -1,6 +1,6 @@ package jadx.tests.integration.conditions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers.java b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers.java index 4aa4576c7..7470ce8f1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers.java +++ b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers.java @@ -1,6 +1,6 @@ package jadx.tests.integration.debuginfo; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.codegen.CodeWriter; import jadx.core.dex.attributes.nodes.LineAttrNode; diff --git a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers2.java b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers2.java index aad9ad13c..d9e79e1cf 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers2.java @@ -3,7 +3,7 @@ package jadx.tests.integration.debuginfo; import java.lang.ref.WeakReference; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.codegen.CodeWriter; import jadx.core.dex.nodes.ClassNode; diff --git a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java index 823376166..7415c5491 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java +++ b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java @@ -1,6 +1,6 @@ package jadx.tests.integration.debuginfo; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.codegen.CodeWriter; import jadx.core.dex.attributes.nodes.LineAttrNode; diff --git a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestVariablesNames.java b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestVariablesNames.java index 098c4e5c0..9bbdccf65 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestVariablesNames.java +++ b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestVariablesNames.java @@ -1,6 +1,6 @@ package jadx.tests.integration.debuginfo; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/deobf/TestMthRename.java b/jadx-core/src/test/java/jadx/tests/integration/deobf/TestMthRename.java index 6bb21a288..667362e0b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/deobf/TestMthRename.java +++ b/jadx-core/src/test/java/jadx/tests/integration/deobf/TestMthRename.java @@ -1,6 +1,6 @@ package jadx.tests.integration.deobf; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums.java index 556faac67..f34062471 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums.java @@ -1,6 +1,6 @@ package jadx.tests.integration.enums; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums2.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums2.java index 2a3eee326..20a531e45 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.enums; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums3.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums3.java index 37f04fcf3..f0c7d977c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.enums; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums4.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums4.java index 6cc451712..3c32493d5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums4.java @@ -1,6 +1,6 @@ package jadx.tests.integration.enums; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java index f2831660d..1ddabcc6d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java @@ -1,6 +1,6 @@ package jadx.tests.integration.enums; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsWithConsts.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsWithConsts.java index d6ed1152d..52c8083c0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsWithConsts.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsWithConsts.java @@ -1,6 +1,6 @@ package jadx.tests.integration.enums; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum.java index af70110a5..fa71f8651 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum.java @@ -1,6 +1,6 @@ package jadx.tests.integration.enums; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum2.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum2.java index 482031d33..c414a6e7d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.enums; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/fallback/TestFallbackMode.java b/jadx-core/src/test/java/jadx/tests/integration/fallback/TestFallbackMode.java index 185e257c3..dc7c3deda 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/fallback/TestFallbackMode.java +++ b/jadx-core/src/test/java/jadx/tests/integration/fallback/TestFallbackMode.java @@ -1,6 +1,6 @@ package jadx.tests.integration.fallback; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics.java index dcc25ebfb..d206144a0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics.java @@ -2,7 +2,7 @@ package jadx.tests.integration.generics; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics2.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics2.java index 93282f037..8cab0d8d1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics2.java @@ -4,7 +4,7 @@ import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics3.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics3.java index 84d68bdfe..bfcf16515 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics3.java @@ -2,7 +2,7 @@ package jadx.tests.integration.generics; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics4.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics4.java index 5fc0b6d3f..a78a5dd06 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics4.java @@ -1,6 +1,6 @@ package jadx.tests.integration.generics; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java index debc0e0c4..4b8e59484 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java @@ -2,7 +2,7 @@ package jadx.tests.integration.generics; import java.util.Collection; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java index 0148c4a6f..767d06872 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java @@ -4,7 +4,7 @@ import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; import static org.junit.Assert.assertThat; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline.java index 088982bb9..c9c4706b8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inline; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline2.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline2.java index 59a90fd95..eb45d2dbf 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inline; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline3.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline3.java index 105309e1a..63eeef438 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inline; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline6.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline6.java index 83a6139c2..91148f463 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline6.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inline; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInlineInLoop.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInlineInLoop.java index e13a5a746..4802dcfd3 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInlineInLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInlineInLoop.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inline; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java index f789dfe5f..18c9f5763 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java @@ -3,7 +3,7 @@ package jadx.tests.integration.inline; import java.util.ArrayList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline.java index ed13fe892..c722dec10 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inline; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline2.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline2.java index 58e6a8c6c..036c14e8c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inline; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass.java index 40b6409be..fd4b6aebf 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass.java @@ -3,7 +3,7 @@ package jadx.tests.integration.inner; import java.io.File; import java.io.FilenameFilter; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass10.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass10.java index eb9e0dda2..e378676f8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass10.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass10.java @@ -2,7 +2,7 @@ package jadx.tests.integration.inner; import java.util.Random; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass11.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass11.java index e92edcd93..e99730992 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass11.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass11.java @@ -2,7 +2,7 @@ package jadx.tests.integration.inner; import java.util.Random; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass12.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass12.java index 9f41e89ec..51219ccf2 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass12.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass12.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java index 338b6889a..488366140 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java index 88e51dd6b..862564c96 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass4.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass4.java index 46150792b..d45cf04e1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass4.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java index bcfd0c83b..6ad80693c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java @@ -4,7 +4,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass6.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass6.java index 4d6b75751..22efd3ec8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass6.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass7.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass7.java index 50dd716e3..2f629ede0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass7.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass7.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass8.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass8.java index d0adca6f1..4ca2426f8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass8.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass8.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass9.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass9.java index e26c8bb79..39d07cd39 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass9.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass9.java @@ -3,7 +3,7 @@ package jadx.tests.integration.inner; import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInner2Samples.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInner2Samples.java index 30b467143..fd3cb4f4f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInner2Samples.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInner2Samples.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass.java index 93a8ee819..c78c9bf71 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass2.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass2.java index c27adde13..aef3481aa 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass2.java @@ -3,7 +3,7 @@ package jadx.tests.integration.inner; import java.util.Timer; import java.util.TimerTask; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass3.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass3.java index e06fc96ea..814e8432b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass4.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass4.java index 215e1a707..c37e34a91 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass4.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass5.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass5.java index 065725bce..eb0b42e2b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass5.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassFakeSyntheticConstructor.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassFakeSyntheticConstructor.java index 1a9a88021..76af381c8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassFakeSyntheticConstructor.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassFakeSyntheticConstructor.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticConstructor.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticConstructor.java index 7431c5eb0..9225252a5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticConstructor.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticConstructor.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticRename.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticRename.java index 240473567..886bb1c5d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticRename.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticRename.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestOuterConstructorCall.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestOuterConstructorCall.java index 4e2f2f2c1..6f5883507 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestOuterConstructorCall.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestOuterConstructorCall.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldAccess.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldAccess.java index 0db9653cb..176274ac0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldAccess.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldAccess.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore.java index 6967e8303..7036e4252 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore.java @@ -3,7 +3,7 @@ package jadx.tests.integration.inner; import java.util.HashMap; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore2.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore2.java index 6fc479c9a..721d6e7be 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore2.java @@ -3,7 +3,7 @@ package jadx.tests.integration.inner; import java.util.HashMap; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java index 2ca61e986..30005ce55 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java @@ -1,6 +1,6 @@ package jadx.tests.integration.inner; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestConstructorInvoke.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestConstructorInvoke.java index 308185e52..e96f38e1f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestConstructorInvoke.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestConstructorInvoke.java @@ -1,6 +1,6 @@ package jadx.tests.integration.invoke; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvoke1.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvoke1.java index 4e2758e0f..91e60c322 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvoke1.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvoke1.java @@ -2,7 +2,7 @@ package jadx.tests.integration.invoke; import java.io.IOException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvokeInCatch.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvokeInCatch.java index 66017c89c..a06a0ab2a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvokeInCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvokeInCatch.java @@ -2,7 +2,7 @@ package jadx.tests.integration.invoke; import java.io.IOException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestOverloadedMethodInvoke.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestOverloadedMethodInvoke.java index e34e80835..fe47a9aea 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestOverloadedMethodInvoke.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestOverloadedMethodInvoke.java @@ -1,6 +1,6 @@ package jadx.tests.integration.invoke; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestSuperInvoke.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestSuperInvoke.java index e71fca13f..b24bd6f44 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestSuperInvoke.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestSuperInvoke.java @@ -1,6 +1,6 @@ package jadx.tests.integration.invoke; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestVarArg.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestVarArg.java index 38152fa6b..9d9edb05f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestVarArg.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestVarArg.java @@ -1,6 +1,6 @@ package jadx.tests.integration.invoke; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach.java index 103c5ad55..268e8765d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach2.java index e7695c471..fd6b9af7e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEachNegative.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEachNegative.java index 3ad3192d6..0103e683f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEachNegative.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEachNegative.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf.java index c9658c8ef..1dbd84c37 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf.java @@ -3,7 +3,7 @@ package jadx.tests.integration.loops; import java.util.HashMap; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf2.java index c9f1b024b..7b9814afd 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf2.java @@ -3,7 +3,7 @@ package jadx.tests.integration.loops; import java.util.Arrays; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop.java index fd83b6cad..55fbd1047 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop2.java index 8f964ac2a..3f219836e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop2.java @@ -2,7 +2,7 @@ package jadx.tests.integration.loops; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakWithLabel.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakWithLabel.java index 91cfe231c..9408c358b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakWithLabel.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakWithLabel.java @@ -2,7 +2,7 @@ package jadx.tests.integration.loops; import java.lang.reflect.Method; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop.java index 26ee681f5..fd27f3b67 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop2.java index de7b54fea..3f2ceb370 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.attributes.AType; import jadx.core.dex.instructions.InsnType; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestDoWhileBreak.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestDoWhileBreak.java index 040d951f9..76811cdc1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestDoWhileBreak.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestDoWhileBreak.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestEndlessLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestEndlessLoop.java index cc463ed7f..340fc31c5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestEndlessLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestEndlessLoop.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop2.java index 4e2f3fc2c..7389d9dfe 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop3.java index d86de34d1..aa9f47fda 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexForLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexForLoop.java index a7a67c881..bb904a0db 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexForLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexForLoop.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach.java index f43b852e1..6ab3296df 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach2.java index 7282a932a..321417071 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach2.java @@ -3,7 +3,7 @@ package jadx.tests.integration.loops; import java.io.IOException; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach3.java index 95acff4ec..e48c47d82 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach3.java @@ -2,7 +2,7 @@ package jadx.tests.integration.loops; import java.util.Set; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition.java index bc5f89935..af29b24e8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition2.java index 713c0698a..c25e11a51 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition3.java index e76a946cb..d45639699 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition4.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition4.java index a1fa71e90..d9005c1eb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition4.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition5.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition5.java index 5f3a97354..9683734c4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition5.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopConditionInvoke.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopConditionInvoke.java index dbfca8f9d..377658790 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopConditionInvoke.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopConditionInvoke.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection.java index 606a9dad1..67e11d13b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection2.java index bc22f8c33..ad021f430 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java index 152d3ab02..c0729e626 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection4.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection4.java index 91e724e2a..e8af8c106 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection4.java @@ -2,7 +2,7 @@ package jadx.tests.integration.loops; import java.util.Iterator; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops.java index 2edc6aedd..5fa0fc9d4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops.java @@ -2,7 +2,7 @@ package jadx.tests.integration.loops; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops2.java index 90067a23c..222be0cdf 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops2.java @@ -2,7 +2,7 @@ package jadx.tests.integration.loops; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops3.java index f6b13e2a7..fa68afae4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops.java index e064369ef..f78974ee0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops2.java index 4bc68418b..6a5688034 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop.java index c8a3059b5..264a0b045 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop.java @@ -1,6 +1,6 @@ package jadx.tests.integration.loops; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop2.java index 58e8b0d4a..14cf93bb4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop2.java @@ -3,7 +3,7 @@ package jadx.tests.integration.loops; import java.util.HashMap; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestDuplicatedNames.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestDuplicatedNames.java index 75684d896..6bd45f321 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/names/TestDuplicatedNames.java +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestDuplicatedNames.java @@ -1,6 +1,6 @@ package jadx.tests.integration.names; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestNameAssign2.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestNameAssign2.java index 7a9ef713c..ffd13fc37 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/names/TestNameAssign2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestNameAssign2.java @@ -5,7 +5,7 @@ import java.util.Deque; import java.util.LinkedList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.ClassNode; diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java index b29baa63f..4928b67e7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java @@ -1,6 +1,6 @@ package jadx.tests.integration.names; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedNames.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedNames.java index 70cbb57c6..ffb6749d8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedNames.java +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedNames.java @@ -1,6 +1,6 @@ package jadx.tests.integration.names; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestSameMethodsNames.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestSameMethodsNames.java index e052bf62d..18c7ce2a7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/names/TestSameMethodsNames.java +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestSameMethodsNames.java @@ -1,6 +1,6 @@ package jadx.tests.integration.names; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java index f267d5eb9..643182083 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java @@ -1,6 +1,6 @@ package jadx.tests.integration.others; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit.java index fe399efe5..5919d4f2e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit2.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit2.java index 9b0399e23..79e6778fa 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.others; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInitInTryCatch.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInitInTryCatch.java index a76769996..f5bed2647 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInitInTryCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInitInTryCatch.java @@ -3,7 +3,7 @@ package jadx.tests.integration.others; import java.net.MalformedURLException; import java.net.URL; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestIfInTry.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestIfInTry.java index c47211b12..12c3e3b9e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestIfInTry.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestIfInTry.java @@ -3,7 +3,7 @@ package jadx.tests.integration.others; import java.io.File; import java.io.IOException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestIfTryInCatch.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestIfTryInCatch.java index 7ec6ff9f7..c8da6d28d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestIfTryInCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestIfTryInCatch.java @@ -1,6 +1,6 @@ package jadx.tests.integration.others; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java index 88ac0089b..2a122a1b4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java @@ -3,7 +3,7 @@ package jadx.tests.integration.others; import java.lang.reflect.Field; import java.util.HashMap; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13b.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13b.java index ffc110668..04478033a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13b.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13b.java @@ -6,7 +6,7 @@ import java.io.IOException; import java.util.Properties; import java.util.concurrent.CountDownLatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry.java index 25b753d65..eeefef3ed 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry.java @@ -1,6 +1,6 @@ package jadx.tests.integration.others; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry2.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry2.java index 93c9468fd..18975426c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry2.java @@ -5,7 +5,7 @@ import java.io.EOFException; import com.android.dex.Code; import com.android.dx.io.instructions.DecodedInstruction; import com.android.dx.io.instructions.ShortArrayCodeInput; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.core.dex.nodes.DexNode; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch.java index 44de3786a..c47745fe7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch2.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch2.java index 335509c52..8e25e4b7c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch3.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch3.java index f57c4bbc5..2d96066fe 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchBreak.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchBreak.java index 6b3db1059..ef1c28ef0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchBreak.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchBreak.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchContinue.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchContinue.java index 3775dce46..ec64a4249 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchContinue.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchContinue.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchInLoop.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchInLoop.java index 362e32e8a..43b2b0584 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchInLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchInLoop.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchLabels.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchLabels.java index c7ebc7f44..d8ac44fa1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchLabels.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchLabels.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchNoDefault.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchNoDefault.java index b6eef55ca..a94430e9d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchNoDefault.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchNoDefault.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase.java index 304757627..18ae2b79f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase2.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase2.java index 383820ade..9bb3096cf 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase2.java @@ -2,7 +2,7 @@ package jadx.tests.integration.switches; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.containsString; import static org.junit.Assert.assertFalse; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchSimple.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchSimple.java index c695b64ac..08ced444f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchSimple.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchSimple.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase.java index 1eb65ad9c..59a78d243 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase2.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase2.java index 29cef0222..c166a5efb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java index ada4979dd..00336c65c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java @@ -1,6 +1,6 @@ package jadx.tests.integration.switches; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized.java b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized.java index dcf23d424..8a9fe7f7a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized.java +++ b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized.java @@ -1,6 +1,6 @@ package jadx.tests.integration.synchronize; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java index 17493af2f..082632801 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.synchronize; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized3.java b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized3.java index 62be9249f..aad9c59be 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.synchronize; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally.java index 72cb20947..636473ede 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java index d451a12f7..818132ff5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java @@ -4,7 +4,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinallyExtract.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinallyExtract.java index aab5a0f80..fdf354bd0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinallyExtract.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinallyExtract.java @@ -2,7 +2,7 @@ package jadx.tests.integration.trycatch; import java.io.IOException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestInlineInCatch.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestInlineInCatch.java index 00bfd297e..88856905d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestInlineInCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestInlineInCatch.java @@ -2,7 +2,7 @@ package jadx.tests.integration.trycatch; import java.io.File; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch.java index 8c7970927..78ba83756 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch.java @@ -3,7 +3,7 @@ package jadx.tests.integration.trycatch; import java.security.ProviderException; import java.time.DateTimeException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatchSameJump.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatchSameJump.java index 6081f810f..dfa11e625 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatchSameJump.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatchSameJump.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestNestedTryCatch.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestNestedTryCatch.java index e9e7a57ed..d9bb29c04 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestNestedTryCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestNestedTryCatch.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch.java index e8f243120..ea64ccdbe 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch2.java index 993b58c43..80857d995 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch3.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch3.java index d5cd0f40a..65ceeaf52 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch4.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch4.java index 4958b1b11..82a5d74b4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch4.java @@ -4,7 +4,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java index 73e0f9006..68ec7ea26 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java @@ -4,7 +4,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch6.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch6.java index 886db9c5f..b4272b0d3 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch6.java @@ -2,7 +2,7 @@ package jadx.tests.integration.trycatch; import java.io.IOException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java index b8ae43c24..1a3f82ace 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch8.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch8.java index dab9aea3c..1479ae18d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch8.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch8.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java index 6f204ced0..061374b11 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java index c960fb4ae..20b94a695 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java @@ -4,7 +4,7 @@ import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.clsp.NClass; import jadx.core.dex.nodes.ClassNode; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally3.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally3.java index 874ab8f93..1a437d889 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally3.java @@ -2,7 +2,7 @@ package jadx.tests.integration.trycatch; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally4.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally4.java index 0d1fd731d..d17767850 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally4.java @@ -5,7 +5,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java index 10547ea6c..52c2a111e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java @@ -3,7 +3,7 @@ package jadx.tests.integration.trycatch; import java.util.ArrayList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally6.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally6.java index 2094b6218..f4710dfda 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally6.java @@ -4,7 +4,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchInIf.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchInIf.java index bbc66c4c3..0a772d1aa 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchInIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchInIf.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMove.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMove.java index 83c4759b7..a29fb448d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMove.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMove.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMoveExc2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMoveExc2.java index fad6bb631..cbf4de4cb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMoveExc2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMoveExc2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchStartOnMove.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchStartOnMove.java index 468a3a243..37e2234fd 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchStartOnMove.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchStartOnMove.java @@ -1,6 +1,6 @@ package jadx.tests.integration.trycatch; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver.java b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver.java index dcbb37614..742d3a8b4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver.java +++ b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver.java @@ -1,6 +1,6 @@ package jadx.tests.integration.types; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver2.java b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver2.java index 897d86206..13cde790d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver2.java @@ -2,7 +2,7 @@ package jadx.tests.integration.types; import java.io.IOException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java index 850a60805..09cf65007 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.types; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver4.java b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver4.java index 3aac73e44..d8f1579e7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver4.java @@ -2,7 +2,7 @@ package jadx.tests.integration.types; import java.util.Arrays; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestDontInlineThis.java b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestDontInlineThis.java index db8710c6f..a155692fc 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestDontInlineThis.java +++ b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestDontInlineThis.java @@ -2,7 +2,7 @@ package jadx.tests.integration.usethis; import java.util.Random; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis.java b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis.java index 93f5239f0..e44662200 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis.java +++ b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis.java @@ -1,6 +1,6 @@ package jadx.tests.integration.usethis; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis2.java b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis2.java index ff68382bc..865f327aa 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis2.java @@ -2,7 +2,7 @@ package jadx.tests.integration.usethis; import java.util.Objects; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables2.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables2.java index a507be136..2949f901d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables2.java @@ -1,6 +1,6 @@ package jadx.tests.integration.variables; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables3.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables3.java index 513d7e9d6..8ff5d4f79 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables3.java @@ -1,6 +1,6 @@ package jadx.tests.integration.variables; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java index 7d298251b..b03a92f08 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java @@ -3,7 +3,7 @@ package jadx.tests.integration.variables; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables5.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables5.java index 3fe200d39..93ad53c0a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables5.java @@ -1,6 +1,6 @@ package jadx.tests.integration.variables; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesDefinitions.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesDefinitions.java index 487c87700..ca7c06fa1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesDefinitions.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesDefinitions.java @@ -2,7 +2,7 @@ package jadx.tests.integration.variables; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import jadx.core.dex.nodes.ClassNode; diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesIfElseChain.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesIfElseChain.java index 4a4ba32ff..6a2620458 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesIfElseChain.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesIfElseChain.java @@ -1,6 +1,6 @@ package jadx.tests.integration.variables; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; diff --git a/jadx-core/src/test/java/jadx/tests/smali/TestConstructor.java b/jadx-core/src/test/java/jadx/tests/smali/TestConstructor.java index 40d2b3040..4446c0c23 100644 --- a/jadx-core/src/test/java/jadx/tests/smali/TestConstructor.java +++ b/jadx-core/src/test/java/jadx/tests/smali/TestConstructor.java @@ -1,6 +1,6 @@ package jadx.tests.smali; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/smali/TestInlineVarArg.java b/jadx-core/src/test/java/jadx/tests/smali/TestInlineVarArg.java index dd6d4afcc..df81d627a 100644 --- a/jadx-core/src/test/java/jadx/tests/smali/TestInlineVarArg.java +++ b/jadx-core/src/test/java/jadx/tests/smali/TestInlineVarArg.java @@ -1,6 +1,6 @@ package jadx.tests.smali; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-core/src/test/java/jadx/tests/smali/TestN21.java b/jadx-core/src/test/java/jadx/tests/smali/TestN21.java index 02dfd2a71..be2070350 100644 --- a/jadx-core/src/test/java/jadx/tests/smali/TestN21.java +++ b/jadx-core/src/test/java/jadx/tests/smali/TestN21.java @@ -1,6 +1,6 @@ package jadx.tests.smali; -import org.junit.Test; +import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; diff --git a/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java b/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java index cf4630949..af364ec3e 100644 --- a/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java +++ b/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java @@ -3,8 +3,8 @@ package jadx.gui.treemodel; import java.util.Collections; import java.util.List; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import jadx.api.Factory; import jadx.api.JadxArgs; @@ -26,7 +26,7 @@ public class JSourcesTest { private JSources sources; private JadxDecompiler decompiler; - @Before + @BeforeEach public void init() { JRoot root = mock(JRoot.class); when(root.isFlatPackages()).thenReturn(false); diff --git a/jadx-gui/src/test/java/jadx/gui/utils/CertificateManagerTest.java b/jadx-gui/src/test/java/jadx/gui/utils/CertificateManagerTest.java index 0e0e15268..7782c589a 100644 --- a/jadx-gui/src/test/java/jadx/gui/utils/CertificateManagerTest.java +++ b/jadx-gui/src/test/java/jadx/gui/utils/CertificateManagerTest.java @@ -8,8 +8,8 @@ import java.security.cert.Certificate; import java.util.Collection; import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; public class CertificateManagerTest { private static final String CERTIFICATE_TEST_DIR = "certificate-test/"; @@ -32,7 +32,7 @@ public class CertificateManagerTest { } } - @Before + @BeforeEach public void setUp() { emptyPath = getResourcePath(EMPTY); certificateManagerRSA = getCertificateManger(RSA); From 5a940a3baf712660fd3620c902fb005eb875438e Mon Sep 17 00:00:00 2001 From: Skylot Date: Thu, 21 Mar 2019 21:56:05 +0300 Subject: [PATCH 10/25] build: update gitlab config --- .gitlab-ci.yml | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 247b141fe..6e323d456 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,25 +1,32 @@ -image: java:8 - variables: - GRADLE_OPTS: "-Dorg.gradle.daemon=false" - TERM: "dumb" + GRADLE_OPTS: "-Dorg.gradle.daemon=false" + TERM: "dumb" before_script: - - chmod +x gradlew + - chmod +x gradlew stages: - - build + - test + - check -build: - stage: build - before_script: - - export JADX_LAST_TAG="$(git describe --abbrev=0 --tags)" - - export JADX_VERSION="${JADX_LAST_TAG:1}-$(git rev-parse --short HEAD)" +java-8: + stage: test + image: openjdk:8 + script: ./gradlew clean build + +java-11: + stage: test + image: openjdk:11 + script: ./gradlew clean build + +check: + stage: check + image: openjdk:8 script: - - ./gradlew -g /cache/.gradle clean build jacocoTestReport - - ./gradlew -g /cache/.gradle clean sonarqube -Dsonar.host.url=$SONAR_HOST -Dsonar.organization=$SONAR_ORG -Dsonar.login=$SONAR_TOKEN - - ./gradlew -g /cache/.gradle clean dist + - export JADX_LAST_TAG="$(git describe --abbrev=0 --tags)" + - export JADX_VERSION="${JADX_LAST_TAG:1}-dev-$(git rev-parse --short HEAD)" + - ./gradlew clean sonarqube -Dsonar.host.url=$SONAR_HOST -Dsonar.organization=$SONAR_ORG -Dsonar.login=$SONAR_TOKEN -Dsonar.branch.name=dev + - ./gradlew clean dist artifacts: paths: - - build/jadx*.zip - - build/jadx*.exe + - build/jadx*.zip From 2c0725390ea8f81710d04c2bce1bd005c7e5e561 Mon Sep 17 00:00:00 2001 From: Skylot Date: Thu, 21 Mar 2019 21:23:18 +0300 Subject: [PATCH 11/25] fix: check variable usage before convert indexed loop to for-each variant (#483) --- .../visitors/regions/LoopRegionVisitor.java | 7 +- .../integration/loops/TestIndexedLoop.java | 71 +++++++++++++++++++ 2 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/LoopRegionVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/LoopRegionVisitor.java index 0f258e4c6..660133bb7 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/LoopRegionVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/LoopRegionVisitor.java @@ -116,7 +116,7 @@ public class LoopRegionVisitor extends AbstractVisitor implements IRegionVisitor // all checks passed initInsn.add(AFlag.SKIP); incrInsn.add(AFlag.SKIP); - LoopType arrForEach = checkArrayForEach(mth, initInsn, incrInsn, condition); + LoopType arrForEach = checkArrayForEach(mth, loopRegion, initInsn, incrInsn, condition); if (arrForEach != null) { loopRegion.setType(arrForEach); return true; @@ -125,7 +125,7 @@ public class LoopRegionVisitor extends AbstractVisitor implements IRegionVisitor return true; } - private static LoopType checkArrayForEach(MethodNode mth, InsnNode initInsn, InsnNode incrInsn, + private static LoopType checkArrayForEach(MethodNode mth, LoopRegion loopRegion, InsnNode initInsn, InsnNode incrInsn, IfCondition condition) { if (!(incrInsn instanceof ArithNode)) { return null; @@ -186,6 +186,9 @@ public class LoopRegionVisitor extends AbstractVisitor implements IRegionVisitor if (iterVar == null) { return null; } + if (!usedOnlyInLoop(mth, loopRegion, iterVar)) { + return null; + } // array for each loop confirmed len.add(AFlag.SKIP); diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java new file mode 100644 index 000000000..58454b40b --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java @@ -0,0 +1,71 @@ +package jadx.tests.integration.loops; + +import java.io.File; + +import org.junit.Test; + +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + +import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.nullValue; +import static org.junit.Assert.assertThat; + +public class TestIndexedLoop extends IntegrationTest { + + public static class TestCls { + + public File test(File[] files) { + File file = null; + if (files != null) { + int length = files.length; + if (length == 0) { + file = null; + } else { + for (int i = 0; i < length; i++) { + file = files[i]; + if (file.getName().equals("f")) { + break; + } + } + } + } else { + file = null; + } + if (file != null) { + file.deleteOnExit(); + } + return file; + } + + public void check() { + assertThat(test(null), nullValue()); + assertThat(test(new File[]{}), nullValue()); + + File file = new File("f"); + assertThat(test(new File[]{new File("a"), file}), is(file)); + } + } + + @Test + public void test() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, not(containsString("for (File file :"))); + assertThat(code, containsOne("for (int i = 0; i < length; i++) {")); + } + + @Test + public void testNoDebug() { + noDebugInfo(); + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, not(containsString("for (File file :"))); + assertThat(code, containsOne("for (int i = 0; i < length; i++) {")); + } +} From f72abb2867ff6831a809ef58a9ca39409e594186 Mon Sep 17 00:00:00 2001 From: Skylot Date: Fri, 22 Mar 2019 16:10:30 +0300 Subject: [PATCH 12/25] test: add test methods for load and check classes from smali files --- .../java/jadx/tests/api/IntegrationTest.java | 24 ++++++++--- .../test/java/jadx/tests/api/SmaliTest.java | 43 ++++++++++++++++--- .../inner/TestSyntheticMthRename.java | 4 +- .../others/TestBadMethodAccessModifiers.java | 4 +- 4 files changed, 56 insertions(+), 19 deletions(-) diff --git a/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java b/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java index de77a9773..d68ba5924 100644 --- a/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java +++ b/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java @@ -91,9 +91,21 @@ public abstract class IntegrationTest extends TestUtils { } public ClassNode getClassNodeFromFile(File file, String clsName) { + JadxDecompiler d = loadFiles(Collections.singletonList(file)); + RootNode root = JadxInternalAccess.getRoot(d); + + ClassNode cls = root.searchClassByName(clsName); + assertThat("Class not found: " + clsName, cls, notNullValue()); + assertThat(clsName, is(cls.getClassInfo().getFullName())); + + decompileAndCheckCls(d, cls); + return cls; + } + + protected JadxDecompiler loadFiles(List inputFiles) { JadxDecompiler d = null; try { - args.setInputFiles(Collections.singletonList(file)); + args.setInputFiles(inputFiles); d = new JadxDecompiler(args); d.load(); } catch (Exception e) { @@ -102,11 +114,10 @@ public abstract class IntegrationTest extends TestUtils { } RootNode root = JadxInternalAccess.getRoot(d); insertResources(root); + return d; + } - ClassNode cls = root.searchClassByName(clsName); - assertThat("Class not found: " + clsName, cls, notNullValue()); - assertThat(clsName, is(cls.getClassInfo().getFullName())); - + protected void decompileAndCheckCls(JadxDecompiler d, ClassNode cls) { if (unloadCls) { decompile(d, cls); } else { @@ -119,8 +130,7 @@ public abstract class IntegrationTest extends TestUtils { checkCode(cls); compile(cls); - runAutoCheck(clsName); - return cls; + runAutoCheck(cls.getClassInfo().getFullName()); } private void insertResources(RootNode root) { diff --git a/jadx-core/src/test/java/jadx/tests/api/SmaliTest.java b/jadx-core/src/test/java/jadx/tests/api/SmaliTest.java index 49658e4e0..5f66c3d5a 100644 --- a/jadx-core/src/test/java/jadx/tests/api/SmaliTest.java +++ b/jadx-core/src/test/java/jadx/tests/api/SmaliTest.java @@ -6,11 +6,16 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; +import org.jetbrains.annotations.Nullable; import org.jf.smali.Smali; import org.jf.smali.SmaliOptions; +import jadx.api.JadxDecompiler; import jadx.core.dex.nodes.ClassNode; +import static org.hamcrest.Matchers.notNullValue; +import static org.junit.Assert.assertThat; + public abstract class SmaliTest extends IntegrationTest { private static final String SMALI_TESTS_PROJECT = "jadx-core"; @@ -24,6 +29,10 @@ public abstract class SmaliTest extends IntegrationTest { return getClassNodeFromFile(outDex, clsName); } + protected ClassNode getClassNodeFromSmali(String clsName) { + return getClassNodeFromSmali(clsName, clsName); + } + protected ClassNode getClassNodeFromSmaliWithPath(String path, String clsName) { return getClassNodeFromSmali(path + File.separatorChar + clsName, clsName); } @@ -32,17 +41,37 @@ public abstract class SmaliTest extends IntegrationTest { return getClassNodeFromSmali(pkg + File.separatorChar + clsName, pkg + '.' + clsName); } - protected ClassNode getClassNodeFromSmaliFiles(String pkg, String testName, String clsName, String... smaliFileNames) { + protected ClassNode getClassNodeFromSmaliFiles(String pkg, String testName, String clsName) { File outDex = createTempFile(".dex"); - List smaliFiles = Arrays.stream(smaliFileNames) - .map(file -> getSmaliFile(pkg + File.separatorChar + testName + File.separatorChar + file)) - .collect(Collectors.toList()); - compileSmali(outDex, smaliFiles); + compileSmali(outDex, collectSmaliFiles(pkg, testName)); return getClassNodeFromFile(outDex, pkg + "." + clsName); } - protected ClassNode getClassNodeFromSmali(String clsName) { - return getClassNodeFromSmali(clsName, clsName); + protected JadxDecompiler loadSmaliFile(String pkg, String smaliFileName) { + File outDex = createTempFile(".dex"); + compileSmali(outDex, Collections.singletonList(getSmaliFile(pkg + File.separatorChar + smaliFileName))); + return loadFiles(Collections.singletonList(outDex)); + } + + protected JadxDecompiler loadSmaliFiles(String pkg, String testNameDir) { + File outDex = createTempFile(".dex"); + compileSmali(outDex, collectSmaliFiles(pkg, testNameDir)); + return loadFiles(Collections.singletonList(outDex)); + } + + private List collectSmaliFiles(String pkg, @Nullable String testDir) { + String smaliFilesDir; + if (testDir == null) { + smaliFilesDir = pkg + File.separatorChar; + } else { + smaliFilesDir = pkg + File.separatorChar + testDir + File.separatorChar; + } + File smaliDir = new File(SMALI_TESTS_DIR, smaliFilesDir); + String[] smaliFileNames = smaliDir.list((dir, name) -> name.endsWith(".smali")); + assertThat("Smali files not found", smaliFileNames, notNullValue()); + return Arrays.stream(smaliFileNames) + .map(file -> new File(smaliDir, file)) + .collect(Collectors.toList()); } private static File getSmaliFile(String baseName) { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java index 30005ce55..7f9f1549e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java @@ -33,9 +33,7 @@ public class TestSyntheticMthRename extends SmaliTest { @Test public void test() { - ClassNode cls = getClassNodeFromSmaliFiles("inner", "TestSyntheticMthRename", "TestCls", - "TestCls", "TestCls$I", "TestCls$A" - ); + ClassNode cls = getClassNodeFromSmaliFiles("inner", "TestSyntheticMthRename", "TestCls"); String code = cls.getCode().toString(); assertThat(code, containsOne("public String call(Runnable... p) {")); diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java index 643182083..141f3aec6 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java @@ -24,10 +24,10 @@ public class TestBadMethodAccessModifiers extends SmaliTest { } } */ + @Test public void test() { - ClassNode cls = getClassNodeFromSmaliFiles("others", "TestBadMethodAccessModifiers", "TestCls", - "TestCls$A", "TestCls$B", "TestCls"); + ClassNode cls = getClassNodeFromSmaliFiles("others", "TestBadMethodAccessModifiers", "TestCls"); String code = cls.getCode().toString(); assertThat(code, not(containsString("protected void test() {"))); From 5169dc52dd131a319add9a92f94d37f53e244794 Mon Sep 17 00:00:00 2001 From: Skylot Date: Fri, 22 Mar 2019 19:53:22 +0300 Subject: [PATCH 13/25] fix: remove invalid chars from class names (#488) --- .../main/java/jadx/core/deobf/NameMapper.java | 2 +- .../jadx/core/dex/visitors/RenameVisitor.java | 7 ++-- .../names/TestClassNameWithInvalidChar.java | 36 +++++++++++++++++++ .../TestClassNameWithInvalidChar/a.smali | 2 ++ .../TestClassNameWithInvalidChar/b.smali | 2 ++ 5 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/names/TestClassNameWithInvalidChar.java create mode 100644 jadx-core/src/test/smali/names/TestClassNameWithInvalidChar/a.smali create mode 100644 jadx-core/src/test/smali/names/TestClassNameWithInvalidChar/b.smali diff --git a/jadx-core/src/main/java/jadx/core/deobf/NameMapper.java b/jadx-core/src/main/java/jadx/core/deobf/NameMapper.java index 9262f051f..8d6ba6225 100644 --- a/jadx-core/src/main/java/jadx/core/deobf/NameMapper.java +++ b/jadx-core/src/main/java/jadx/core/deobf/NameMapper.java @@ -126,7 +126,7 @@ public class NameMapper { *

*/ public static String removeInvalidCharsMiddle(String name) { - if (isValidIdentifier(name) && isAllCharsPrintable(name)) { + if (isValidIdentifier(name)) { return name; } int len = name.length(); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java index 77822451f..2441119c3 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java @@ -92,10 +92,11 @@ public class RenameVisitor extends AbstractVisitor { if (firstChar == '$') { return 'C' + NameMapper.removeInvalidCharsMiddle(clsName); } - if (!NameMapper.isValidIdentifier(clsName)) { - return 'C' + clsName; + String cleanClsName = NameMapper.removeInvalidChars(clsName, "C"); + if (!NameMapper.isValidIdentifier(cleanClsName)) { + return 'C' + cleanClsName; } - return NameMapper.removeInvalidChars(clsName, "C"); + return cleanClsName; } private void checkFields(ClassNode cls) { diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestClassNameWithInvalidChar.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestClassNameWithInvalidChar.java new file mode 100644 index 000000000..7d0a98f88 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestClassNameWithInvalidChar.java @@ -0,0 +1,36 @@ +package jadx.tests.integration.names; + +import org.junit.jupiter.api.Test; + +import jadx.api.JadxDecompiler; +import jadx.api.JadxInternalAccess; +import jadx.core.dex.nodes.ClassNode; +import jadx.core.dex.nodes.RootNode; +import jadx.tests.api.SmaliTest; + +public class TestClassNameWithInvalidChar extends SmaliTest { + /* + public class do- {} + public class i-f {} + */ + + @Test + public void test() { + JadxDecompiler d = loadSmaliFiles("names", "TestClassNameWithInvalidChar"); + RootNode root = JadxInternalAccess.getRoot(d); + for (ClassNode cls : root.getClasses(false)) { + decompileAndCheckCls(d, cls); + } + } + + @Test + public void testWithDeobfuscation() { + enableDeobfuscation(); + + JadxDecompiler d = loadSmaliFiles("names", "TestClassNameWithInvalidChar"); + RootNode root = JadxInternalAccess.getRoot(d); + for (ClassNode cls : root.getClasses(false)) { + decompileAndCheckCls(d, cls); + } + } +} diff --git a/jadx-core/src/test/smali/names/TestClassNameWithInvalidChar/a.smali b/jadx-core/src/test/smali/names/TestClassNameWithInvalidChar/a.smali new file mode 100644 index 000000000..cdd749958 --- /dev/null +++ b/jadx-core/src/test/smali/names/TestClassNameWithInvalidChar/a.smali @@ -0,0 +1,2 @@ +.class public Ldo-; +.super Ljava/lang/Object; diff --git a/jadx-core/src/test/smali/names/TestClassNameWithInvalidChar/b.smali b/jadx-core/src/test/smali/names/TestClassNameWithInvalidChar/b.smali new file mode 100644 index 000000000..b2edc2f7d --- /dev/null +++ b/jadx-core/src/test/smali/names/TestClassNameWithInvalidChar/b.smali @@ -0,0 +1,2 @@ +.class public Li-f; +.super Ljava/lang/Object; From cdaecb31df9d893486d89db35ea064b6a5f98a3e Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Fri, 22 Mar 2019 18:10:48 +0100 Subject: [PATCH 14/25] chore: upgrade dependencies (PR #494) --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 7e33160ad..14eaf2653 100644 --- a/build.gradle +++ b/build.gradle @@ -39,8 +39,8 @@ allprojects { testCompile 'ch.qos.logback:logback-classic:1.2.3' testCompile 'org.hamcrest:hamcrest-library:2.1' - testCompile 'org.mockito:mockito-core:2.25.0' - testCompile 'org.spockframework:spock-core:1.1-groovy-2.4' + testCompile 'org.mockito:mockito-core:2.25.1' + testCompile 'org.spockframework:spock-core:1.3-groovy-2.5' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.1' From cd6f6b7a83f06eea7d6f5f29e1df7b92cb253a96 Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Fri, 22 Mar 2019 18:11:36 +0100 Subject: [PATCH 15/25] test: add NotYetImplemented feature (PR #495) --- .../src/test/java/jadx/NotYetImplemented.java | 24 ++++++++++++ .../java/jadx/NotYetImplementedExtension.java | 39 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 jadx-core/src/test/java/jadx/NotYetImplemented.java create mode 100644 jadx-core/src/test/java/jadx/NotYetImplementedExtension.java diff --git a/jadx-core/src/test/java/jadx/NotYetImplemented.java b/jadx-core/src/test/java/jadx/NotYetImplemented.java new file mode 100644 index 000000000..299f0d279 --- /dev/null +++ b/jadx-core/src/test/java/jadx/NotYetImplemented.java @@ -0,0 +1,24 @@ +package jadx; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Indicates a test which is known to fail. + * + *

This would cause a failure to be considered as success and a success as failure, + * with the benefit of updating the related issue when it has been resolved even unintentionally.

+ * + *

To have an effect, the test class must be annotated with: + * + * + * @ExtendWith(NotYetImplementedExtension.class) + * + *

+ */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE, ElementType.METHOD}) +public @interface NotYetImplemented { +} diff --git a/jadx-core/src/test/java/jadx/NotYetImplementedExtension.java b/jadx-core/src/test/java/jadx/NotYetImplementedExtension.java new file mode 100644 index 000000000..2a2ab2977 --- /dev/null +++ b/jadx-core/src/test/java/jadx/NotYetImplementedExtension.java @@ -0,0 +1,39 @@ +package jadx; + +import java.lang.reflect.Method; +import java.util.HashSet; +import java.util.Set; + +import org.junit.jupiter.api.extension.AfterTestExecutionCallback; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.api.extension.TestExecutionExceptionHandler; + +public class NotYetImplementedExtension implements AfterTestExecutionCallback, TestExecutionExceptionHandler { + + private Set knownFailedMethods = new HashSet<>(); + + @Override + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { + if (!isNotYetImplemented(context)) { + throw throwable; + } + knownFailedMethods.add(context.getTestMethod().get()); + } + + @Override + public void afterTestExecution(ExtensionContext context) throws Exception { + if (!knownFailedMethods.contains(context.getTestMethod().get()) + && isNotYetImplemented(context) + && !context.getExecutionException().isPresent()) { + throw new AssertionError("Test " + + context.getTestClass().get().getName() + '.' + context.getTestMethod().get().getName() + + " is marked as @NotYetImplemented, but passes!"); + } + } + + private static boolean isNotYetImplemented(ExtensionContext context) { + return context.getTestMethod().get().getAnnotation(NotYetImplemented.class) != null + || context.getTestClass().get().getAnnotation(NotYetImplemented.class) != null; + } + +} From b65c386b6adeef789d831e54f168ea86d35afb1c Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Fri, 22 Mar 2019 18:37:20 +0100 Subject: [PATCH 16/25] test: migrate all assertions to JUnit5 (PR #496) --- .../test/java/jadx/cli/JadxCLIArgsTest.java | 2 +- .../api/JadxArgsValidatorOutDirsTest.java | 2 +- .../java/jadx/core/deobf/NameMapperTest.java | 2 +- .../jadx/core/dex/info/AccessInfoTest.java | 4 +- .../src/test/java/jadx/tests/TestsTest.java | 49 +++++++++++++++++++ .../java/jadx/tests/api/IntegrationTest.java | 26 +++++----- .../test/java/jadx/tests/api/SmaliTest.java | 6 +-- .../jadx/tests/external/BaseExternalTest.java | 2 +- .../tests/functional/JadxClasspathTest.java | 4 +- .../functional/JadxVisitorsOrderTest.java | 2 +- .../tests/functional/TemplateFileTest.java | 2 +- .../tests/functional/TestIfCondition.java | 2 +- .../jadx/tests/functional/TypeMergeTest.java | 12 ++--- .../SimplifyVisitorStringBuilderTest.java | 2 +- .../jadx/tests/integration/TestArgInline.java | 2 +- .../jadx/tests/integration/TestClassGen.java | 2 +- .../tests/integration/TestDuplicateCast.java | 6 +-- .../tests/integration/TestFloatValue.java | 2 +- .../integration/TestRedundantBrackets.java | 2 +- .../integration/TestRedundantReturn.java | 4 +- .../tests/integration/TestReturnWrapping.java | 2 +- .../integration/TestStaticFieldsInit.java | 2 +- .../tests/integration/TestStaticMethod.java | 2 +- .../TestStringBuilderElimination.java | 2 +- .../jadx/tests/integration/TestWrongCode.java | 2 +- .../annotations/TestAnnotations.java | 2 +- .../annotations/TestAnnotations2.java | 2 +- .../annotations/TestParamAnnotations.java | 2 +- .../tests/integration/arith/TestArith.java | 2 +- .../tests/integration/arith/TestArith2.java | 2 +- .../tests/integration/arith/TestArith3.java | 2 +- .../integration/arith/TestArithConst.java | 2 +- .../tests/integration/arith/TestArithNot.java | 2 +- .../integration/arith/TestFieldIncrement.java | 2 +- .../arith/TestFieldIncrement2.java | 2 +- .../arith/TestFieldIncrement3.java | 2 +- .../integration/arith/TestSpecialValues.java | 2 +- .../integration/arrays/TestArrayFill.java | 2 +- .../integration/arrays/TestArrayFill2.java | 2 +- .../arrays/TestArrayFillConstReplace.java | 2 +- .../tests/integration/arrays/TestArrays.java | 2 +- .../tests/integration/arrays/TestArrays2.java | 2 +- .../tests/integration/arrays/TestArrays3.java | 2 +- .../tests/integration/arrays/TestArrays4.java | 2 +- .../integration/conditions/TestCmpOp.java | 2 +- .../integration/conditions/TestCmpOp2.java | 2 +- .../integration/conditions/TestComplexIf.java | 2 +- .../conditions/TestConditions.java | 2 +- .../conditions/TestConditions10.java | 2 +- .../conditions/TestConditions11.java | 2 +- .../conditions/TestConditions12.java | 2 +- .../conditions/TestConditions13.java | 2 +- .../conditions/TestConditions14.java | 2 +- .../conditions/TestConditions15.java | 2 +- .../conditions/TestConditions16.java | 6 +-- .../conditions/TestConditions3.java | 2 +- .../conditions/TestConditions4.java | 2 +- .../conditions/TestConditions5.java | 2 +- .../conditions/TestConditions6.java | 2 +- .../conditions/TestConditions7.java | 2 +- .../conditions/TestConditions8.java | 2 +- .../conditions/TestConditions9.java | 2 +- .../integration/conditions/TestElseIf.java | 2 +- .../integration/conditions/TestNestedIf.java | 2 +- .../integration/conditions/TestNestedIf2.java | 2 +- .../conditions/TestSimpleConditions.java | 2 +- .../integration/conditions/TestTernary.java | 4 +- .../integration/conditions/TestTernary2.java | 4 +- .../integration/conditions/TestTernary3.java | 2 +- .../conditions/TestTernaryInIf.java | 2 +- .../debuginfo/TestLineNumbers.java | 4 +- .../debuginfo/TestLineNumbers2.java | 2 +- .../debuginfo/TestReturnSourceLine.java | 6 +-- .../debuginfo/TestVariablesNames.java | 2 +- .../integration/deobf/TestMthRename.java | 2 +- .../tests/integration/enums/TestEnums.java | 2 +- .../tests/integration/enums/TestEnums2.java | 2 +- .../tests/integration/enums/TestEnums3.java | 4 +- .../tests/integration/enums/TestEnums4.java | 2 +- .../integration/enums/TestEnumsInterface.java | 2 +- .../enums/TestEnumsWithConsts.java | 2 +- .../integration/enums/TestSwitchOverEnum.java | 4 +- .../enums/TestSwitchOverEnum2.java | 4 +- .../fallback/TestFallbackMode.java | 2 +- .../integration/generics/TestGenerics.java | 2 +- .../integration/generics/TestGenerics2.java | 2 +- .../integration/generics/TestGenerics3.java | 2 +- .../integration/generics/TestGenerics4.java | 2 +- .../integration/generics/TestGenerics6.java | 2 +- .../generics/TestImportGenericMap.java | 2 +- .../tests/integration/inline/TestInline.java | 2 +- .../tests/integration/inline/TestInline2.java | 2 +- .../tests/integration/inline/TestInline3.java | 2 +- .../tests/integration/inline/TestInline6.java | 2 +- .../integration/inline/TestInlineInLoop.java | 2 +- .../tests/integration/inline/TestIssue86.java | 2 +- .../inline/TestSyntheticInline.java | 2 +- .../inline/TestSyntheticInline2.java | 2 +- .../integration/inner/TestAnonymousClass.java | 2 +- .../inner/TestAnonymousClass10.java | 2 +- .../inner/TestAnonymousClass11.java | 2 +- .../inner/TestAnonymousClass12.java | 2 +- .../inner/TestAnonymousClass2.java | 2 +- .../inner/TestAnonymousClass3.java | 2 +- .../inner/TestAnonymousClass4.java | 2 +- .../inner/TestAnonymousClass5.java | 2 +- .../inner/TestAnonymousClass6.java | 2 +- .../inner/TestAnonymousClass7.java | 2 +- .../inner/TestAnonymousClass8.java | 2 +- .../inner/TestAnonymousClass9.java | 2 +- .../integration/inner/TestInner2Samples.java | 2 +- .../integration/inner/TestInnerClass.java | 2 +- .../integration/inner/TestInnerClass2.java | 2 +- .../integration/inner/TestInnerClass3.java | 2 +- .../integration/inner/TestInnerClass4.java | 2 +- .../integration/inner/TestInnerClass5.java | 4 +- ...estInnerClassFakeSyntheticConstructor.java | 2 +- .../inner/TestInnerClassSyntheticRename.java | 2 +- .../inner/TestOuterConstructorCall.java | 2 +- .../integration/inner/TestRFieldAccess.java | 2 +- .../integration/inner/TestRFieldRestore.java | 2 +- .../integration/inner/TestRFieldRestore2.java | 2 +- .../inner/TestSyntheticMthRename.java | 2 +- .../invoke/TestConstructorInvoke.java | 2 +- .../tests/integration/invoke/TestInvoke1.java | 2 +- .../integration/invoke/TestInvokeInCatch.java | 2 +- .../invoke/TestOverloadedMethodInvoke.java | 4 +- .../integration/invoke/TestSuperInvoke.java | 4 +- .../tests/integration/invoke/TestVarArg.java | 2 +- .../integration/loops/TestArrayForEach.java | 2 +- .../integration/loops/TestArrayForEach2.java | 2 +- .../loops/TestArrayForEachNegative.java | 2 +- .../loops/TestBreakInComplexIf.java | 2 +- .../loops/TestBreakInComplexIf2.java | 2 +- .../integration/loops/TestBreakInLoop.java | 2 +- .../integration/loops/TestBreakInLoop2.java | 2 +- .../integration/loops/TestBreakWithLabel.java | 6 +-- .../integration/loops/TestContinueInLoop.java | 2 +- .../loops/TestContinueInLoop2.java | 2 +- .../integration/loops/TestDoWhileBreak.java | 2 +- .../integration/loops/TestEndlessLoop.java | 2 +- .../integration/loops/TestIfInLoop2.java | 2 +- .../integration/loops/TestIfInLoop3.java | 4 +- .../integration/loops/TestIndexForLoop.java | 2 +- .../integration/loops/TestIndexedLoop.java | 13 ++--- .../loops/TestIterableForEach.java | 2 +- .../loops/TestIterableForEach2.java | 2 +- .../loops/TestIterableForEach3.java | 2 +- .../integration/loops/TestLoopCondition.java | 2 +- .../integration/loops/TestLoopCondition2.java | 2 +- .../integration/loops/TestLoopCondition3.java | 2 +- .../integration/loops/TestLoopCondition4.java | 2 +- .../integration/loops/TestLoopCondition5.java | 2 +- .../loops/TestLoopConditionInvoke.java | 2 +- .../integration/loops/TestLoopDetection.java | 2 +- .../integration/loops/TestLoopDetection2.java | 2 +- .../integration/loops/TestLoopDetection3.java | 2 +- .../integration/loops/TestLoopDetection4.java | 2 +- .../integration/loops/TestNestedLoops.java | 2 +- .../integration/loops/TestNestedLoops2.java | 2 +- .../integration/loops/TestNestedLoops3.java | 4 +- .../loops/TestSequentialLoops.java | 2 +- .../loops/TestSequentialLoops2.java | 2 +- .../integration/loops/TestTryCatchInLoop.java | 4 +- .../loops/TestTryCatchInLoop2.java | 2 +- .../names/TestDuplicatedNames.java | 2 +- .../integration/names/TestNameAssign2.java | 2 +- .../names/TestReservedClassNames.java | 2 +- .../integration/names/TestReservedNames.java | 2 +- .../names/TestSameMethodsNames.java | 2 +- .../others/TestBadMethodAccessModifiers.java | 2 +- .../integration/others/TestFieldInit.java | 2 +- .../integration/others/TestFieldInit2.java | 2 +- .../others/TestFieldInitInTryCatch.java | 2 +- .../tests/integration/others/TestIfInTry.java | 2 +- .../integration/others/TestIfTryInCatch.java | 2 +- .../integration/others/TestIssue13a.java | 2 +- .../integration/others/TestIssue13b.java | 2 +- .../integration/others/TestLoopInTry.java | 2 +- .../integration/others/TestLoopInTry2.java | 2 +- .../integration/switches/TestSwitch.java | 4 +- .../integration/switches/TestSwitch2.java | 2 +- .../integration/switches/TestSwitch3.java | 2 +- .../integration/switches/TestSwitchBreak.java | 4 +- .../switches/TestSwitchContinue.java | 4 +- .../switches/TestSwitchInLoop.java | 4 +- .../switches/TestSwitchLabels.java | 2 +- .../switches/TestSwitchNoDefault.java | 2 +- .../switches/TestSwitchReturnFromCase.java | 4 +- .../switches/TestSwitchReturnFromCase2.java | 6 +-- .../switches/TestSwitchSimple.java | 4 +- .../TestSwitchWithFallThroughCase.java | 4 +- .../TestSwitchWithFallThroughCase2.java | 4 +- .../switches/TestSwitchWithTryCatch.java | 2 +- .../synchronize/TestSynchronized.java | 2 +- .../synchronize/TestSynchronized2.java | 2 +- .../synchronize/TestSynchronized3.java | 2 +- .../integration/trycatch/TestFinally.java | 2 +- .../integration/trycatch/TestFinally2.java | 2 +- .../trycatch/TestFinallyExtract.java | 2 +- .../trycatch/TestInlineInCatch.java | 2 +- .../trycatch/TestMultiExceptionCatch.java | 2 +- .../TestMultiExceptionCatchSameJump.java | 2 +- .../trycatch/TestNestedTryCatch.java | 2 +- .../integration/trycatch/TestTryCatch.java | 2 +- .../integration/trycatch/TestTryCatch2.java | 2 +- .../integration/trycatch/TestTryCatch3.java | 6 +-- .../integration/trycatch/TestTryCatch4.java | 2 +- .../integration/trycatch/TestTryCatch5.java | 2 +- .../integration/trycatch/TestTryCatch6.java | 4 +- .../integration/trycatch/TestTryCatch7.java | 2 +- .../integration/trycatch/TestTryCatch8.java | 2 +- .../trycatch/TestTryCatchFinally.java | 4 +- .../trycatch/TestTryCatchFinally2.java | 2 +- .../trycatch/TestTryCatchFinally3.java | 2 +- .../trycatch/TestTryCatchFinally4.java | 2 +- .../trycatch/TestTryCatchFinally5.java | 2 +- .../trycatch/TestTryCatchFinally6.java | 2 +- .../trycatch/TestTryCatchInIf.java | 4 +- .../trycatch/TestTryCatchNoMove.java | 2 +- .../trycatch/TestTryCatchNoMoveExc2.java | 2 +- .../trycatch/TestTryCatchStartOnMove.java | 2 +- .../integration/types/TestTypeResolver.java | 2 +- .../integration/types/TestTypeResolver2.java | 2 +- .../integration/types/TestTypeResolver3.java | 2 +- .../integration/types/TestTypeResolver4.java | 2 +- .../usethis/TestDontInlineThis.java | 2 +- .../integration/usethis/TestInlineThis.java | 2 +- .../integration/usethis/TestInlineThis2.java | 2 +- .../usethis/TestRedundantThis.java | 2 +- .../integration/variables/TestVariables2.java | 2 +- .../integration/variables/TestVariables3.java | 2 +- .../integration/variables/TestVariables4.java | 2 +- .../integration/variables/TestVariables5.java | 4 +- .../variables/TestVariablesDefinitions.java | 2 +- .../variables/TestVariablesIfElseChain.java | 2 +- .../jadx/tests/smali/TestConstructor.java | 2 +- .../jadx/tests/smali/TestInlineVarArg.java | 2 +- .../java/jadx/gui/treemodel/JSourcesTest.java | 2 +- .../gui/utils/CertificateManagerTest.java | 48 +++++++++--------- 240 files changed, 377 insertions(+), 323 deletions(-) create mode 100644 jadx-core/src/test/java/jadx/tests/TestsTest.java diff --git a/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java b/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java index c36825f31..8ae1e5891 100644 --- a/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java +++ b/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java @@ -5,7 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class JadxCLIArgsTest { diff --git a/jadx-core/src/test/java/jadx/api/JadxArgsValidatorOutDirsTest.java b/jadx-core/src/test/java/jadx/api/JadxArgsValidatorOutDirsTest.java index 236f5caf8..b23ec1861 100644 --- a/jadx-core/src/test/java/jadx/api/JadxArgsValidatorOutDirsTest.java +++ b/jadx-core/src/test/java/jadx/api/JadxArgsValidatorOutDirsTest.java @@ -8,7 +8,7 @@ import jadx.core.utils.files.FileUtils; import static jadx.core.utils.files.FileUtils.toFile; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class JadxArgsValidatorOutDirsTest { diff --git a/jadx-core/src/test/java/jadx/core/deobf/NameMapperTest.java b/jadx-core/src/test/java/jadx/core/deobf/NameMapperTest.java index 160536d00..5b3c2e4d6 100644 --- a/jadx-core/src/test/java/jadx/core/deobf/NameMapperTest.java +++ b/jadx-core/src/test/java/jadx/core/deobf/NameMapperTest.java @@ -6,7 +6,7 @@ import static jadx.core.deobf.NameMapper.isValidIdentifier; import static jadx.core.deobf.NameMapper.removeInvalidChars; import static jadx.core.deobf.NameMapper.removeInvalidCharsMiddle; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class NameMapperTest { diff --git a/jadx-core/src/test/java/jadx/core/dex/info/AccessInfoTest.java b/jadx-core/src/test/java/jadx/core/dex/info/AccessInfoTest.java index 71e2c4b4f..9e697ed8b 100644 --- a/jadx-core/src/test/java/jadx/core/dex/info/AccessInfoTest.java +++ b/jadx-core/src/test/java/jadx/core/dex/info/AccessInfoTest.java @@ -6,8 +6,8 @@ import org.junit.jupiter.api.Test; import jadx.core.dex.info.AccessInfo.AFType; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.hamcrest.MatcherAssert.assertThat; public class AccessInfoTest { diff --git a/jadx-core/src/test/java/jadx/tests/TestsTest.java b/jadx-core/src/test/java/jadx/tests/TestsTest.java new file mode 100644 index 000000000..65a960c2d --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/TestsTest.java @@ -0,0 +1,49 @@ +package jadx.tests; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; + +import org.junit.jupiter.api.Test; + +public class TestsTest { + + @Test + public void noJUnit4Asssertions() throws IOException { + noJUnit4Asssertions("."); + noJUnit4Asssertions("../jadx-cli"); + noJUnit4Asssertions("../jadx-gui"); + } + + private void noJUnit4Asssertions(String path) throws IOException { + Path dir = Paths.get(path, "src/test/java"); + assertTrue(Files.exists(dir)); + Files.walk(dir) + .filter(p -> p.getFileName().toString().endsWith(".java") + && !p.getFileName().toString().endsWith(TestsTest.class.getSimpleName() + ".java")) + .forEach(p -> { + try { + + List lines = Files.readAllLines(p); + + for (String line : lines) { + if (line.contains("org.junit.Assert")) { + String className = dir.relativize(p).toString(); + className = className.substring(0, className.length() - ".java".length()); + className = className.replace(File.separatorChar, '.'); + + fail("Test class " + className + " should be migrated to JUnit 5"); + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + } +} diff --git a/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java b/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java index d68ba5924..7e8562b81 100644 --- a/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java +++ b/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java @@ -40,10 +40,10 @@ import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.notNullValue; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; public abstract class IntegrationTest extends TestUtils { @@ -186,11 +186,13 @@ public abstract class IntegrationTest extends TestUtils { } protected static void checkCode(ClassNode cls) { - assertTrue("Inconsistent cls: " + cls, - !cls.contains(AFlag.INCONSISTENT_CODE) && !cls.contains(AType.JADX_ERROR)); + assertTrue( + !cls.contains(AFlag.INCONSISTENT_CODE) && !cls.contains(AType.JADX_ERROR), + "Inconsistent cls: " + cls); for (MethodNode mthNode : cls.getMethods()) { - assertTrue("Inconsistent method: " + mthNode, - !mthNode.contains(AFlag.INCONSISTENT_CODE) && !mthNode.contains(AType.JADX_ERROR)); + assertTrue( + !mthNode.contains(AFlag.INCONSISTENT_CODE) && !mthNode.contains(AType.JADX_ERROR), + "Inconsistent method: " + mthNode); } assertThat(cls.getCode().toString(), not(containsString("inconsistent"))); } @@ -266,7 +268,7 @@ public abstract class IntegrationTest extends TestUtils { try { dynamicCompiler = new DynamicCompiler(cls); boolean result = dynamicCompiler.compile(); - assertTrue("Compilation failed", result); + assertTrue(result, "Compilation failed"); System.out.println("Compilation: PASSED"); } catch (Exception e) { e.printStackTrace(); @@ -284,7 +286,7 @@ public abstract class IntegrationTest extends TestUtils { } public Method getReflectMethod(String method, Class... types) { - assertNotNull("dynamicCompiler not ready", dynamicCompiler); + assertNotNull(dynamicCompiler, "dynamicCompiler not ready"); try { return dynamicCompiler.getMethod(method, types); } catch (Exception e) { @@ -295,8 +297,8 @@ public abstract class IntegrationTest extends TestUtils { } public Object invoke(Method mth, Object... args) throws Exception { - assertNotNull("dynamicCompiler not ready", dynamicCompiler); - assertNotNull("unknown method", mth); + assertNotNull(dynamicCompiler, "dynamicCompiler not ready"); + assertNotNull(mth, "unknown method"); return dynamicCompiler.invoke(mth, args); } diff --git a/jadx-core/src/test/java/jadx/tests/api/SmaliTest.java b/jadx-core/src/test/java/jadx/tests/api/SmaliTest.java index 5f66c3d5a..dbc7b1133 100644 --- a/jadx-core/src/test/java/jadx/tests/api/SmaliTest.java +++ b/jadx-core/src/test/java/jadx/tests/api/SmaliTest.java @@ -1,5 +1,8 @@ package jadx.tests.api; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.notNullValue; + import java.io.File; import java.util.Arrays; import java.util.Collections; @@ -13,9 +16,6 @@ import org.jf.smali.SmaliOptions; import jadx.api.JadxDecompiler; import jadx.core.dex.nodes.ClassNode; -import static org.hamcrest.Matchers.notNullValue; -import static org.junit.Assert.assertThat; - public abstract class SmaliTest extends IntegrationTest { private static final String SMALI_TESTS_PROJECT = "jadx-core"; diff --git a/jadx-core/src/test/java/jadx/tests/external/BaseExternalTest.java b/jadx-core/src/test/java/jadx/tests/external/BaseExternalTest.java index 17dd03908..209baf50c 100644 --- a/jadx-core/src/test/java/jadx/tests/external/BaseExternalTest.java +++ b/jadx-core/src/test/java/jadx/tests/external/BaseExternalTest.java @@ -26,7 +26,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public abstract class BaseExternalTest extends IntegrationTest { private static final Logger LOG = LoggerFactory.getLogger(BaseExternalTest.class); diff --git a/jadx-core/src/test/java/jadx/tests/functional/JadxClasspathTest.java b/jadx-core/src/test/java/jadx/tests/functional/JadxClasspathTest.java index aae7423ad..847f75afd 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/JadxClasspathTest.java +++ b/jadx-core/src/test/java/jadx/tests/functional/JadxClasspathTest.java @@ -2,8 +2,8 @@ package jadx.tests.functional; import static jadx.core.dex.instructions.args.ArgType.STRING; import static jadx.core.dex.instructions.args.ArgType.object; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/jadx-core/src/test/java/jadx/tests/functional/JadxVisitorsOrderTest.java b/jadx-core/src/test/java/jadx/tests/functional/JadxVisitorsOrderTest.java index 012c491f8..4e433b1ee 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/JadxVisitorsOrderTest.java +++ b/jadx-core/src/test/java/jadx/tests/functional/JadxVisitorsOrderTest.java @@ -15,7 +15,7 @@ import jadx.core.dex.visitors.IDexTreeVisitor; import jadx.core.dex.visitors.JadxVisitor; import static org.hamcrest.Matchers.empty; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class JadxVisitorsOrderTest { diff --git a/jadx-core/src/test/java/jadx/tests/functional/TemplateFileTest.java b/jadx-core/src/test/java/jadx/tests/functional/TemplateFileTest.java index 2b822235a..74b4c357a 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/TemplateFileTest.java +++ b/jadx-core/src/test/java/jadx/tests/functional/TemplateFileTest.java @@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test; import jadx.core.export.TemplateFile; import static org.hamcrest.Matchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TemplateFileTest { diff --git a/jadx-core/src/test/java/jadx/tests/functional/TestIfCondition.java b/jadx-core/src/test/java/jadx/tests/functional/TestIfCondition.java index d139ab35c..3f3235f69 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/TestIfCondition.java +++ b/jadx-core/src/test/java/jadx/tests/functional/TestIfCondition.java @@ -20,7 +20,7 @@ import static jadx.core.dex.regions.conditions.IfCondition.merge; import static jadx.core.dex.regions.conditions.IfCondition.not; import static jadx.core.dex.regions.conditions.IfCondition.simplify; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIfCondition { diff --git a/jadx-core/src/test/java/jadx/tests/functional/TypeMergeTest.java b/jadx-core/src/test/java/jadx/tests/functional/TypeMergeTest.java index b6f18f18b..ab99dcc4d 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/TypeMergeTest.java +++ b/jadx-core/src/test/java/jadx/tests/functional/TypeMergeTest.java @@ -14,9 +14,9 @@ import static jadx.core.dex.instructions.args.ArgType.array; import static jadx.core.dex.instructions.args.ArgType.genericType; import static jadx.core.dex.instructions.args.ArgType.object; import static jadx.core.dex.instructions.args.ArgType.unknown; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -115,10 +115,10 @@ public class TypeMergeTest { ArgType res = ArgType.merge(dex, t1, t2); String msg = format(t1, t2, exp, res); if (exp == null) { - assertNull("Incorrect accept: " + msg, res); + assertNull(res, "Incorrect accept: " + msg); } else { - assertNotNull("Incorrect reject: " + msg, res); - assertTrue("Incorrect result: " + msg, exp.equals(res)); + assertNotNull(res, "Incorrect reject: " + msg); + assertTrue(exp.equals(res), "Incorrect result: " + msg); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/SimplifyVisitorStringBuilderTest.java b/jadx-core/src/test/java/jadx/tests/integration/SimplifyVisitorStringBuilderTest.java index 8e9a748c2..272993b82 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/SimplifyVisitorStringBuilderTest.java +++ b/jadx-core/src/test/java/jadx/tests/integration/SimplifyVisitorStringBuilderTest.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; /** * Test the StringBuilder simplification part of {@link SimplifyVisitor} diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestArgInline.java b/jadx-core/src/test/java/jadx/tests/integration/TestArgInline.java index 58153b5ef..ad41bdfbb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestArgInline.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestArgInline.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArgInline extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java b/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java index 5878fa08e..c3bc64664 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestClassGen extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestDuplicateCast.java b/jadx-core/src/test/java/jadx/tests/integration/TestDuplicateCast.java index 1cdbb6ea6..c1b04ee94 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestDuplicateCast.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestDuplicateCast.java @@ -14,9 +14,9 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Test duplicate 'check-cast' instruction produced because of bug in javac: diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestFloatValue.java b/jadx-core/src/test/java/jadx/tests/integration/TestFloatValue.java index 195623189..fd9c96420 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestFloatValue.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestFloatValue.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFloatValue extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestRedundantBrackets.java b/jadx-core/src/test/java/jadx/tests/integration/TestRedundantBrackets.java index edd17534d..3931ff252 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestRedundantBrackets.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestRedundantBrackets.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestRedundantBrackets extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestRedundantReturn.java b/jadx-core/src/test/java/jadx/tests/integration/TestRedundantReturn.java index 81d52c1cf..f08cf9f9e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestRedundantReturn.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestRedundantReturn.java @@ -7,8 +7,8 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.fail; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.fail; public class TestRedundantReturn extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestReturnWrapping.java b/jadx-core/src/test/java/jadx/tests/integration/TestReturnWrapping.java index 1772eab46..911ad5668 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestReturnWrapping.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestReturnWrapping.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestReturnWrapping extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java b/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java index a0669b1ef..bdcb18a15 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestStaticFieldsInit extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestStaticMethod.java b/jadx-core/src/test/java/jadx/tests/integration/TestStaticMethod.java index 4bd505a0d..7ee977c7e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestStaticMethod.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestStaticMethod.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestStaticMethod extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestStringBuilderElimination.java b/jadx-core/src/test/java/jadx/tests/integration/TestStringBuilderElimination.java index 80a3c5239..9d25c3d4b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestStringBuilderElimination.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestStringBuilderElimination.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestStringBuilderElimination extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestWrongCode.java b/jadx-core/src/test/java/jadx/tests/integration/TestWrongCode.java index 797cf210f..fbb19754a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestWrongCode.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestWrongCode.java @@ -9,7 +9,7 @@ import static jadx.tests.api.utils.JadxMatchers.containsLines; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestWrongCode extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations.java b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations.java index 963e20be2..efb3172a0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations.java +++ b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnnotations extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java index 2881195c7..0545ec193 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java @@ -11,7 +11,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnnotations2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestParamAnnotations.java b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestParamAnnotations.java index 7a7228f58..9eac38b3d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestParamAnnotations.java +++ b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestParamAnnotations.java @@ -11,7 +11,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestParamAnnotations extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith.java index 07280ff93..7aca8445b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArith extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith2.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith2.java index dee0d8ff3..45941f02e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith2.java @@ -5,7 +5,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArith2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith3.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith3.java index 3937c266a..17cbbc962 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArith3.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArith3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithConst.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithConst.java index 5a0dc8e20..688733cea 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithConst.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithConst.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArithConst extends SmaliTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithNot.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithNot.java index 2a719e966..7931ec598 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithNot.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestArithNot.java @@ -7,7 +7,7 @@ import jadx.tests.api.SmaliTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArithNot extends SmaliTest { /* diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement.java index ba6b7e08f..728bf722e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFieldIncrement extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java index 2ce0dccf9..88ef906c8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFieldIncrement2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement3.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement3.java index 7724d61ed..372c7ce1d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement3.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFieldIncrement3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestSpecialValues.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestSpecialValues.java index 5ffc35785..504c2c32c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestSpecialValues.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestSpecialValues.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSpecialValues extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill.java index 38db8d846..9768a1afe 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArrayFill extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java index 7f61bab43..f04fd1b0b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArrayFill2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFillConstReplace.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFillConstReplace.java index 462dd1cc2..960c30b38 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFillConstReplace.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFillConstReplace.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArrayFillConstReplace extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays.java index 50effaaed..59adc5fa0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArrays extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays2.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays2.java index 880caed84..d68e769eb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays2.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.instanceOf; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArrays2 extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays3.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays3.java index 100fe5457..72c1a8bc3 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays3.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.instanceOf; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArrays3 extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays4.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays4.java index 505421a1a..1b1091f89 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrays4.java @@ -3,7 +3,7 @@ package jadx.tests.integration.arrays; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import org.junit.jupiter.api.Test; public class TestArrays4 extends SmaliTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp.java index 98afee944..22c866810 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestCmpOp extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp2.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp2.java index 86acafc00..f823ba22d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestCmpOp2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestCmpOp2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestComplexIf.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestComplexIf.java index f40c17d5b..9fc863ec3 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestComplexIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestComplexIf.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestComplexIf extends SmaliTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions.java index f246c746e..79717b765 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions10.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions10.java index 236d231b2..7fdebd6a2 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions10.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions10.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions10 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions11.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions11.java index 30beb92d3..f1642c5ac 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions11.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions11.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions11 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions12.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions12.java index 60aaebaee..b1a94bbba 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions12.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions12.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions12 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions13.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions13.java index 21478abe5..b840025ad 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions13.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions13.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions13 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions14.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions14.java index 69b729b9e..e9a8b5b64 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions14.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions14.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions14 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions15.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions15.java index b26dc6690..603307034 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions15.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions15.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions15 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions16.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions16.java index 3fdb791f1..afcc453c4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions16.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions16.java @@ -6,9 +6,9 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestConditions16 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java index 86481233e..08d0e5e90 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions4.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions4.java index 15be7937c..f810e2724 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions4.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions5.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions5.java index ee0e667ae..607004ac9 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions5.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions5 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions6.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions6.java index 9d4a36151..94da02fd0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions6.java @@ -9,7 +9,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions6 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions7.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions7.java index 6032c020f..add7b73e7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions7.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions7.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions7 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions8.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions8.java index 55cf487ad..9fcfd51e8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions8.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions8.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions8 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions9.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions9.java index a661c3391..9325627bb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions9.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions9.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConditions9 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestElseIf.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestElseIf.java index a5bf85204..383d175d1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestElseIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestElseIf.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestElseIf extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf.java index c3659014d..3928e6ca3 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestNestedIf extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java index 79d5b513e..edc42d899 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestNestedIf2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestSimpleConditions.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestSimpleConditions.java index 0398ce295..fa1f4514c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestSimpleConditions.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestSimpleConditions.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSimpleConditions extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary.java index 1c8cbd46e..fc17b5ddb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary.java @@ -7,8 +7,8 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestTernary extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java index 1d9350b75..6cb781474 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java @@ -5,8 +5,8 @@ import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestTernary2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary3.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary3.java index 1918e12a5..a0bcfc107 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary3.java @@ -11,7 +11,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTernary3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernaryInIf.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernaryInIf.java index 4068ed2ca..c8f56e0f1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernaryInIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernaryInIf.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTernaryInIf extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers.java b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers.java index 7470ce8f1..ae788644b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers.java +++ b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers.java @@ -10,8 +10,8 @@ import jadx.core.dex.nodes.MethodNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLineNumbers extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers2.java b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers2.java index d9e79e1cf..0e6349b3f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestLineNumbers2.java @@ -9,7 +9,7 @@ import jadx.core.codegen.CodeWriter; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class TestLineNumbers2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java index 7415c5491..7ac43cdb3 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java +++ b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java @@ -9,9 +9,9 @@ import jadx.core.dex.nodes.MethodNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.hamcrest.MatcherAssert.assertThat; public class TestReturnSourceLine extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestVariablesNames.java b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestVariablesNames.java index 9bbdccf65..356c80a66 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestVariablesNames.java +++ b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestVariablesNames.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestVariablesNames extends SmaliTest { /* diff --git a/jadx-core/src/test/java/jadx/tests/integration/deobf/TestMthRename.java b/jadx-core/src/test/java/jadx/tests/integration/deobf/TestMthRename.java index 667362e0b..e0538e7f1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/deobf/TestMthRename.java +++ b/jadx-core/src/test/java/jadx/tests/integration/deobf/TestMthRename.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestMthRename extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums.java index f34062471..eb1b066f1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestEnums extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums2.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums2.java index 20a531e45..11f65a0e1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import jadx.tests.api.utils.JadxMatchers; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestEnums2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums3.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums3.java index f0c7d977c..2384d53f7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums3.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestEnums3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums4.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums4.java index 3c32493d5..1fc4be97f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnums4.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestEnums4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java index 1ddabcc6d..62a09be8b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsInterface.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import jadx.tests.api.utils.JadxMatchers; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestEnumsInterface extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsWithConsts.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsWithConsts.java index 52c8083c0..6734bc8b4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsWithConsts.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestEnumsWithConsts.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestEnumsWithConsts extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum.java index fa71f8651..ec4ae9e89 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchOverEnum extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum2.java b/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum2.java index c414a6e7d..2af797122 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/enums/TestSwitchOverEnum2.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchOverEnum2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/fallback/TestFallbackMode.java b/jadx-core/src/test/java/jadx/tests/integration/fallback/TestFallbackMode.java index dc7c3deda..b10af3cf0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/fallback/TestFallbackMode.java +++ b/jadx-core/src/test/java/jadx/tests/integration/fallback/TestFallbackMode.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFallbackMode extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics.java index d206144a0..2be33c44f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestGenerics extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics2.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics2.java index 8cab0d8d1..7d5f379f5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics2.java @@ -10,7 +10,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestGenerics2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics3.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics3.java index bfcf16515..225d86350 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics3.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestGenerics3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics4.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics4.java index a78a5dd06..7b8bc66ba 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics4.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestGenerics4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java index 4b8e59484..4ef2966d7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestGenerics6.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestGenerics6 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java b/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java index 767d06872..f62996683 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/TestImportGenericMap.java @@ -2,7 +2,7 @@ package jadx.tests.integration.generics; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import org.junit.jupiter.api.Test; diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline.java index c9c4706b8..66abf389b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInline extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline2.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline2.java index eb45d2dbf..57c4797a5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInline2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline3.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline3.java index 63eeef438..33ce72b91 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline3.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInline3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline6.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline6.java index 91148f463..f6778691a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInline6.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInline6 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInlineInLoop.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInlineInLoop.java index 4802dcfd3..dc7ceaaf0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestInlineInLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestInlineInLoop.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInlineInLoop extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java index 18c9f5763..8186cf6c0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java @@ -9,7 +9,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIssue86 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline.java index c722dec10..3299cf9d2 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSyntheticInline extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline2.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline2.java index 036c14e8c..aa7312c92 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestSyntheticInline2.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSyntheticInline2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass.java index fd4b6aebf..7ace92742 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass10.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass10.java index e378676f8..afda095ee 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass10.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass10.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass10 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass11.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass11.java index e99730992..34b027b22 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass11.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass11.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass11 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass12.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass12.java index 51219ccf2..423858c2e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass12.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass12.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass12 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java index 488366140..6ded86fe5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass2.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java index 862564c96..d5a3d7672 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass3.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass4.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass4.java index d45cf04e1..6c53a59a3 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass4.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java index 6ad80693c..0efbb4e96 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java @@ -14,7 +14,7 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.sameInstance; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass5 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass6.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass6.java index 22efd3ec8..fb0a207d6 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass6.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass6 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass7.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass7.java index 2f629ede0..0a1eafdf9 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass7.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass7.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass7 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass8.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass8.java index 4ca2426f8..f17a28d58 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass8.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass8.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass8 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass9.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass9.java index 39d07cd39..ddf1160cd 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass9.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass9.java @@ -11,7 +11,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestAnonymousClass9 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInner2Samples.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInner2Samples.java index fd3cb4f4f..0c77bc0ca 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInner2Samples.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInner2Samples.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInner2Samples extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass.java index c78c9bf71..ec89ff6a1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInnerClass extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass2.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass2.java index aef3481aa..67d4404c8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass2.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInnerClass2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass3.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass3.java index 814e8432b..0e40e7246 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass3.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInnerClass3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass4.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass4.java index c37e34a91..7b5a57fdb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass4.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInnerClass4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass5.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass5.java index eb0b42e2b..737c14fca 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClass5.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestInnerClass5 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassFakeSyntheticConstructor.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassFakeSyntheticConstructor.java index 76af381c8..040c66cb6 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassFakeSyntheticConstructor.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassFakeSyntheticConstructor.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInnerClassFakeSyntheticConstructor extends SmaliTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticRename.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticRename.java index 886bb1c5d..63aecf84e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticRename.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestInnerClassSyntheticRename.java @@ -8,7 +8,7 @@ import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; /** * Issue: https://github.com/skylot/jadx/issues/336 diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestOuterConstructorCall.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestOuterConstructorCall.java index 6f5883507..e67e787b3 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestOuterConstructorCall.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestOuterConstructorCall.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestOuterConstructorCall extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldAccess.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldAccess.java index 176274ac0..2283faf4d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldAccess.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldAccess.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestRFieldAccess extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore.java index 7036e4252..ab9b0f80a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore.java @@ -11,7 +11,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestRFieldRestore extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore2.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore2.java index 721d6e7be..4ea2d019c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestRFieldRestore2.java @@ -9,7 +9,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestRFieldRestore2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java index 7f9f1549e..aa3c5c9c0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestSyntheticMthRename.java @@ -8,7 +8,7 @@ import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; /** * Issue: https://github.com/skylot/jadx/issues/397 diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestConstructorInvoke.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestConstructorInvoke.java index e96f38e1f..99645997f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestConstructorInvoke.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestConstructorInvoke.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.Matchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConstructorInvoke extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvoke1.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvoke1.java index 91e60c322..dde882e03 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvoke1.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvoke1.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInvoke1 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvokeInCatch.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvokeInCatch.java index a06a0ab2a..9f4eac344 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvokeInCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestInvokeInCatch.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInvokeInCatch extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestOverloadedMethodInvoke.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestOverloadedMethodInvoke.java index fe47a9aea..1a2aaa891 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestOverloadedMethodInvoke.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestOverloadedMethodInvoke.java @@ -8,8 +8,8 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestOverloadedMethodInvoke extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestSuperInvoke.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestSuperInvoke.java index b24bd6f44..5aa6ea568 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestSuperInvoke.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestSuperInvoke.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSuperInvoke extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestVarArg.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestVarArg.java index 9d9edb05f..44df58f12 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestVarArg.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestVarArg.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestVarArg extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach.java index 268e8765d..6ff052807 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArrayForEach extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach2.java index fd6b9af7e..989388462 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEach2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArrayForEach2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEachNegative.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEachNegative.java index 0103e683f..28a03ba8d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEachNegative.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestArrayForEachNegative.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestArrayForEachNegative extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf.java index 1dbd84c37..a96fa60bc 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestBreakInComplexIf extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf2.java index 7b9814afd..822c4c0c8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInComplexIf2.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.countString; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestBreakInComplexIf2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop.java index 55fbd1047..042049c00 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestBreakInLoop extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop2.java index 3f219836e..a360a4f25 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakInLoop2.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.anyOf; public class TestBreakInLoop2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakWithLabel.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakWithLabel.java index 9408c358b..345addaf5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakWithLabel.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestBreakWithLabel.java @@ -8,9 +8,9 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestBreakWithLabel extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop.java index fd27f3b67..89de52268 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestContinueInLoop extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop2.java index 3f2ceb370..e644aac7d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestContinueInLoop2.java @@ -19,7 +19,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestContinueInLoop2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestDoWhileBreak.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestDoWhileBreak.java index 76811cdc1..abc33c361 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestDoWhileBreak.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestDoWhileBreak.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestDoWhileBreak extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestEndlessLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestEndlessLoop.java index 340fc31c5..352d1e25e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestEndlessLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestEndlessLoop.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.Matchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestEndlessLoop extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop2.java index 7389d9dfe..62cf976ac 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop2.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIfInLoop2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop3.java index aa9f47fda..df9cc159f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIfInLoop3.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestIfInLoop3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexForLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexForLoop.java index bb904a0db..082abdd99 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexForLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexForLoop.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIndexForLoop extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java index 58454b40b..3b9181d34 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java @@ -1,5 +1,12 @@ package jadx.tests.integration.loops; +import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.nullValue; + import java.io.File; import org.junit.Test; @@ -7,12 +14,6 @@ import org.junit.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; -import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.assertThat; public class TestIndexedLoop extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach.java index 6ab3296df..587111065 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIterableForEach extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach2.java index 321417071..0b973b85d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach2.java @@ -9,7 +9,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIterableForEach2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach3.java index e48c47d82..df35a797e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIterableForEach3.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIterableForEach3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition.java index af29b24e8..f769ab8e0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopCondition extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition2.java index c25e11a51..01cab1e8e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopCondition2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition3.java index d45639699..0efaf1fa0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition3.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopCondition3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition4.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition4.java index d9005c1eb..0eadd2295 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition4.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopCondition4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition5.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition5.java index 9683734c4..43e94887e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopCondition5.java @@ -8,7 +8,7 @@ import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static jadx.tests.api.utils.JadxMatchers.countString; import static org.hamcrest.Matchers.anyOf; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopCondition5 extends SmaliTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopConditionInvoke.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopConditionInvoke.java index 377658790..f2a46db47 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopConditionInvoke.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopConditionInvoke.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopConditionInvoke extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection.java index 67e11d13b..a002eb675 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopDetection extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection2.java index ad021f430..7048eef8b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection2.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopDetection2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java index c0729e626..72b755485 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopDetection3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection4.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection4.java index e8af8c106..b4852faa6 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection4.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopDetection4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops.java index 5fa0fc9d4..f9ca07673 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestNestedLoops extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops2.java index 222be0cdf..044b94f95 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops2.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestNestedLoops2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops3.java index fa68afae4..b13567704 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNestedLoops3.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestNestedLoops3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops.java index f78974ee0..f2b722a86 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops.java @@ -9,7 +9,7 @@ import static jadx.tests.api.utils.JadxMatchers.containsOne; import static jadx.tests.api.utils.JadxMatchers.countString; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSequentialLoops extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops2.java index 6a5688034..83915a9c8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSequentialLoops2.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static jadx.tests.api.utils.JadxMatchers.countString; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSequentialLoops2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop.java index 264a0b045..a211eb921 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatchInLoop extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop2.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop2.java index 14cf93bb4..8533c5bc8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestTryCatchInLoop2.java @@ -9,7 +9,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatchInLoop2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestDuplicatedNames.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestDuplicatedNames.java index 6bd45f321..0c2b41d99 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/names/TestDuplicatedNames.java +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestDuplicatedNames.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestDuplicatedNames extends SmaliTest { /* diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestNameAssign2.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestNameAssign2.java index ffd13fc37..425c352bb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/names/TestNameAssign2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestNameAssign2.java @@ -14,7 +14,7 @@ import jadx.core.dex.visitors.ssa.LiveVarAnalysis; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestNameAssign2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java index 4928b67e7..c83d8eca6 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedClassNames.java @@ -7,7 +7,7 @@ import jadx.tests.api.SmaliTest; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import java.io.File; diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedNames.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedNames.java index ffb6749d8..71f6d700b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedNames.java +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestReservedNames.java @@ -7,7 +7,7 @@ import jadx.tests.api.SmaliTest; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestReservedNames extends SmaliTest { /* diff --git a/jadx-core/src/test/java/jadx/tests/integration/names/TestSameMethodsNames.java b/jadx-core/src/test/java/jadx/tests/integration/names/TestSameMethodsNames.java index 18c7ce2a7..f0918dc90 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/names/TestSameMethodsNames.java +++ b/jadx-core/src/test/java/jadx/tests/integration/names/TestSameMethodsNames.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSameMethodsNames extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java index 141f3aec6..441f621f0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestBadMethodAccessModifiers.java @@ -8,7 +8,7 @@ import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestBadMethodAccessModifiers extends SmaliTest { /* diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit.java index 5919d4f2e..f9f1a1a48 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit.java @@ -12,7 +12,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFieldInit extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit2.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit2.java index 79e6778fa..b7d591d8d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInit2.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFieldInit2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInitInTryCatch.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInitInTryCatch.java index f5bed2647..b37ccbc85 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInitInTryCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestFieldInitInTryCatch.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFieldInitInTryCatch extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestIfInTry.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestIfInTry.java index 12c3e3b9e..cb38e5879 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestIfInTry.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestIfInTry.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIfInTry extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestIfTryInCatch.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestIfTryInCatch.java index c8da6d28d..e28849f4c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestIfTryInCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestIfTryInCatch.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIfTryInCatch extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java index 2a122a1b4..f0c6fa682 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java @@ -9,7 +9,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIssue13a extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13b.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13b.java index 04478033a..272a079e7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13b.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13b.java @@ -13,7 +13,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestIssue13b extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry.java index eeefef3ed..03b2aaefb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopInTry extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry2.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry2.java index 18975426c..a45b636dc 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestLoopInTry2.java @@ -14,7 +14,7 @@ import jadx.core.utils.exceptions.DecodeException; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestLoopInTry2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch.java index c47745fe7..a1c9480c0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitch extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch2.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch2.java index 8e25e4b7c..e48cffcf9 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitch2 extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch3.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch3.java index 2d96066fe..96251f713 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitch3.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.countString; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitch3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchBreak.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchBreak.java index ef1c28ef0..98900d24c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchBreak.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchBreak.java @@ -7,8 +7,8 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchBreak extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchContinue.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchContinue.java index ec64a4249..5fbfb7bc0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchContinue.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchContinue.java @@ -7,8 +7,8 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchContinue extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchInLoop.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchInLoop.java index 43b2b0584..19b3ee906 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchInLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchInLoop.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchInLoop extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchLabels.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchLabels.java index d8ac44fa1..50bb7816f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchLabels.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchLabels.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchLabels extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchNoDefault.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchNoDefault.java index a94430e9d..44a9838af 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchNoDefault.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchNoDefault.java @@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class TestSwitchNoDefault extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase.java index 18ae2b79f..4fdacfbe1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase.java @@ -7,8 +7,8 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchReturnFromCase extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase2.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase2.java index 9bb3096cf..d2dc6b217 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchReturnFromCase2.java @@ -5,9 +5,9 @@ import jadx.tests.api.IntegrationTest; import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestSwitchReturnFromCase2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchSimple.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchSimple.java index 08ced444f..0e5cacde4 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchSimple.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchSimple.java @@ -7,8 +7,8 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchSimple extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase.java index 59a78d243..fb2648d06 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchWithFallThroughCase extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase2.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase2.java index c166a5efb..ddc1618e1 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithFallThroughCase2.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchWithFallThroughCase2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java index 00336c65c..f9c43d222 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.countString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSwitchWithTryCatch extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized.java b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized.java index 8a9fe7f7a..6896780a9 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized.java +++ b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSynchronized extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java index 082632801..9371e02cb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSynchronized2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized3.java b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized3.java index aad9c59be..313691f45 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized3.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestSynchronized3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally.java index 636473ede..f0ff3195e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFinally extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java index 818132ff5..efeb6d4ca 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java @@ -10,7 +10,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFinally2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinallyExtract.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinallyExtract.java index fdf354bd0..b421f4cec 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinallyExtract.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinallyExtract.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestFinallyExtract extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestInlineInCatch.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestInlineInCatch.java index 88856905d..4c42426e8 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestInlineInCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestInlineInCatch.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInlineInCatch extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch.java index 78ba83756..94e3d0d26 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch.java @@ -11,7 +11,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestMultiExceptionCatch extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatchSameJump.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatchSameJump.java index dfa11e625..ef8b718cb 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatchSameJump.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatchSameJump.java @@ -8,7 +8,7 @@ import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestMultiExceptionCatchSameJump extends SmaliTest { /* diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestNestedTryCatch.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestNestedTryCatch.java index d9bb29c04..f45ca3ac6 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestNestedTryCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestNestedTryCatch.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestNestedTryCatch extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch.java index ea64ccdbe..b3d616f09 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatch extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch2.java index 80857d995..361cd923b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatch2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch3.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch3.java index 65ceeaf52..e3ffd4129 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch3.java @@ -7,9 +7,9 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestTryCatch3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch4.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch4.java index 82a5d74b4..091ad5ff0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch4.java @@ -11,7 +11,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatch4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java index 68ec7ea26..f4702709a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java @@ -10,7 +10,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatch5 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch6.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch6.java index b4272b0d3..01f3b5e35 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch6.java @@ -8,8 +8,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestTryCatch6 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java index 1a3f82ace..7c91eaad0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatch7 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch8.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch8.java index 1479ae18d..2f73c6258 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch8.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch8.java @@ -9,7 +9,7 @@ import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.isA; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatch8 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java index 061374b11..d33cd0b69 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestTryCatchFinally extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java index 20b94a695..c6f6ea0e5 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java @@ -11,7 +11,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatchFinally2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally3.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally3.java index 1a437d889..236178ed7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally3.java @@ -12,7 +12,7 @@ import jadx.core.dex.visitors.IDexTreeVisitor; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatchFinally3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally4.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally4.java index d17767850..caf1314fe 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally4.java @@ -11,7 +11,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatchFinally4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java index 52c2a111e..4cd415264 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java @@ -9,7 +9,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatchFinally5 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally6.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally6.java index f4710dfda..dca852311 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally6.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally6.java @@ -10,7 +10,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatchFinally6 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchInIf.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchInIf.java index 0a772d1aa..1ad8efd4f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchInIf.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchInIf.java @@ -6,8 +6,8 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatchInIf extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMove.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMove.java index a29fb448d..d92d65759 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMove.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMove.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatchNoMove extends SmaliTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMoveExc2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMoveExc2.java index cbf4de4cb..65213533f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMoveExc2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchNoMoveExc2.java @@ -7,7 +7,7 @@ import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsLines; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; /** * Issue: https://github.com/skylot/jadx/issues/395 diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchStartOnMove.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchStartOnMove.java index 37e2234fd..35897dc4e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchStartOnMove.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchStartOnMove.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTryCatchStartOnMove extends SmaliTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver.java b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver.java index 742d3a8b4..39f0f0ae7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver.java +++ b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTypeResolver extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver2.java b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver2.java index 13cde790d..774c05ea0 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver2.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTypeResolver2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java index 09cf65007..6150ee0bf 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTypeResolver3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver4.java b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver4.java index d8f1579e7..1ba7e613d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver4.java @@ -9,7 +9,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestTypeResolver4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestDontInlineThis.java b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestDontInlineThis.java index a155692fc..7b9e0cd16 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestDontInlineThis.java +++ b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestDontInlineThis.java @@ -8,7 +8,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestDontInlineThis extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis.java b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis.java index e44662200..b9dfc17cd 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis.java +++ b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis.java @@ -8,7 +8,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInlineThis extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis2.java b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis2.java index 865f327aa..dfcbbf55b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestInlineThis2.java @@ -10,7 +10,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInlineThis2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestRedundantThis.java b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestRedundantThis.java index 18b01d410..947e41d9c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/usethis/TestRedundantThis.java +++ b/jadx-core/src/test/java/jadx/tests/integration/usethis/TestRedundantThis.java @@ -5,7 +5,7 @@ import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestRedundantThis extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables2.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables2.java index 2949f901d..8a1584f96 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables2.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestVariables2 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables3.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables3.java index 8ff5d4f79..b4884d724 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables3.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestVariables3 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java index b03a92f08..9baa1de13 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java @@ -9,7 +9,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestVariables4 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables5.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables5.java index 93ad53c0a..fb51bee86 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables5.java @@ -8,8 +8,8 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; public class TestVariables5 extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesDefinitions.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesDefinitions.java index ca7c06fa1..37401af2c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesDefinitions.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesDefinitions.java @@ -13,7 +13,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestVariablesDefinitions extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesIfElseChain.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesIfElseChain.java index 6a2620458..f402665fc 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesIfElseChain.java +++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariablesIfElseChain.java @@ -7,7 +7,7 @@ import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestVariablesIfElseChain extends IntegrationTest { diff --git a/jadx-core/src/test/java/jadx/tests/smali/TestConstructor.java b/jadx-core/src/test/java/jadx/tests/smali/TestConstructor.java index 4446c0c23..a08e64db5 100644 --- a/jadx-core/src/test/java/jadx/tests/smali/TestConstructor.java +++ b/jadx-core/src/test/java/jadx/tests/smali/TestConstructor.java @@ -8,7 +8,7 @@ import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestConstructor extends SmaliTest { diff --git a/jadx-core/src/test/java/jadx/tests/smali/TestInlineVarArg.java b/jadx-core/src/test/java/jadx/tests/smali/TestInlineVarArg.java index df81d627a..0f85d0c21 100644 --- a/jadx-core/src/test/java/jadx/tests/smali/TestInlineVarArg.java +++ b/jadx-core/src/test/java/jadx/tests/smali/TestInlineVarArg.java @@ -6,7 +6,7 @@ import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.SmaliTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; public class TestInlineVarArg extends SmaliTest { diff --git a/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java b/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java index af364ec3e..9053faa61 100644 --- a/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java +++ b/jadx-gui/src/test/java/jadx/gui/treemodel/JSourcesTest.java @@ -17,7 +17,7 @@ import jadx.gui.JadxWrapper; import static java.util.Arrays.asList; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/jadx-gui/src/test/java/jadx/gui/utils/CertificateManagerTest.java b/jadx-gui/src/test/java/jadx/gui/utils/CertificateManagerTest.java index 7782c589a..c5616f16a 100644 --- a/jadx-gui/src/test/java/jadx/gui/utils/CertificateManagerTest.java +++ b/jadx-gui/src/test/java/jadx/gui/utils/CertificateManagerTest.java @@ -1,5 +1,8 @@ package jadx.gui.utils; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; @@ -7,7 +10,6 @@ import java.net.URL; import java.security.cert.Certificate; import java.util.Collection; -import org.junit.Assert; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -43,72 +45,72 @@ public class CertificateManagerTest { public void decodeNotCertificateFile() throws IOException { try (InputStream in = new FileInputStream(emptyPath)) { String result = CertificateManager.decode(in); - Assert.assertEquals("", result); + assertEquals("", result); } } @Test public void decodeRSAKeyHeader() { String string = certificateManagerRSA.generateHeader(); - Assert.assertTrue(string.contains("X.509")); - Assert.assertTrue(string.contains("0x4bd68052")); - Assert.assertTrue(string.contains("CN=test cert, OU=test unit, O=OOO TestOrg, L=St.Peterburg, ST=Russia, C=123456")); + assertTrue(string.contains("X.509")); + assertTrue(string.contains("0x4bd68052")); + assertTrue(string.contains("CN=test cert, OU=test unit, O=OOO TestOrg, L=St.Peterburg, ST=Russia, C=123456")); } @Test public void decodeDSAKeyHeader() { String string = certificateManagerDSA.generateHeader(); - Assert.assertTrue(string.contains("X.509")); - Assert.assertTrue(string.contains("0x16420ba2")); - Assert.assertTrue(string.contains("O=\"UJMRFVV CN=EDCVBGT C=TG\"")); + assertTrue(string.contains("X.509")); + assertTrue(string.contains("0x16420ba2")); + assertTrue(string.contains("O=\"UJMRFVV CN=EDCVBGT C=TG\"")); } @Test public void decodeRSAKeySignature() { String string = certificateManagerRSA.generateSignature(); - Assert.assertTrue(string.contains("SHA256withRSA")); - Assert.assertTrue(string.contains("1.2.840.113549.1.1.11")); + assertTrue(string.contains("SHA256withRSA")); + assertTrue(string.contains("1.2.840.113549.1.1.11")); } @Test public void decodeDSAKeySignature() { String string = certificateManagerDSA.generateSignature(); - Assert.assertTrue(string.contains("SHA1withDSA")); - Assert.assertTrue(string.contains("1.2.840.10040.4.3")); + assertTrue(string.contains("SHA1withDSA")); + assertTrue(string.contains("1.2.840.10040.4.3")); } @Test public void decodeRSAFingerprint() { String string = certificateManagerRSA.generateFingerprint(); - Assert.assertTrue(string.contains("61 18 0A 71 3F C9 55 16 4E 04 E3 C5 45 08 D9 11")); - Assert.assertTrue(string.contains("A0 6E A6 06 DB 2C 6F 3A 16 56 7F 75 97 7B AE 85 C2 13 09 37")); - Assert.assertTrue(string.contains("12 53 E8 BB C8 AA 27 A8 49 9B F8 0D 6E 68 CE 32 35 50 DE 55 A7 E7 8C 29 51 00 96 D7 56 F4 54 " + + assertTrue(string.contains("61 18 0A 71 3F C9 55 16 4E 04 E3 C5 45 08 D9 11")); + assertTrue(string.contains("A0 6E A6 06 DB 2C 6F 3A 16 56 7F 75 97 7B AE 85 C2 13 09 37")); + assertTrue(string.contains("12 53 E8 BB C8 AA 27 A8 49 9B F8 0D 6E 68 CE 32 35 50 DE 55 A7 E7 8C 29 51 00 96 D7 56 F4 54 " + "44")); } @Test public void decodeDSAFingerprint() { String string = certificateManagerDSA.generateFingerprint(); - Assert.assertTrue(string.contains("D9 06 A6 2D 1F 79 8C 9D A6 EF 40 C7 2E C2 EA 0B")); - Assert.assertTrue(string.contains("18 E9 9C D4 A1 40 8F 63 FA EC 2E 62 A0 F2 AE B7 3F C3 C2 04")); - Assert.assertTrue(string.contains("74 F9 48 64 EE AC 92 26 53 2C 7A 0E 55 BE 5E D8 2F A7 D9 A9 99 F5 D5 21 2C 51 21 C4 31 AD 73 " + + assertTrue(string.contains("D9 06 A6 2D 1F 79 8C 9D A6 EF 40 C7 2E C2 EA 0B")); + assertTrue(string.contains("18 E9 9C D4 A1 40 8F 63 FA EC 2E 62 A0 F2 AE B7 3F C3 C2 04")); + assertTrue(string.contains("74 F9 48 64 EE AC 92 26 53 2C 7A 0E 55 BE 5E D8 2F A7 D9 A9 99 F5 D5 21 2C 51 21 C4 31 AD 73 " + "40")); } @Test public void decodeRSAPubKey() { String string = certificateManagerRSA.generatePublicKey(); - Assert.assertTrue(string.contains("RSA")); - Assert.assertTrue(string.contains("65537")); - Assert.assertTrue(string.contains( + assertTrue(string.contains("RSA")); + assertTrue(string.contains("65537")); + assertTrue(string.contains( "16819531290318044625546437357099080306019392752925688951114880688329201213180109168890384305768067101521914473763638669503560977521269328582980060332888147680193318231260043189411794465899645633586173494259691101582064441956032924396850221679489313043628562082670183392670094163371858684118480409374749790551473773845213427476236147328434427272177623018935282929152308753854314219987617604037468769472089902090243358285991739642170211970862773121939911777280101937073243006335384636193260583579409760790138329893534549366882523130765297472656435892831796545149793228897111760122091442123535919361963075454640516520743")); } @Test public void decodeDSAPubKey() { String string = certificateManagerDSA.generatePublicKey(); - Assert.assertTrue(string.contains("DSA")); - Assert.assertTrue(string.contains( + assertTrue(string.contains("DSA")); + assertTrue(string.contains( "19323367605058154682563301282345453222279312104889899001698209626254725581511375469963812461090495963838615773832867364330457010553974237985991904800958394169421485070378434746792379708805563793253282995274293621162504943287538455944652344378242226897507369146942411692220922477368782490423187845815262510366")); } From 9695291e370dccebe249cebedd6c4c4c61c1d7af Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Fri, 22 Mar 2019 19:00:10 +0100 Subject: [PATCH 17/25] test: case for #62 (PR #497) --- .../trycatch/TryAfterDeclaration.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/trycatch/TryAfterDeclaration.java diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TryAfterDeclaration.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TryAfterDeclaration.java new file mode 100644 index 000000000..264d6c144 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TryAfterDeclaration.java @@ -0,0 +1,46 @@ +package jadx.tests.integration.trycatch; + +import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static org.hamcrest.MatcherAssert.assertThat; + +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import jadx.NotYetImplemented; +import jadx.NotYetImplementedExtension; +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + +@ExtendWith(NotYetImplementedExtension.class) +public class TryAfterDeclaration extends IntegrationTest { + + /** + * Issue #62. + */ + @Test + @NotYetImplemented + public void test62() { + ClassNode cls = getClassNode(TestClass.class); + String code = cls.getCode().toString(); + + assertThat(code, containsOne("try {")); + } +} + +class TestClass { + public static void consume() throws IOException { + InputStream bis = null; + try { + bis = new FileInputStream("1.txt"); + while (bis != null) { + System.out.println("c"); + } + } catch (final IOException e) { + } + } +} + From 66421be942c33bcf77f7f3378b3e65590f064661 Mon Sep 17 00:00:00 2001 From: Skylot Date: Fri, 22 Mar 2019 20:57:53 +0300 Subject: [PATCH 18/25] test: add tests for some known issues --- .../invoke/TestCastInOverloadedInvoke.java | 67 +++++++++++++++++++ .../loops/TestSynchronizedInEndlessLoop.java | 51 ++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/invoke/TestCastInOverloadedInvoke.java create mode 100644 jadx-core/src/test/java/jadx/tests/integration/loops/TestSynchronizedInEndlessLoop.java diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestCastInOverloadedInvoke.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestCastInOverloadedInvoke.java new file mode 100644 index 000000000..30ccc3572 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestCastInOverloadedInvoke.java @@ -0,0 +1,67 @@ +package jadx.tests.integration.invoke; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import jadx.NotYetImplemented; +import jadx.NotYetImplementedExtension; +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + +import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +@ExtendWith(NotYetImplementedExtension.class) +public class TestCastInOverloadedInvoke extends IntegrationTest { + + public static class TestCls { + int c = 0; + + public void test() { + call(new ArrayList<>()); + call((List) new ArrayList()); + } + + public void test2(Object obj) { + if (obj instanceof String) { + call((String) obj); + } + } + + public void call(String str) { + c += 1; + } + + public void call(List list) { + c += 2; + } + + public void call(ArrayList list) { + c += 4; + } + + public void check() { + test(); + assertThat(c, is(2 + 4)); + c = 0; + test2("str"); + assertThat(c, is(1)); + } + } + + @Test + @NotYetImplemented + public void test() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsOne("call(new ArrayList<>());")); + assertThat(code, containsOne("call((List) new ArrayList());")); + + assertThat(code, containsOne("call((String) obj);")); + } +} diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSynchronizedInEndlessLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSynchronizedInEndlessLoop.java new file mode 100644 index 000000000..4edb7bd37 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSynchronizedInEndlessLoop.java @@ -0,0 +1,51 @@ +package jadx.tests.integration.loops; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import jadx.NotYetImplemented; +import jadx.NotYetImplementedExtension; +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + +import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static org.hamcrest.MatcherAssert.assertThat; + +@ExtendWith(NotYetImplementedExtension.class) +public class TestSynchronizedInEndlessLoop extends IntegrationTest { + + public static class TestCls { + int f = 5; + + int test() { + while (true) { + synchronized (this) { + if (f > 7) { + return 7; + } else if (f < 3) { + return 3; + } + } + try { + f++; + Thread.sleep(100); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + } + + @Test + @NotYetImplemented + public void test() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsOne("synchronized (this) {")); + assertThat(code, containsOne("try {")); + assertThat(code, containsOne("f++;")); + assertThat(code, containsOne("Thread.sleep(100);")); + assertThat(code, containsOne("} catch (Exception e) {")); + } +} From e585c4ec463f5bfef60ccf8c21b854dadc3fa20f Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Sat, 23 Mar 2019 08:25:14 +0100 Subject: [PATCH 19/25] test: add MissingGenericsTypesTest (PR #498) --- .../java/jadx/tests/api/utils/TestUtils.java | 4 ++ .../generics/MissingGenericsTypesTest.java | 34 ++++++++++ .../generics/MissingGenericsTypesTest.smali | 64 +++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/generics/MissingGenericsTypesTest.java create mode 100644 jadx-core/src/test/smali/generics/MissingGenericsTypesTest.smali diff --git a/jadx-core/src/test/java/jadx/tests/api/utils/TestUtils.java b/jadx-core/src/test/java/jadx/tests/api/utils/TestUtils.java index 256b6d681..2424dd654 100644 --- a/jadx-core/src/test/java/jadx/tests/api/utils/TestUtils.java +++ b/jadx-core/src/test/java/jadx/tests/api/utils/TestUtils.java @@ -1,7 +1,11 @@ package jadx.tests.api.utils; +import org.junit.jupiter.api.extension.ExtendWith; + +import jadx.NotYetImplementedExtension; import jadx.core.codegen.CodeWriter; +@ExtendWith(NotYetImplementedExtension.class) public class TestUtils { public static String indent(int indent) { diff --git a/jadx-core/src/test/java/jadx/tests/integration/generics/MissingGenericsTypesTest.java b/jadx-core/src/test/java/jadx/tests/integration/generics/MissingGenericsTypesTest.java new file mode 100644 index 000000000..35e139d65 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/generics/MissingGenericsTypesTest.java @@ -0,0 +1,34 @@ +package jadx.tests.integration.generics; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; + +import org.junit.jupiter.api.Test; + +import jadx.NotYetImplemented; +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.SmaliTest; + +public class MissingGenericsTypesTest extends SmaliTest { + + /* + private int x; + + public void test() { + Map map = new HashMap(); + x = 1; + for (String s : map.keySet()) { + System.out.println(s); + } + } + */ + + @Test + @NotYetImplemented + public void test() { + ClassNode cls = getClassNodeFromSmaliWithPath("generics", "MissingGenericsTypesTest"); + String code = cls.getCode().toString(); + + assertThat(code, containsString("Map()V + .locals 0 + + .line 9 + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + + +# virtual methods +.method public test()V + .locals 3 + + .line 14 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + const/4 v1, 0x1 + + .line 15 + iput v1, p0, LMissingGenericsTypesTest;->x:I + + .line 16 + invoke-interface {v0}, Ljava/util/Map;->keySet()Ljava/util/Set; + + move-result-object v0 + + invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; + + move-result-object v0 + + :goto_0 + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z + + move-result v1 + + if-eqz v1, :cond_0 + + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Ljava/lang/String; + + .line 17 + sget-object v2, Ljava/lang/System;->out:Ljava/io/PrintStream; + + invoke-virtual {v2, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + + goto :goto_0 + + :cond_0 + return-void +.end method From d3dbdb24af026246adeebfed1c1e0fceae191ed3 Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Sat, 23 Mar 2019 08:26:44 +0100 Subject: [PATCH 20/25] test: use @NYI instead of commented TODO (PR #499) --- .../integration/TestStaticFieldsInit.java | 3 +- .../arith/TestFieldIncrement2.java | 22 ++++++++---- .../integration/arrays/TestArrayFill2.java | 36 ++++++++++++------- .../conditions/TestConditions3.java | 3 +- .../integration/conditions/TestNestedIf2.java | 1 - .../integration/conditions/TestTernary2.java | 20 ++++++++--- .../debuginfo/TestReturnSourceLine.java | 25 ++++++++----- .../inner/TestAnonymousClass5.java | 3 +- .../invoke/TestCastInOverloadedInvoke.java | 21 +++++------ .../integration/loops/TestLoopDetection3.java | 14 ++++++-- .../loops/TestSynchronizedInEndlessLoop.java | 15 ++++---- .../integration/others/TestIssue13a.java | 10 +++--- .../synchronize/TestSynchronized2.java | 15 ++++++-- .../integration/trycatch/TestFinally2.java | 13 +++++-- .../integration/trycatch/TestTryCatch5.java | 15 ++++++-- .../trycatch/TestTryCatchFinally2.java | 19 +++++++--- .../trycatch/TestTryCatchFinally5.java | 12 +++++-- .../trycatch/TryAfterDeclaration.java | 3 -- .../integration/types/TestTypeResolver3.java | 11 +++++- 19 files changed, 175 insertions(+), 86 deletions(-) diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java b/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java index bdcb18a15..670b0a7ee 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestStaticFieldsInit.java @@ -34,7 +34,6 @@ public class TestStaticFieldsInit extends IntegrationTest { String code = cls.getCode().toString(); assertThat(code, not(containsString("public static final String s2 = null;"))); - // TODO: - // assertThat(code, containsString("public static final String s3 = null;")); + assertThat(code, containsString("public static final String s3 = null;")); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java index 88ef906c8..95d865eda 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arith/TestFieldIncrement2.java @@ -1,13 +1,14 @@ package jadx.tests.integration.arith; -import org.junit.jupiter.api.Test; - -import jadx.core.dex.nodes.ClassNode; -import jadx.tests.api.IntegrationTest; - import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; +import org.junit.jupiter.api.Test; + +import jadx.NotYetImplemented; +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + public class TestFieldIncrement2 extends IntegrationTest { public static class TestCls { @@ -33,7 +34,14 @@ public class TestFieldIncrement2 extends IntegrationTest { assertThat(code, containsString("this.a.f += n;")); assertThat(code, containsString("a.f *= n;")); - // TODO - // assertThat(code, containsString("this.a.f *= n;")); + } + + @Test + @NotYetImplemented + public void test2() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsString("this.a.f *= n;")); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java index f04fd1b0b..70a75cba3 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/arrays/TestArrayFill2.java @@ -1,13 +1,14 @@ package jadx.tests.integration.arrays; -import org.junit.jupiter.api.Test; - -import jadx.core.dex.nodes.ClassNode; -import jadx.tests.api.IntegrationTest; - import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; +import org.junit.jupiter.api.Test; + +import jadx.NotYetImplemented; +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + public class TestArrayFill2 extends IntegrationTest { public static class TestCls { @@ -15,11 +16,6 @@ public class TestArrayFill2 extends IntegrationTest { public int[] test(int a) { return new int[]{1, a + 1, 2}; } - - // TODO -// public int[] test2(int a) { -// return new int[]{1, a++, a * 2}; -// } } @Test @@ -28,8 +24,22 @@ public class TestArrayFill2 extends IntegrationTest { String code = cls.getCode().toString(); assertThat(code, containsString("return new int[]{1, a + 1, 2};")); - - // TODO - // assertThat(code, containsString("return new int[]{1, a++, a * 2};")); } + + public static class TestCls2 { + + public int[] test2(int a) { + return new int[]{1, a++, a * 2}; + } + } + + @Test + @NotYetImplemented + public void test2() { + ClassNode cls = getClassNode(TestCls2.class); + String code = cls.getCode().toString(); + + assertThat(code, containsString("return new int[]{1, a++, a * 2};")); + } + } diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java index 08d0e5e90..71f589188 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestConditions3.java @@ -65,7 +65,6 @@ public class TestConditions3 extends IntegrationTest { assertThat(code, containsString("return null;")); assertThat(code, not(containsString("else"))); - // TODO: fix constant inline -// assertThat(code, not(containsString("AnonymousClass_1"))); + assertThat(code, not(containsString("AnonymousClass_1"))); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java index edc42d899..51c232e14 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestNestedIf2.java @@ -52,6 +52,5 @@ public class TestNestedIf2 extends IntegrationTest { assertThat(code, containsOne("if (executedCount != repeatCount && isRun(delta, object)) {")); assertThat(code, containsOne("if (finished) {")); assertThat(code, not(containsString("else"))); - } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java index 6cb781474..3382284a7 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/conditions/TestTernary2.java @@ -1,13 +1,16 @@ package jadx.tests.integration.conditions; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.junit.jupiter.api.Test; +import jadx.NotYetImplemented; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - public class TestTernary2 extends IntegrationTest { public static class TestCls { @@ -28,7 +31,14 @@ public class TestTernary2 extends IntegrationTest { assertEquals(1, count(code, "assertTrue")); assertEquals(1, count(code, "f(1, 0)")); - // TODO: -// assertThat(code, containsString("assertTrue(f(1, 0) == 0);")); + } + + @Test + @NotYetImplemented + public void test2() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsString("assertTrue(f(1, 0) == 0);")); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java index 7ac43cdb3..82dfb7d4e 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java +++ b/jadx-core/src/test/java/jadx/tests/integration/debuginfo/TestReturnSourceLine.java @@ -1,18 +1,19 @@ package jadx.tests.integration.debuginfo; +import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + import org.junit.jupiter.api.Test; +import jadx.NotYetImplemented; import jadx.core.codegen.CodeWriter; import jadx.core.dex.attributes.nodes.LineAttrNode; import jadx.core.dex.nodes.ClassNode; import jadx.core.dex.nodes.MethodNode; import jadx.tests.api.IntegrationTest; -import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.hamcrest.MatcherAssert.assertThat; - public class TestReturnSourceLine extends IntegrationTest { public static class TestCls { @@ -59,10 +60,18 @@ public class TestReturnSourceLine extends IntegrationTest { MethodNode test2 = cls.searchMethodByName("test2(I)I"); checkLine(lines, codeWriter, test2, 3, "return v - 1;"); + } -// TODO: -// MethodNode test3 = cls.searchMethodByName("test3(I)I"); -// checkLine(lines, codeWriter, test3, 3, "return v;"); + @Test + @NotYetImplemented + public void test2() { + ClassNode cls = getClassNode(TestCls.class); + CodeWriter codeWriter = cls.getCode(); + String code = codeWriter.toString(); + String[] lines = code.split(CodeWriter.NL); + + MethodNode test3 = cls.searchMethodByName("test3(I)I"); + checkLine(lines, codeWriter, test3, 3, "return v;"); } private static void checkLine(String[] lines, CodeWriter cw, LineAttrNode node, int offset, String str) { diff --git a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java index 0efbb4e96..3027c4d9a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/inner/TestAnonymousClass5.java @@ -79,7 +79,6 @@ public class TestAnonymousClass5 extends IntegrationTest { assertThat(code, containsOne("map.get(name);")); assertThat(code, not(containsString("access$008"))); - // TODO -// assertThat(code, not(containsString("synthetic"))); + assertThat(code, not(containsString("synthetic"))); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestCastInOverloadedInvoke.java b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestCastInOverloadedInvoke.java index 30ccc3572..40097f8ae 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/invoke/TestCastInOverloadedInvoke.java +++ b/jadx-core/src/test/java/jadx/tests/integration/invoke/TestCastInOverloadedInvoke.java @@ -1,21 +1,18 @@ package jadx.tests.integration.invoke; -import java.util.ArrayList; -import java.util.List; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; - -import jadx.NotYetImplemented; -import jadx.NotYetImplementedExtension; -import jadx.core.dex.nodes.ClassNode; -import jadx.tests.api.IntegrationTest; - import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; -@ExtendWith(NotYetImplementedExtension.class) +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; + +import jadx.NotYetImplemented; +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + public class TestCastInOverloadedInvoke extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java index 72b755485..a789ef3ea 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestLoopDetection3.java @@ -1,7 +1,10 @@ package jadx.tests.integration.loops; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import jadx.NotYetImplemented; +import jadx.NotYetImplementedExtension; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; @@ -37,7 +40,14 @@ public class TestLoopDetection3 extends IntegrationTest { String code = cls.getCode().toString(); assertThat(code, containsString("while")); - // TODO - // assertThat(code, containsString("while (--pos >= 0) {")); + } + + @Test + @NotYetImplemented + public void test2() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsString("while (--pos >= 0) {")); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSynchronizedInEndlessLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSynchronizedInEndlessLoop.java index 4edb7bd37..a5392267f 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestSynchronizedInEndlessLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestSynchronizedInEndlessLoop.java @@ -1,17 +1,14 @@ package jadx.tests.integration.loops; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; - -import jadx.NotYetImplemented; -import jadx.NotYetImplementedExtension; -import jadx.core.dex.nodes.ClassNode; -import jadx.tests.api.IntegrationTest; - import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.MatcherAssert.assertThat; -@ExtendWith(NotYetImplementedExtension.class) +import org.junit.jupiter.api.Test; + +import jadx.NotYetImplemented; +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + public class TestSynchronizedInEndlessLoop extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java b/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java index f0c6fa682..186261f2b 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java +++ b/jadx-core/src/test/java/jadx/tests/integration/others/TestIssue13a.java @@ -1,5 +1,10 @@ package jadx.tests.integration.others; +import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.MatcherAssert.assertThat; + import java.lang.reflect.Field; import java.util.HashMap; @@ -8,9 +13,6 @@ import org.junit.jupiter.api.Test; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; -import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.hamcrest.MatcherAssert.assertThat; - public class TestIssue13a extends IntegrationTest { public static class TestCls { @@ -97,6 +99,6 @@ public class TestIssue13a extends IntegrationTest { } // TODO: add additional checks -// assertThat(code, not(containsString("Throwable"))); + assertThat(code, not(containsString("Throwable"))); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java index 9371e02cb..a90aabd47 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/synchronize/TestSynchronized2.java @@ -2,10 +2,12 @@ package jadx.tests.integration.synchronize; import org.junit.jupiter.api.Test; +import jadx.NotYetImplemented; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.MatcherAssert.assertThat; public class TestSynchronized2 extends IntegrationTest { @@ -23,8 +25,15 @@ public class TestSynchronized2 extends IntegrationTest { assertThat(code, containsString("private static synchronized boolean test(Object obj) {")); assertThat(code, containsString("obj.toString() != null;")); - // TODO -// assertThat(code, containsString("return obj.toString() != null;")); -// assertThat(code, not(containsString("synchronized ("))); + } + + @Test + @NotYetImplemented + public void test2() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsString("return obj.toString() != null;")); + assertThat(code, not(containsString("synchronized ("))); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java index efeb6d4ca..22daaf9ad 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestFinally2.java @@ -6,10 +6,12 @@ import java.io.InputStream; import org.junit.jupiter.api.Test; +import jadx.NotYetImplemented; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.MatcherAssert.assertThat; public class TestFinally2 extends IntegrationTest { @@ -57,7 +59,14 @@ public class TestFinally2 extends IntegrationTest { String code = cls.getCode().toString(); assertThat(code, containsOne("decode(inputStream);")); - // TODO - // assertThat(code, not(containsOne("result ="))); + } + + @Test + @NotYetImplemented + public void test2() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, not(containsOne("result ="))); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java index f4702709a..7e1170f4d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch5.java @@ -6,6 +6,7 @@ import java.io.IOException; import org.junit.jupiter.api.Test; +import jadx.NotYetImplemented; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; @@ -48,9 +49,17 @@ public class TestTryCatch5 extends IntegrationTest { String code = cls.getCode().toString(); assertThat(code, containsString("try {")); - // TODO: -// assertThat(code, containsString("output = new FileOutputStream(file);")); -// assertThat(code, containsString("} catch (IOException e) {")); assertThat(code, containsString("file.delete();")); } + + @Test + @NotYetImplemented + public void test2() { + disableCompilation(); + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsString("output = new FileOutputStream(file);")); + assertThat(code, containsString("} catch (IOException e) {")); + } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java index c6f6ea0e5..301333190 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally2.java @@ -1,18 +1,20 @@ package jadx.tests.integration.trycatch; +import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static jadx.tests.api.utils.JadxMatchers.countString; +import static org.hamcrest.MatcherAssert.assertThat; + import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import org.junit.jupiter.api.Test; +import jadx.NotYetImplemented; import jadx.core.clsp.NClass; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; -import static jadx.tests.api.utils.JadxMatchers.containsOne; -import static org.hamcrest.MatcherAssert.assertThat; - public class TestTryCatchFinally2 extends IntegrationTest { public static class TestCls { @@ -52,9 +54,16 @@ public class TestTryCatchFinally2 extends IntegrationTest { assertThat(code, containsOne("for (NClass parent : parents) {")); - // TODO -// assertThat(code, countString(2, "for (NClass cls : classes) {")); assertThat(code, containsOne("for (NClass cls : this.classes) {")); assertThat(code, containsOne("for (NClass cls2 : this.classes) {")); } + + @Test + @NotYetImplemented + public void test2() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, countString(2, "for (NClass cls : classes) {")); + } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java index 4cd415264..613aa092c 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally5.java @@ -5,6 +5,7 @@ import java.util.List; import org.junit.jupiter.api.Test; +import jadx.NotYetImplemented; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; @@ -65,7 +66,14 @@ public class TestTryCatchFinally5 extends IntegrationTest { String code = cls.getCode().toString(); assertThat(code, containsOne("} finally {")); - // TODO: remove duplicates on multiple paths -// assertThat(code, containsOne("d.close();")); + } + + @Test + @NotYetImplemented + public void test2() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsOne("d.close();")); } } diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TryAfterDeclaration.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TryAfterDeclaration.java index 264d6c144..a43a91659 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TryAfterDeclaration.java +++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TryAfterDeclaration.java @@ -8,14 +8,11 @@ import java.io.IOException; import java.io.InputStream; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import jadx.NotYetImplemented; -import jadx.NotYetImplementedExtension; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; -@ExtendWith(NotYetImplementedExtension.class) public class TryAfterDeclaration extends IntegrationTest { /** diff --git a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java index 6150ee0bf..7a6773f97 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java +++ b/jadx-core/src/test/java/jadx/tests/integration/types/TestTypeResolver3.java @@ -2,6 +2,7 @@ package jadx.tests.integration.types; import org.junit.jupiter.api.Test; +import jadx.NotYetImplemented; import jadx.core.dex.nodes.ClassNode; import jadx.tests.api.IntegrationTest; @@ -26,10 +27,18 @@ public class TestTypeResolver3 extends IntegrationTest { ClassNode cls = getClassNode(TestCls.class); String code = cls.getCode().toString(); - // TODO inline into return assertThat(code, containsOne("s1.length() == s2.length() ? 0 : s1.length() < s2.length() ? -1 : 1;")); } + @Test + @NotYetImplemented + public void test3() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, containsOne("return s1.length() == s2.length() ? 0 : s1.length() < s2.length() ? -1 : 1;")); + } + @Test public void test2() { noDebugInfo(); From eed762df442b5d65920425b1cdff1d6dcf081347 Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Sat, 23 Mar 2019 08:32:24 +0100 Subject: [PATCH 21/25] fix(gui): exclusion disablement should be exact package match (PR #500) --- jadx-gui/src/main/java/jadx/gui/JadxWrapper.java | 9 +++++++-- jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java index 539a90aff..acd493317 100644 --- a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java +++ b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java @@ -88,7 +88,8 @@ public class JadxWrapper { return classList.stream().filter(cls -> { for (String exclude : excludedPackages) { - if (cls.getFullName().startsWith(exclude)) { + if (cls.getFullName().equals(exclude) + || cls.getFullName().startsWith(exclude + '.')) { return false; } } @@ -98,11 +99,15 @@ public class JadxWrapper { public List getExcludedPackages() { String excludedPackages = settings.getExcludedPackages().trim(); + if (excludedPackages.isEmpty()) { + return Collections.emptyList(); + } return Arrays.asList(excludedPackages.split("[ ]+")); } public void addExcludedPackage(String packageToExclude) { - settings.setExcludedPackages(settings.getExcludedPackages() + ' ' + packageToExclude); + String newExclusion = settings.getExcludedPackages() + ' ' + packageToExclude; + settings.setExcludedPackages(newExclusion.trim()); settings.sync(); } diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java index 8481bbbcb..ef710d18b 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java @@ -46,7 +46,8 @@ public class JPackage extends JNode implements Comparable { private void setEnabled(JadxWrapper wrapper) { List excludedPackages = wrapper.getExcludedPackages(); this.enabled = excludedPackages.isEmpty() - || excludedPackages.stream().filter(p -> !p.isEmpty()).noneMatch(p -> name.startsWith(p)); + || excludedPackages.stream().filter(p -> !p.isEmpty()) + .noneMatch(p -> name.equals(p) || name.startsWith(p + '.')); } public final void update() { From d111fd06809abc3586c4ff3e0a8bfe4be005aa8f Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Sat, 23 Mar 2019 08:35:00 +0100 Subject: [PATCH 22/25] feat: add a flag to disable debug info (#276) (PR #502) --- jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java | 8 ++++++++ jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java | 3 +++ jadx-core/src/main/java/jadx/api/JadxArgs.java | 9 +++++++++ jadx-core/src/main/java/jadx/core/Jadx.java | 4 +++- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java b/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java index aa9acc2e6..09e7c5a0e 100644 --- a/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java +++ b/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java @@ -47,6 +47,9 @@ public class JadxCLIArgs { @Parameter(names = {"--no-imports"}, description = "disable use of imports, always write entire package name") protected boolean useImports = true; + @Parameter(names = {"--no-debug-info"}, description = "disable debug info") + protected boolean debugInfo = true; + @Parameter(names = "--no-replace-consts", description = "don't replace constant value with matching constant field") protected boolean replaceConsts = true; @@ -160,6 +163,7 @@ public class JadxCLIArgs { args.setRespectBytecodeAccModifiers(respectBytecodeAccessModifiers); args.setExportAsGradleProject(exportAsGradleProject); args.setUseImports(useImports); + args.setDebugInfo(debugInfo); return args; } @@ -203,6 +207,10 @@ public class JadxCLIArgs { return useImports; } + public boolean isDebugInfo() { + return debugInfo; + } + public boolean isDeobfuscationOn() { return deobfuscationOn; } diff --git a/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java b/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java index 8ae1e5891..4bd28622b 100644 --- a/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java +++ b/jadx-cli/src/test/java/jadx/cli/JadxCLIArgsTest.java @@ -33,11 +33,14 @@ public class JadxCLIArgsTest { @Test public void testOptionsOverride() { assertThat(override(new JadxCLIArgs(), "--no-imports").isUseImports(), is(false)); + assertThat(override(new JadxCLIArgs(), "--no-debug-info").isDebugInfo(), is(false)); assertThat(override(new JadxCLIArgs(), "").isUseImports(), is(true)); JadxCLIArgs args = new JadxCLIArgs(); args.useImports = false; assertThat(override(args, "--no-imports").isUseImports(), is(false)); + args.debugInfo = false; + assertThat(override(args, "--no-debug-info").isDebugInfo(), is(false)); args = new JadxCLIArgs(); args.useImports = false; diff --git a/jadx-core/src/main/java/jadx/api/JadxArgs.java b/jadx-core/src/main/java/jadx/api/JadxArgs.java index d9c226ea5..003980905 100644 --- a/jadx-core/src/main/java/jadx/api/JadxArgs.java +++ b/jadx-core/src/main/java/jadx/api/JadxArgs.java @@ -27,6 +27,7 @@ public class JadxArgs { private boolean showInconsistentCode = false; private boolean useImports = true; + private boolean debugInfo = true; private boolean isSkipResources = false; private boolean isSkipSources = false; @@ -133,6 +134,14 @@ public class JadxArgs { this.useImports = useImports; } + public boolean isDebugInfo() { + return debugInfo; + } + + public void setDebugInfo(boolean debugInfo) { + this.debugInfo = debugInfo; + } + public boolean isSkipResources() { return isSkipResources; } diff --git a/jadx-core/src/main/java/jadx/core/Jadx.java b/jadx-core/src/main/java/jadx/core/Jadx.java index f870c9973..abeb17f0e 100644 --- a/jadx-core/src/main/java/jadx/core/Jadx.java +++ b/jadx-core/src/main/java/jadx/core/Jadx.java @@ -67,7 +67,9 @@ public class Jadx { passes.add(new BlockFinish()); passes.add(new SSATransform()); - passes.add(new DebugInfoVisitor()); + if (args.isDebugInfo()) { + passes.add(new DebugInfoVisitor()); + } passes.add(new TypeInference()); if (args.isRawCFGOutput()) { From 999793c944bab24b6b68ad2c2dd2084ba8705ac6 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sat, 23 Mar 2019 12:58:45 +0300 Subject: [PATCH 23/25] fix: skip trailing bytes in resource table decoding (#487) --- .../jadx/core/xmlgen/ParserConstants.java | 3 + .../java/jadx/core/xmlgen/ResTableParser.java | 71 +++++-------------- 2 files changed, 21 insertions(+), 53 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ParserConstants.java b/jadx-core/src/main/java/jadx/core/xmlgen/ParserConstants.java index 9497867cb..6f60fb7bb 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ParserConstants.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ParserConstants.java @@ -138,6 +138,9 @@ public class ParserConstants { protected static final int FLAG_COMPLEX = 0x0001; // If set, this resource has been declared public, so libraries are allowed to reference it. protected static final int FLAG_PUBLIC = 0x0002; + // If set, this is a weak resource and may be overriden by strong resources of the same name/type. + // This is only useful during linking with other resource tables. + protected static final int FLAG_WEAK = 0x0004; /** * ResTable_map diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java index 8c109c2ca..6fb0c9352 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java @@ -2,7 +2,6 @@ package jadx.core.xmlgen; import java.io.IOException; import java.io.InputStream; -import java.math.BigInteger; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -216,8 +215,7 @@ public class ResTableParser extends CommonBinaryParser { } private void parseEntry(PackageChunk pkg, int typeId, int entryId, EntryConfig config) throws IOException { - /* int size = */ - is.readInt16(); + int size = is.readInt16(); int flags = is.readInt16(); int key = is.readInt32(); @@ -227,17 +225,17 @@ public class ResTableParser extends CommonBinaryParser { ResourceEntry ri = new ResourceEntry(resRef, pkg.getName(), typeName, keyName); ri.setConfig(config); - if ((flags & FLAG_COMPLEX) == 0) { - ri.setSimpleValue(parseValue()); - } else { + if ((flags & FLAG_COMPLEX) != 0 || size == 16) { int parentRef = is.readInt32(); - ri.setParentRef(parentRef); int count = is.readInt32(); + ri.setParentRef(parentRef); List values = new ArrayList<>(count); for (int i = 0; i < count; i++) { values.add(parseValueMap()); } ri.setNamedValues(values); + } else { + ri.setSimpleValue(parseValue()); } resStorage.add(ri); } @@ -256,9 +254,8 @@ public class ResTableParser extends CommonBinaryParser { } private EntryConfig parseConfig() throws IOException { + long start = is.getPos(); int size = is.readInt32(); - int read = 28; - if (size < 28) { throw new IOException("Config size < 28"); } @@ -273,19 +270,18 @@ public class ResTableParser extends CommonBinaryParser { byte orientation = (byte) is.readInt8(); byte touchscreen = (byte) is.readInt8(); - int density = is.readInt16(); byte keyboard = (byte) is.readInt8(); byte navigation = (byte) is.readInt8(); byte inputFlags = (byte) is.readInt8(); - /* inputPad0 */is.readInt8(); + is.readInt8(); // inputPad0 short screenWidth = (short) is.readInt16(); short screenHeight = (short) is.readInt16(); short sdkVersion = (short) is.readInt16(); - /* minorVersion, now must always be 0 */is.readInt16(); + is.readInt16(); // minorVersion must always be 0 byte screenLayout = 0; byte uiMode = 0; @@ -294,7 +290,6 @@ public class ResTableParser extends CommonBinaryParser { screenLayout = (byte) is.readInt8(); uiMode = (byte) is.readInt8(); smallestScreenWidthDp = (short) is.readInt16(); - read = 32; } short screenWidthDp = 0; @@ -302,7 +297,6 @@ public class ResTableParser extends CommonBinaryParser { if (size >= 36) { screenWidthDp = (short) is.readInt16(); screenHeightDp = (short) is.readInt16(); - read = 36; } char[] localeScript = null; @@ -310,7 +304,6 @@ public class ResTableParser extends CommonBinaryParser { if (size >= 48) { localeScript = readScriptOrVariantChar(4).toCharArray(); localeVariant = readScriptOrVariantChar(8).toCharArray(); - read = 48; } byte screenLayout2 = 0; @@ -319,36 +312,9 @@ public class ResTableParser extends CommonBinaryParser { screenLayout2 = (byte) is.readInt8(); colorMode = (byte) is.readInt8(); is.readInt16(); // reserved padding - read = 52; } - if (size >= 56) { - is.readInt32(); - read = 56; - } - - int exceedingSize = size - KNOWN_CONFIG_BYTES; - if (exceedingSize > 0) { - byte[] buf = new byte[exceedingSize]; - read += exceedingSize; - is.readFully(buf); - BigInteger exceedingBI = new BigInteger(1, buf); - - if (exceedingBI.equals(BigInteger.ZERO)) { - LOG.info(String - .format("Config flags size > %d, but exceeding bytes are all zero, so it should be ok.", - KNOWN_CONFIG_BYTES)); - } else { - LOG.warn(String.format("Config flags size > %d. Size = %d. Exceeding bytes: 0x%X.", - KNOWN_CONFIG_BYTES, size, exceedingBI)); - isInvalid = true; - } - } - - int remainingSize = size - read; - if (remainingSize > 0) { - is.skip(remainingSize); - } + is.skipToPos(start + size, "Config skip trailing bytes"); return new EntryConfig(mcc, mnc, language, country, orientation, touchscreen, density, keyboard, navigation, @@ -358,7 +324,7 @@ public class ResTableParser extends CommonBinaryParser { colorMode, isInvalid, size); } - private char[] unpackLocaleOrRegion(byte in0, byte in1, char base) throws IOException { + private char[] unpackLocaleOrRegion(byte in0, byte in1, char base) { // check high bit, if so we have a packed 3 letter code if (((in0 >> 7) & 1) == 1) { int first = in1 & 0x1F; @@ -367,23 +333,22 @@ public class ResTableParser extends CommonBinaryParser { // since this function handles languages & regions, we add the value(s) to the base char // which is usually 'a' or '0' depending on language or region. - return new char[] { (char) (first + base), (char) (second + base), (char) (third + base) }; + return new char[]{(char) (first + base), (char) (second + base), (char) (third + base)}; } - return new char[] { (char) in0, (char) in1 }; + return new char[]{(char) in0, (char) in1}; } private String readScriptOrVariantChar(int length) throws IOException { - StringBuilder string = new StringBuilder(16); - - while(length-- != 0) { + long start = is.getPos(); + StringBuilder sb = new StringBuilder(16); + for (int i = 0; i < length; i++) { short ch = (short) is.readInt8(); if (ch == 0) { break; } - string.append((char) ch); + sb.append((char) ch); } - is.skip(length); - - return string.toString(); + is.skipToPos(start + length, "readScriptOrVariantChar"); + return sb.toString(); } } From 6e66dc25c827ffb39594ae46f3afce7defd824cc Mon Sep 17 00:00:00 2001 From: Skylot Date: Sat, 23 Mar 2019 22:36:49 +0300 Subject: [PATCH 24/25] fix: additional checks for loop exit edges and 'for' conversion (#483) --- .../dex/visitors/regions/IfRegionVisitor.java | 8 +- .../dex/visitors/regions/RegionMaker.java | 41 ++++++++-- .../visitors/regions/RegionMakerVisitor.java | 7 ++ .../java/jadx/core/utils/RegionUtils.java | 60 ++++++++++++++- .../integration/loops/TestIndexedLoop.java | 15 ++-- .../integration/loops/TestNotIndexedLoop.java | 77 +++++++++++++++++++ 6 files changed, 184 insertions(+), 24 deletions(-) create mode 100644 jadx-core/src/test/java/jadx/tests/integration/loops/TestNotIndexedLoop.java diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfRegionVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfRegionVisitor.java index 8429ad7f8..34cc99d5b 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfRegionVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/IfRegionVisitor.java @@ -140,7 +140,7 @@ public class IfRegionVisitor extends AbstractVisitor { || ifRegion.getElseRegion().contains(AFlag.ELSE_IF_CHAIN)) { return false; } - if (!hasBranchTerminator(ifRegion.getThenRegion())) { + if (!RegionUtils.hasExitBlock(ifRegion.getThenRegion())) { return false; } // code style check: @@ -162,12 +162,6 @@ public class IfRegionVisitor extends AbstractVisitor { return false; } - private static boolean hasBranchTerminator(IContainer region) { - // TODO: check for exception throw - return RegionUtils.hasExitBlock(region) - || RegionUtils.hasBreakInsn(region); - } - private static void invertIfRegion(IfRegion ifRegion) { IContainer elseRegion = ifRegion.getElseRegion(); if (elseRegion != null) { diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMaker.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMaker.java index c5aa7498a..abd353695 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMaker.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMaker.java @@ -7,6 +7,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Optional; import java.util.Set; import org.slf4j.Logger; @@ -192,7 +193,7 @@ public class RegionMaker { // add 'break' instruction before path cross between main loop exit and sub-exit for (Edge exitEdge : loop.getExitEdges()) { if (exitBlocks.contains(exitEdge.getSource())) { - insertBreak(stack, loopExit, exitEdge); + insertLoopBreak(stack, loop, loopExit, exitEdge); } } } @@ -288,6 +289,9 @@ public class RegionMaker { } } } + if (found && !checkLoopExits(loop, block)) { + found = false; + } if (found) { return loopRegion; } @@ -296,6 +300,32 @@ public class RegionMaker { return null; } + private boolean checkLoopExits(LoopInfo loop, BlockNode mainExitBlock) { + List exitEdges = loop.getExitEdges(); + if (exitEdges.size() < 2) { + return true; + } + Optional mainEdgeOpt = exitEdges.stream().filter(edge -> edge.getSource() == mainExitBlock).findFirst(); + if (!mainEdgeOpt.isPresent()) { + throw new JadxRuntimeException("Not found exit edge by exit block: " + mainExitBlock); + } + Edge mainExitEdge = mainEdgeOpt.get(); + BlockNode mainOutBlock = skipSyntheticSuccessor(mainExitEdge.getTarget()); + for (Edge exitEdge : exitEdges) { + if (exitEdge != mainExitEdge) { + BlockNode outBlock = skipSyntheticSuccessor(exitEdge.getTarget()); + // all exit paths must be same or don't cross (will be inside loop) + if (!isEqualPaths(mainOutBlock, outBlock)) { + BlockNode crossBlock = BlockUtils.getPathCross(mth, mainOutBlock, outBlock); + if (crossBlock != null) { + return false; + } + } + } + } + return true; + } + private BlockNode makeEndlessLoop(IRegion curRegion, RegionStack stack, LoopInfo loop, BlockNode loopStart) { LoopRegion loopRegion = new LoopRegion(curRegion, loop, null, false); curRegion.getSubBlocks().add(loopRegion); @@ -310,7 +340,7 @@ public class RegionMaker { if (exitEdges.size() == 1) { Edge exitEdge = exitEdges.get(0); BlockNode exit = exitEdge.getTarget(); - if (insertBreak(stack, exit, exitEdge)) { + if (insertLoopBreak(stack, loop, exit, exitEdge)) { BlockNode nextBlock = getNextBlock(exit); if (nextBlock != null) { stack.addExit(nextBlock); @@ -324,10 +354,10 @@ public class RegionMaker { for (BlockNode block : blocks) { if (BlockUtils.isPathExists(exit, block)) { stack.addExit(block); - insertBreak(stack, block, exitEdge); + insertLoopBreak(stack, loop, block, exitEdge); out = block; } else { - insertBreak(stack, exit, exitEdge); + insertLoopBreak(stack, loop, exit, exitEdge); } } } @@ -386,7 +416,7 @@ public class RegionMaker { return true; } - private boolean insertBreak(RegionStack stack, BlockNode loopExit, Edge exitEdge) { + private boolean insertLoopBreak(RegionStack stack, LoopInfo loop, BlockNode loopExit, Edge exitEdge) { BlockNode exit = exitEdge.getTarget(); BlockNode insertBlock = null; boolean confirm = false; @@ -425,6 +455,7 @@ public class RegionMaker { return false; } InsnNode breakInsn = new InsnNode(InsnType.BREAK, 0); + breakInsn.addAttr(AType.LOOP, loop); EdgeInsnAttr.addEdgeInsn(insertBlock, insertBlock.getSuccessors().get(0), breakInsn); stack.addExit(exit); // add label to 'break' if needed diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMakerVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMakerVisitor.java index 09f7987e9..ffea7cd43 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMakerVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionMakerVisitor.java @@ -104,6 +104,13 @@ public class RegionMakerVisitor extends AbstractVisitor { if (!insnAttr.getStart().equals(last)) { return; } + if (last instanceof BlockNode) { + BlockNode block = (BlockNode) last; + if (block.getInstructions().isEmpty()) { + block.getInstructions().add(insnAttr.getInsn()); + return; + } + } List insns = Collections.singletonList(insnAttr.getInsn()); region.add(new InsnContainer(insns)); } diff --git a/jadx-core/src/main/java/jadx/core/utils/RegionUtils.java b/jadx-core/src/main/java/jadx/core/utils/RegionUtils.java index 5ded8fe65..014fbc11b 100644 --- a/jadx-core/src/main/java/jadx/core/utils/RegionUtils.java +++ b/jadx-core/src/main/java/jadx/core/utils/RegionUtils.java @@ -8,6 +8,9 @@ import java.util.Set; import org.jetbrains.annotations.Nullable; import jadx.core.dex.attributes.AType; +import jadx.core.dex.attributes.AttrList; +import jadx.core.dex.attributes.nodes.LoopInfo; +import jadx.core.dex.attributes.nodes.LoopLabelAttr; import jadx.core.dex.instructions.InsnType; import jadx.core.dex.nodes.BlockNode; import jadx.core.dex.nodes.IBlock; @@ -91,22 +94,71 @@ public class RegionUtils { } /** - * Return true if last block in region has no successors + * Return true if last block in region has no successors or jump out insn (return or break) */ public static boolean hasExitBlock(IContainer container) { + return hasExitBlock(container, container); + } + + private static boolean hasExitBlock(IContainer rootContainer, IContainer container) { if (container instanceof BlockNode) { - return ((BlockNode) container).getSuccessors().isEmpty(); + BlockNode blockNode = (BlockNode) container; + if (blockNode.getSuccessors().isEmpty()) { + return true; + } + return isInsnExitContainer(rootContainer, (IBlock) container); + } else if (container instanceof IBranchRegion) { + return false; } else if (container instanceof IBlock) { - return true; + return isInsnExitContainer(rootContainer, (IBlock) container); } else if (container instanceof IRegion) { List blocks = ((IRegion) container).getSubBlocks(); return !blocks.isEmpty() - && hasExitBlock(blocks.get(blocks.size() - 1)); + && hasExitBlock(rootContainer, blocks.get(blocks.size() - 1)); } else { throw new JadxRuntimeException(unknownContainerType(container)); } } + private static boolean isInsnExitContainer(IContainer rootContainer, IBlock block) { + InsnNode lastInsn = BlockUtils.getLastInsn(block); + if (lastInsn == null) { + return false; + } + InsnType insnType = lastInsn.getType(); + if (insnType == InsnType.RETURN) { + return true; + } + if (insnType == InsnType.THROW) { + // check if after throw execution can continue in current container + CatchAttr catchAttr = lastInsn.get(AType.CATCH_BLOCK); + if (catchAttr != null) { + for (ExceptionHandler handler : catchAttr.getTryBlock().getHandlers()) { + if (RegionUtils.isRegionContainsBlock(rootContainer, handler.getHandlerBlock())) { + return false; + } + } + } + return true; + } + if (insnType == InsnType.BREAK) { + AttrList loopInfoAttrList = lastInsn.get(AType.LOOP); + if (loopInfoAttrList != null) { + for (LoopInfo loopInfo : loopInfoAttrList.getList()) { + if (!RegionUtils.isRegionContainsBlock(rootContainer, loopInfo.getStart())) { + return true; + } + } + } + LoopLabelAttr loopLabelAttr = lastInsn.get(AType.LOOP_LABEL); + if (loopLabelAttr != null + && !RegionUtils.isRegionContainsBlock(rootContainer, loopLabelAttr.getLoop().getStart())) { + return true; + } + } + return false; + } + public static boolean hasBreakInsn(IContainer container) { if (container instanceof IBlock) { return BlockUtils.checkLastInsnType((IBlock) container, InsnType.BREAK); diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java index 3b9181d34..a73bbaf2d 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestIndexedLoop.java @@ -1,5 +1,12 @@ package jadx.tests.integration.loops; +import java.io.File; + +import org.junit.jupiter.api.Test; + +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + import static jadx.tests.api.utils.JadxMatchers.containsOne; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; @@ -7,14 +14,6 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.nullValue; -import java.io.File; - -import org.junit.Test; - -import jadx.core.dex.nodes.ClassNode; -import jadx.tests.api.IntegrationTest; - - public class TestIndexedLoop extends IntegrationTest { public static class TestCls { diff --git a/jadx-core/src/test/java/jadx/tests/integration/loops/TestNotIndexedLoop.java b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNotIndexedLoop.java new file mode 100644 index 000000000..7642a4661 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/integration/loops/TestNotIndexedLoop.java @@ -0,0 +1,77 @@ +package jadx.tests.integration.loops; + +import java.io.File; + +import org.junit.jupiter.api.Test; + +import jadx.core.dex.nodes.ClassNode; +import jadx.tests.api.IntegrationTest; + +import static jadx.tests.api.utils.JadxMatchers.containsOne; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.nullValue; + +public class TestNotIndexedLoop extends IntegrationTest { + + public static class TestCls { + + public File test(File[] files) { + File file; + if (files != null) { + int length = files.length; + if (length == 0) { + file = null; + } else { + int i = 0; + while (true) { + if (i >= length) { + file = null; + break; + } + file = files[i]; + if (file.getName().equals("f")) { + break; + } + i++; + } + } + } else { + file = null; + } + if (file != null) { + file.deleteOnExit(); + } + return file; + } + + public void check() { + assertThat(test(null), nullValue()); + assertThat(test(new File[]{}), nullValue()); + + File file = new File("f"); + assertThat(test(new File[]{new File("a"), file}), is(file)); + } + } + + @Test + public void test() { + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, not(containsString("for ("))); + assertThat(code, containsOne("while (true) {")); + } + + @Test + public void testNoDebug() { + noDebugInfo(); + ClassNode cls = getClassNode(TestCls.class); + String code = cls.getCode().toString(); + + assertThat(code, not(containsString("for ("))); + assertThat(code, containsOne("while (true) {")); + } +} From ca21ca5d81b57f58c570e87b89718fcc481c44e2 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 24 Mar 2019 11:23:24 +0300 Subject: [PATCH 25/25] test: rewrite Spock tests to JUnit 5 --- build.gradle | 1 - .../java/jadx/core/dex/attributes/AType.java | 3 - .../jadx/tests/TestAttributeStorage.groovy | 82 ----------- .../groovy/jadx/tests/TestNameMapper.groovy | 39 ------ .../jadx/tests/TestSignatureParser.groovy | 107 --------------- .../groovy/jadx/tests/TestStringUtils.groovy | 43 ------ .../src/test/java/jadx/tests/TestsTest.java | 49 ------- .../functional/AttributeStorageTest.java | 84 ++++++++++++ .../jadx/tests/functional/NameMapperTest.java | 44 ++++++ .../tests/functional/SignatureParserTest.java | 128 ++++++++++++++++++ .../tests/functional/StringUtilsTest.java | 52 +++++++ .../integration/loops/TestLoopDetection3.java | 2 - .../jadx/gui/tests/TestJumpManager.groovy | 117 ---------------- .../jadx/gui/tests/TestStringRef.groovy | 71 ---------- .../gui/tests/TestVersionsComparator.groovy | 31 ----- .../gui/update/VersionComparatorTest.java | 33 +++++ .../java/jadx/gui/utils/JumpManagerTest.java | 123 +++++++++++++++++ .../jadx/gui/utils/search/StringRefTest.java | 71 ++++++++++ 18 files changed, 535 insertions(+), 545 deletions(-) delete mode 100644 jadx-core/src/test/groovy/jadx/tests/TestAttributeStorage.groovy delete mode 100644 jadx-core/src/test/groovy/jadx/tests/TestNameMapper.groovy delete mode 100644 jadx-core/src/test/groovy/jadx/tests/TestSignatureParser.groovy delete mode 100644 jadx-core/src/test/groovy/jadx/tests/TestStringUtils.groovy delete mode 100644 jadx-core/src/test/java/jadx/tests/TestsTest.java create mode 100644 jadx-core/src/test/java/jadx/tests/functional/AttributeStorageTest.java create mode 100644 jadx-core/src/test/java/jadx/tests/functional/NameMapperTest.java create mode 100644 jadx-core/src/test/java/jadx/tests/functional/SignatureParserTest.java create mode 100644 jadx-core/src/test/java/jadx/tests/functional/StringUtilsTest.java delete mode 100644 jadx-gui/src/test/groovy/jadx/gui/tests/TestJumpManager.groovy delete mode 100644 jadx-gui/src/test/groovy/jadx/gui/tests/TestStringRef.groovy delete mode 100644 jadx-gui/src/test/groovy/jadx/gui/tests/TestVersionsComparator.groovy create mode 100644 jadx-gui/src/test/java/jadx/gui/update/VersionComparatorTest.java create mode 100644 jadx-gui/src/test/java/jadx/gui/utils/JumpManagerTest.java create mode 100644 jadx-gui/src/test/java/jadx/gui/utils/search/StringRefTest.java diff --git a/build.gradle b/build.gradle index 14eaf2653..db3f86c15 100644 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,6 @@ allprojects { testCompile 'ch.qos.logback:logback-classic:1.2.3' testCompile 'org.hamcrest:hamcrest-library:2.1' testCompile 'org.mockito:mockito-core:2.25.1' - testCompile 'org.spockframework:spock-core:1.3-groovy-2.5' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.1' diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/AType.java b/jadx-core/src/main/java/jadx/core/dex/attributes/AType.java index 1c518d772..35b7346cd 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/AType.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/AType.java @@ -54,7 +54,4 @@ public class AType { public static final AType DECLARE_VARIABLES = new AType<>(); public static final AType LOOP_LABEL = new AType<>(); public static final AType IGNORE_EDGE = new AType<>(); - - private AType() { - } } diff --git a/jadx-core/src/test/groovy/jadx/tests/TestAttributeStorage.groovy b/jadx-core/src/test/groovy/jadx/tests/TestAttributeStorage.groovy deleted file mode 100644 index 89204f9e7..000000000 --- a/jadx-core/src/test/groovy/jadx/tests/TestAttributeStorage.groovy +++ /dev/null @@ -1,82 +0,0 @@ -package jadx.tests - -import jadx.core.dex.attributes.AType -import jadx.core.dex.attributes.AttributeStorage -import jadx.core.dex.attributes.IAttribute -import spock.lang.Specification - -import static jadx.core.dex.attributes.AFlag.SYNTHETIC - -class TestAttributeStorage extends Specification { - - AttributeStorage storage - - def setup() { - storage = new AttributeStorage() - } - - def "add flag"() { - when: - storage.add(SYNTHETIC) - then: - storage.contains(SYNTHETIC) - } - - def "remove flag"() { - setup: - storage.add(SYNTHETIC) - when: - storage.remove(SYNTHETIC) - then: - !storage.contains(SYNTHETIC) - } - - def TEST = new AType() - class TestAttr implements IAttribute { - AType getType() { TEST } - } - - def "add attribute"() { - setup: - def attr = new TestAttr() - when: - storage.add(attr) - then: - storage.contains(TEST) - storage.get(TEST) == attr - } - - def "remove attribute"() { - setup: - def attr = new TestAttr() - storage.add(attr) - when: - storage.remove(attr) - then: - !storage.contains(TEST) - storage.get(TEST) == null - } - - def "remove attribute other"() { - setup: - def attr = new TestAttr() - storage.add(attr) - when: - storage.remove(new TestAttr()) - then: - storage.contains(TEST) - storage.get(TEST) == attr - } - - def "clear"() { - setup: - storage.add(SYNTHETIC) - storage.add(new TestAttr()) - when: - storage.clear() - then: - !storage.contains(SYNTHETIC) - !storage.contains(TEST) - } - -} diff --git a/jadx-core/src/test/groovy/jadx/tests/TestNameMapper.groovy b/jadx-core/src/test/groovy/jadx/tests/TestNameMapper.groovy deleted file mode 100644 index ecd9b429c..000000000 --- a/jadx-core/src/test/groovy/jadx/tests/TestNameMapper.groovy +++ /dev/null @@ -1,39 +0,0 @@ -package jadx.tests - -import spock.lang.Specification - -import static jadx.core.deobf.NameMapper.isValidFullIdentifier - -class TestNameMapper extends Specification { - - def "test is Valid Full Identifier"() { - expect: - isValidFullIdentifier(valid) - where: - valid << [ - 'C', - 'Cc', - 'b.C', - 'b.Cc', - 'aAa.b.Cc', - 'a.b.Cc', - 'a.b.C_c', - 'a.b.C$c', - 'a.b.C9' - ] - } - - def "test is not Valid Full Identifier"() { - expect: - !isValidFullIdentifier(invalid) - where: - invalid << [ - '', - '5', - '7A', - '.C', - 'b.9C', - 'b..C', - ] - } -} diff --git a/jadx-core/src/test/groovy/jadx/tests/TestSignatureParser.groovy b/jadx-core/src/test/groovy/jadx/tests/TestSignatureParser.groovy deleted file mode 100644 index 02f11fa61..000000000 --- a/jadx-core/src/test/groovy/jadx/tests/TestSignatureParser.groovy +++ /dev/null @@ -1,107 +0,0 @@ -package jadx.tests - -import jadx.core.dex.instructions.args.ArgType -import jadx.core.dex.nodes.parser.SignatureParser -import spock.lang.Specification - -import static jadx.core.dex.instructions.args.ArgType.* - -class TestSignatureParser extends Specification { - def "simple types"() { - expect: - new SignatureParser(str).consumeType() == result - - where: - str | result - "" | null - "I" | INT - "[I" | array(INT) - "Ljava/lang/Object;" | OBJECT - "[Ljava/lang/Object;" | array(OBJECT) - "[[I" | array(array(INT)) - } - - def "generics"() { - expect: - new SignatureParser(str).consumeType() == result - - where: - str | result - "TD;" | genericType("D") - "La;" | generic("La;", genericType("V"), object("b")) - "La;>;" | generic("La;", generic("Lb;", object("Lc;"))) - "La/b/C;>;" | generic("La/b/C;", generic("Ld/E;", object("Lf/G;"))) - "La.c;" | genericInner(generic("La;", genericType("D")), "c", null) - "La.c/d;" | genericInner(generic("La;", genericType("D")), "c.d", null) - "La.c;" | genericInner(generic("La;", object("Lb;")), "c", genericType("V")) - } - - def "inner generic"() { - expect: - new SignatureParser(str).consumeType().getObject() == result - - where: - str | result - "La.LinkedHashIterator;>;" | "a\$LinkedHashIterator" - } - - def "wildcards"() { - expect: - new SignatureParser("La<$s>;").consumeType() == generic("La;", r as ArgType[]) - - where: - s | r - "*" | wildcard() - "+Lb;" | wildcard(object("b"), 1) - "-Lb;" | wildcard(object("b"), -1) - "+TV;" | wildcard(genericType("V"), 1) - "-TV;" | wildcard(genericType("V"), -1) - - "**" | [wildcard(), wildcard()] - "*Lb;" | [wildcard(), object("b")] - "*TV;" | [wildcard(), genericType("V")] - "TV;*" | [genericType("V"), wildcard()] - "Lb;*" | [object("b"), wildcard()] - - "***" | [wildcard(), wildcard(), wildcard()] - "*Lb;*" | [wildcard(), object("b"), wildcard()] - } - - def "generic map"() { - expect: - new SignatureParser(str).consumeGenericMap() == result.collectEntries { [genericType(it.key), it.value] } - - where: - str | result - "" | [:] - "" | ["T": []] - "" | ["K": [], "LongType": []] - "" | ["ResultT": [object("java.lang.Exception")]] - } - - def "method args"() { - when: - def argTypes = new SignatureParser("(Ljava/util/List<*>;)V").consumeMethodArgs() - then: - argTypes.size() == 1 - argTypes.get(0) == generic("Ljava/util/List;", wildcard()) - } - - def "method args 2"() { - when: - def argTypes = new SignatureParser("(La/b/C.d/E;)V").consumeMethodArgs() - then: - argTypes.size() == 1 - def argType = argTypes.get(0) - argType.getObject().indexOf('/') == -1 - argTypes.get(0) == genericInner(generic("La/b/C;", genericType("T")), "d.E", null) - } - - def "generic map: bad signature"() { - when: - def map = new SignatureParser(" p.getFileName().toString().endsWith(".java") - && !p.getFileName().toString().endsWith(TestsTest.class.getSimpleName() + ".java")) - .forEach(p -> { - try { - - List lines = Files.readAllLines(p); - - for (String line : lines) { - if (line.contains("org.junit.Assert")) { - String className = dir.relativize(p).toString(); - className = className.substring(0, className.length() - ".java".length()); - className = className.replace(File.separatorChar, '.'); - - fail("Test class " + className + " should be migrated to JUnit 5"); - } - } - } catch (IOException e) { - throw new RuntimeException(e); - } - }); - } -} diff --git a/jadx-core/src/test/java/jadx/tests/functional/AttributeStorageTest.java b/jadx-core/src/test/java/jadx/tests/functional/AttributeStorageTest.java new file mode 100644 index 000000000..2cfe06c71 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/functional/AttributeStorageTest.java @@ -0,0 +1,84 @@ +package jadx.tests.functional; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import jadx.core.dex.attributes.AType; +import jadx.core.dex.attributes.AttributeStorage; +import jadx.core.dex.attributes.IAttribute; + +import static jadx.core.dex.attributes.AFlag.SYNTHETIC; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; + +public class AttributeStorageTest { + private AttributeStorage storage; + + @BeforeEach + public void setup() { + storage = new AttributeStorage(); + } + + @Test + public void testAdd() { + storage.add(SYNTHETIC); + assertThat(storage.contains(SYNTHETIC), is(true)); + } + + @Test + public void testRemove() { + storage.add(SYNTHETIC); + storage.remove(SYNTHETIC); + assertThat(storage.contains(SYNTHETIC), is(false)); + } + + public static final AType TEST = new AType<>(); + + public static class TestAttr implements IAttribute { + @Override + public AType getType() { + return TEST; + } + } + + @Test + public void testAddAttribute() { + TestAttr attr = new TestAttr(); + storage.add(attr); + + assertThat(storage.contains(TEST), is(true)); + assertThat(storage.get(TEST), is(attr)); + } + + @Test + public void testRemoveAttribute() { + TestAttr attr = new TestAttr(); + storage.add(attr); + storage.remove(attr); + + assertThat(storage.contains(TEST), is(false)); + assertThat(storage.get(TEST), nullValue()); + } + + @Test + public void testRemoveOtherAttribute() { + TestAttr attr = new TestAttr(); + storage.add(attr); + storage.remove(new TestAttr()); + + assertThat(storage.contains(TEST), is(true)); + assertThat(storage.get(TEST), is(attr)); + } + + @Test + public void clear() { + storage.add(SYNTHETIC); + storage.add(new TestAttr()); + storage.clear(); + + assertThat(storage.contains(SYNTHETIC), is(false)); + assertThat(storage.contains(TEST), is(false)); + assertThat(storage.get(TEST), nullValue()); + } +} diff --git a/jadx-core/src/test/java/jadx/tests/functional/NameMapperTest.java b/jadx-core/src/test/java/jadx/tests/functional/NameMapperTest.java new file mode 100644 index 000000000..58f4b6968 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/functional/NameMapperTest.java @@ -0,0 +1,44 @@ +package jadx.tests.functional; + +import org.junit.jupiter.api.Test; + +import jadx.core.deobf.NameMapper; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +public class NameMapperTest { + + @Test + public void testValidFullIdentifiers() { + String[] validNames = { + "C", + "Cc", + "b.C", + "b.Cc", + "aAa.b.Cc", + "a.b.Cc", + "a.b.C_c", + "a.b.C$c", + "a.b.C9" + }; + for (String validName : validNames) { + assertThat(NameMapper.isValidFullIdentifier(validName), is(true)); + } + } + + @Test + public void testInvalidFullIdentifiers() { + String[] invalidNames = { + "", + "5", + "7A", + ".C", + "b.9C", + "b..C", + }; + for (String invalidName : invalidNames) { + assertThat(NameMapper.isValidFullIdentifier(invalidName), is(false)); + } + } +} diff --git a/jadx-core/src/test/java/jadx/tests/functional/SignatureParserTest.java b/jadx-core/src/test/java/jadx/tests/functional/SignatureParserTest.java new file mode 100644 index 000000000..34d1c1271 --- /dev/null +++ b/jadx-core/src/test/java/jadx/tests/functional/SignatureParserTest.java @@ -0,0 +1,128 @@ +package jadx.tests.functional; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.junit.jupiter.api.Test; + +import jadx.core.dex.instructions.args.ArgType; +import jadx.core.dex.nodes.parser.SignatureParser; + +import static jadx.core.dex.instructions.args.ArgType.INT; +import static jadx.core.dex.instructions.args.ArgType.OBJECT; +import static jadx.core.dex.instructions.args.ArgType.array; +import static jadx.core.dex.instructions.args.ArgType.generic; +import static jadx.core.dex.instructions.args.ArgType.genericInner; +import static jadx.core.dex.instructions.args.ArgType.genericType; +import static jadx.core.dex.instructions.args.ArgType.object; +import static jadx.core.dex.instructions.args.ArgType.wildcard; +import static java.util.Collections.emptyList; +import static java.util.Collections.singletonList; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.anEmptyMap; +import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.is; + +class SignatureParserTest { + + @Test + public void testSimpleTypes() { + checkType("", null); + checkType("I", INT); + checkType("[I", array(INT)); + checkType("Ljava/lang/Object;", OBJECT); + checkType("[Ljava/lang/Object;", array(OBJECT)); + checkType("[[I", array(array(INT))); + } + + private static void checkType(String str, ArgType type) { + assertThat(new SignatureParser(str).consumeType(), is(type)); + } + + @Test + public void testGenerics() { + checkType("TD;", genericType("D")); + checkType("La;", generic("La;", new ArgType[]{genericType("V"), object("b")})); + checkType("La;>;", generic("La;", new ArgType[]{generic("Lb;", new ArgType[]{object("Lc;")})})); + checkType("La/b/C;>;", generic("La/b/C;", new ArgType[]{generic("Ld/E;", new ArgType[]{object("Lf/G;")})})); + checkType("La.c;", genericInner(generic("La;", new ArgType[]{genericType("D")}), "c", null)); + checkType("La.c/d;", genericInner(generic("La;", new ArgType[]{genericType("D")}), "c.d", null)); + checkType("La.c;", genericInner(generic("La;", new ArgType[]{object("Lb;")}), "c", new ArgType[]{genericType("V")})); + } + + @Test + public void testInnerGeneric() { + String signature = "La.LinkedHashIterator;>;"; + String objectStr = new SignatureParser(signature).consumeType().getObject(); + assertThat(objectStr, is("a$LinkedHashIterator")); + } + + @Test + public void testWildcards() { + checkWildcards("*", wildcard()); + checkWildcards("+Lb;", wildcard(object("b"), 1)); + checkWildcards("-Lb;", wildcard(object("b"), -1)); + checkWildcards("+TV;", wildcard(genericType("V"), 1)); + checkWildcards("-TV;", wildcard(genericType("V"), -1)); + + checkWildcards("**", wildcard(), wildcard()); + checkWildcards("*Lb;", wildcard(), object("b")); + checkWildcards("*TV;", wildcard(), genericType("V")); + checkWildcards("TV;*", genericType("V"), wildcard()); + checkWildcards("Lb;*", object("b"), wildcard()); + + checkWildcards("***", wildcard(), wildcard(), wildcard()); + checkWildcards("*Lb;*", wildcard(), object("b"), wildcard()); + } + + private static void checkWildcards(String w, ArgType... types) { + ArgType parsedType = new SignatureParser("La<" + w + ">;").consumeType(); + ArgType expectedType = generic("La;", types); + assertThat(parsedType, is(expectedType)); + } + + @Test + public void testGenericMap() { + checkGenerics(""); + checkGenerics("", "T", emptyList()); + checkGenerics("", "K", emptyList(), "LongType", emptyList()); + checkGenerics("", "ResultT", singletonList(object("java.lang.Exception"))); + } + + @SuppressWarnings("unchecked") + private static void checkGenerics(String g, Object... objs) { + Map> map = new SignatureParser(g).consumeGenericMap(); + Map> expectedMap = new LinkedHashMap<>(); + for (int i = 0; i < objs.length; i += 2) { + ArgType generic = genericType((String) objs[i]); + List list = (List) objs[i + 1]; + expectedMap.put(generic, list); + } + assertThat(map, is(expectedMap)); + } + + @Test + public void testMethodArgs() { + List argTypes = new SignatureParser("(Ljava/util/List<*>;)V").consumeMethodArgs(); + + assertThat(argTypes, hasSize(1)); + assertThat(argTypes.get(0), is(generic("Ljava/util/List;", new ArgType[]{wildcard()}))); + } + + @Test + public void testMethodArgs2() { + List argTypes = new SignatureParser("(La/b/C.d/E;)V").consumeMethodArgs(); + + assertThat(argTypes, hasSize(1)); + ArgType argType = argTypes.get(0); + assertThat(argType.getObject().indexOf('/'), is(-1)); + assertThat(argType, is(genericInner(generic("La/b/C;", new ArgType[]{genericType("T")}), "d.E", null))); + } + + @Test + public void testBadGenericMap() { + Map> map = new SignatureParser(" expectedStringRegList = Arrays.stream(result).map(StringRef::fromStr).collect(Collectors.toList()); + assertThat(StringRef.split(str, splitBy), is(expectedStringRegList)); + + // compare with original split + assertThat(str.split(splitBy), is(result)); + } +}