diff options
Diffstat (limited to 'smalidea/src/test/java/org/jf/smalidea/findUsages/ClassUsageTypeTest.java')
-rw-r--r-- | smalidea/src/test/java/org/jf/smalidea/findUsages/ClassUsageTypeTest.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/smalidea/src/test/java/org/jf/smalidea/findUsages/ClassUsageTypeTest.java b/smalidea/src/test/java/org/jf/smalidea/findUsages/ClassUsageTypeTest.java new file mode 100644 index 00000000..18a61941 --- /dev/null +++ b/smalidea/src/test/java/org/jf/smalidea/findUsages/ClassUsageTypeTest.java @@ -0,0 +1,74 @@ +package org.jf.smalidea.findUsages; + +import com.intellij.usages.impl.rules.UsageType; + +public class ClassUsageTypeTest extends UsageTypeTest { + public ClassUsageTypeTest() { + super(new SmaliUsageTypeProvider()); + } + + public void testClassUsageTypes() throws Exception { + doTest("blah.smali", "" + + ".class public Lbl<ref:1>ah;\n" + + ".super Lbl<ref:2>ah;\n" + + ".implements Lbl<ref:3>ah;\n" + + "\n" + + ".annotation build Lbl<ref:22>ah;\n" + + " value = .subannotation Lbl<ref:23>ah;\n" + + " value = Lbl<ref:24>ah;\n" + + " .end subannotation\n" + + ".end annotation\n" + + "\n" + + ".field static public blah:Lbl<ref:4>ah; = Lbl<ref:25>ah;\n" + + "\n" + + ".method public blah(Lbl<ref:5>ah;)Lbl<ref:6>ah;\n" + + " .registers 2\n" + + " .local p0, \"this\":Lbl<ref:7>ah;\n" + + "\n" + + " :start\n" + + " iget-object v0, v0, Lbl<ref:8>ah;->blah:Lbl<ref:9>ah;\n" + + "\n" + + " invoke-virtual {v0}, Lbl<ref:10>ah;->blah(Lbl<ref:11>ah;)Lbl<ref:12>ah;\n" + + "\n" + + " instance-of v0, v0, Lbl<ref:13>ah;\n" + + " check-cast v0, Lbl<ref:14>ah;\n" + + " new-instance v0, Lbl<ref:15>ah;\n" + + " const-class v0, Lbl<ref:16>ah;\n" + + " throw-verification-error generic-error, Lbl<ref:17>ah;\n" + + "\n" + + " filled-new-array {v0, v0, v0, v0, v0}, Lbl<ref:18>ah;\n" + + " new-array v0, v0, Lbl<ref:19>ah;\n" + + " filled-new-array/range {v0}, Lbl<ref:20>ah;\n" + + " :end\n" + + "\n" + + " .catch Lbl<ref:21>ah; { :start .. :end } :handler\n" + + " :handler\n" + + " return-void\n" + + ".end method", + 1, SmaliUsageTypeProvider.CLASS_DECLARATION, + 2, UsageType.CLASS_EXTENDS_IMPLEMENTS_LIST, + 3, UsageType.CLASS_EXTENDS_IMPLEMENTS_LIST, + 4, UsageType.CLASS_FIELD_DECLARATION, + 5, UsageType.CLASS_METHOD_PARAMETER_DECLARATION, + 6, UsageType.CLASS_METHOD_RETURN_TYPE, + 7, UsageType.CLASS_LOCAL_VAR_DECLARATION, + 8, SmaliUsageTypeProvider.FIELD_DECLARING_TYPE_REFERENCE, + 9, SmaliUsageTypeProvider.FIELD_TYPE_REFERENCE, + 10, SmaliUsageTypeProvider.METHOD_DECLARING_TYPE_REFERENCE, + 11, SmaliUsageTypeProvider.METHOD_PARAM_REFERENCE, + 12, SmaliUsageTypeProvider.METHOD_RETURN_TYPE_REFERENCE, + 13, UsageType.CLASS_INSTANCE_OF, + 14, UsageType.CLASS_CAST_TO, + 15, UsageType.CLASS_NEW_OPERATOR, + 16, UsageType.CLASS_CLASS_OBJECT_ACCESS, + 17, SmaliUsageTypeProvider.VERIFICATION_ERROR, + 18, UsageType.CLASS_NEW_ARRAY, + 19, UsageType.CLASS_NEW_ARRAY, + 20, UsageType.CLASS_NEW_ARRAY, + 21, UsageType.CLASS_CATCH_CLAUSE_PARAMETER_DECLARATION, + 22, UsageType.ANNOTATION, + 23, UsageType.ANNOTATION, + 24, SmaliUsageTypeProvider.LITERAL, + 25, SmaliUsageTypeProvider.LITERAL); + } +} |