diff options
Diffstat (limited to 'lint/libs/lint_checks/tests')
4 files changed, 66 insertions, 7 deletions
diff --git a/lint/libs/lint_checks/tests/src/com/android/tools/lint/MainTest.java b/lint/libs/lint_checks/tests/src/com/android/tools/lint/MainTest.java index 6bd8c2d..0ea384e 100644 --- a/lint/libs/lint_checks/tests/src/com/android/tools/lint/MainTest.java +++ b/lint/libs/lint_checks/tests/src/com/android/tools/lint/MainTest.java @@ -18,7 +18,6 @@ package com.android.tools.lint; import com.android.tools.lint.checks.AbstractCheckTest; import com.android.tools.lint.checks.AccessibilityDetector; -import com.android.tools.lint.checks.BuiltinIssueRegistry; import com.android.tools.lint.detector.api.Detector; import java.io.ByteArrayOutputStream; @@ -29,12 +28,6 @@ import java.util.List; @SuppressWarnings("javadoc") public class MainTest extends AbstractCheckTest { - @Override - protected void setUp() throws Exception { - super.setUp(); - BuiltinIssueRegistry.reset(); - } - public void testWrap() { String s = "Hardcoding text attributes directly in layout files is bad for several reasons:\n" + diff --git a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/AbstractCheckTest.java b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/AbstractCheckTest.java index 8b06c4d..561e424 100644 --- a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/AbstractCheckTest.java +++ b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/AbstractCheckTest.java @@ -55,6 +55,12 @@ import junit.framework.TestCase; /** Common utility methods for the various lint check tests */ @SuppressWarnings("javadoc") public abstract class AbstractCheckTest extends TestCase { + @Override + protected void setUp() throws Exception { + super.setUp(); + BuiltinIssueRegistry.reset(); + } + protected abstract Detector getDetector(); private Detector mDetector; diff --git a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/IconDetectorTest.java b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/IconDetectorTest.java index f45ae08..1a84982 100644 --- a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/IconDetectorTest.java +++ b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/IconDetectorTest.java @@ -17,6 +17,12 @@ package com.android.tools.lint.checks; import com.android.tools.lint.detector.api.Detector; +import com.android.tools.lint.detector.api.Issue; +import com.android.tools.lint.detector.api.Project; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; @SuppressWarnings("javadoc") public class IconDetectorTest extends AbstractCheckTest { @@ -25,7 +31,33 @@ public class IconDetectorTest extends AbstractCheckTest { return new IconDetector(); } + private Set<Issue> mEnabled = new HashSet<Issue>(); + private static Set<Issue> ALL = new HashSet<Issue>(); + static { + ALL.add(IconDetector.DUPLICATES_CONFIGURATIONS); + ALL.add(IconDetector.DUPLICATES_NAMES); + ALL.add(IconDetector.GIF_USAGE); + ALL.add(IconDetector.ICON_DENSITIES); + ALL.add(IconDetector.ICON_DIP_SIZE); + ALL.add(IconDetector.ICON_EXPECTED_SIZE); + ALL.add(IconDetector.ICON_EXTENSION); + ALL.add(IconDetector.ICON_LOCATION); + ALL.add(IconDetector.ICON_MISSING_FOLDER); + ALL.add(IconDetector.ICON_NODPI); + } + + @Override + protected TestConfiguration getConfiguration(Project project) { + return new TestConfiguration() { + @Override + public boolean isEnabled(Issue issue) { + return super.isEnabled(issue) && mEnabled.contains(issue); + } + }; + } + public void test() throws Exception { + mEnabled = ALL; assertEquals( "res/drawable-mdpi/sample_icon.gif: Warning: Using the .gif format for bitmaps is discouraged [GifUsage]\n" + "res/drawable/ic_launcher.png: Warning: The ic_launcher.png icon has identical contents in the following configuration folders: drawable-mdpi, drawable [IconDuplicatesConfig]\n" + @@ -49,6 +81,7 @@ public class IconDetectorTest extends AbstractCheckTest { } public void testApi1() throws Exception { + mEnabled = ALL; assertEquals( "No warnings.", @@ -59,6 +92,7 @@ public class IconDetectorTest extends AbstractCheckTest { } public void test2() throws Exception { + mEnabled = ALL; assertEquals( "res/drawable-hdpi/other.9.png: Warning: The following unrelated icon files have identical contents: appwidget_bg.9.png, other.9.png [IconDuplicates]\n" + " res/drawable-hdpi/appwidget_bg.9.png: <No location-specific message\n" + @@ -78,6 +112,7 @@ public class IconDetectorTest extends AbstractCheckTest { } public void testNoDpi() throws Exception { + mEnabled = ALL; assertEquals( "res/drawable-mdpi/frame.png: Warning: The following images appear in both -nodpi and in a density folder: frame.png [IconNoDpi]\n" + "res/drawable-xlarge-nodpi-v11/frame.png: Warning: The frame.png icon has identical contents in the following configuration folders: drawable-mdpi, drawable-nodpi, drawable-xlarge-nodpi-v11 [IconDuplicatesConfig]\n" + @@ -94,6 +129,7 @@ public class IconDetectorTest extends AbstractCheckTest { } public void testNoDpi2() throws Exception { + mEnabled = ALL; // Having additional icon names in the no-dpi folder should not cause any complaints assertEquals( "res/drawable-xhdpi/frame.png: Warning: The image frame.png varies significantly in its density-independent (dip) size across the various density versions: drawable-ldpi/frame.png: 629x387 dp (472x290 px), drawable-mdpi/frame.png: 472x290 dp (472x290 px), drawable-hdpi/frame.png: 315x193 dp (472x290 px), drawable-xhdpi/frame.png: 236x145 dp (472x290 px) [IconDipSize]\n" + @@ -119,6 +155,7 @@ public class IconDetectorTest extends AbstractCheckTest { } public void testNoDpiMix() throws Exception { + mEnabled = ALL; assertEquals( "res/drawable-mdpi/frame.xml: Warning: The following images appear in both -nodpi and in a density folder: frame.png, frame.xml [IconNoDpi]\n" + " res/drawable-mdpi/frame.png: <No location-specific message\n" + @@ -133,6 +170,7 @@ public class IconDetectorTest extends AbstractCheckTest { public void testMixedFormat() throws Exception { + mEnabled = ALL; // Test having a mixture of .xml and .png resources for the same name // Make sure we don't get: // drawable-hdpi: Warning: Missing the following drawables in drawable-hdpi: f.png (found in drawable-mdpi) @@ -145,4 +183,26 @@ public class IconDetectorTest extends AbstractCheckTest { "res/drawable/states.xml=>res/drawable-hdpi/f.xml", "res/drawable/states.xml=>res/drawable-xhdpi/f.xml")); } + + public void testMisleadingFileName() throws Exception { + mEnabled = Collections.singleton(IconDetector.ICON_EXTENSION); + assertEquals( + "res/drawable-mdpi/frame.gif: Warning: Misleading file extension; named .gif but the file format is png [IconExtension]\n" + + "res/drawable-mdpi/frame.jpg: Warning: Misleading file extension; named .jpg but the file format is png [IconExtension]\n" + + "res/drawable-mdpi/myjpg.png: Warning: Misleading file extension; named .png but the file format is JPEG [IconExtension]\n" + + "res/drawable-mdpi/sample_icon.jpeg: Warning: Misleading file extension; named .jpeg but the file format is gif [IconExtension]\n" + + "res/drawable-mdpi/sample_icon.jpg: Warning: Misleading file extension; named .jpg but the file format is gif [IconExtension]\n" + + "res/drawable-mdpi/sample_icon.png: Warning: Misleading file extension; named .png but the file format is gif [IconExtension]\n" + + "0 errors, 6 warnings\n", + + lintProject( + "res/drawable-mdpi/sample_icon.jpg=>res/drawable-mdpi/myjpg.jpg", // VALID + "res/drawable-mdpi/sample_icon.jpg=>res/drawable-mdpi/myjpg.jpeg", // VALID + "res/drawable-mdpi/frame.png=>res/drawable-mdpi/frame.gif", + "res/drawable-mdpi/frame.png=>res/drawable-mdpi/frame.jpg", + "res/drawable-mdpi/sample_icon.jpg=>res/drawable-mdpi/myjpg.png", + "res/drawable-mdpi/sample_icon.gif=>res/drawable-mdpi/sample_icon.jpg", + "res/drawable-mdpi/sample_icon.gif=>res/drawable-mdpi/sample_icon.jpeg", + "res/drawable-mdpi/sample_icon.gif=>res/drawable-mdpi/sample_icon.png")); + } }
\ No newline at end of file diff --git a/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/res/drawable-mdpi/sample_icon.jpg b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/res/drawable-mdpi/sample_icon.jpg Binary files differnew file mode 100644 index 0000000..f872487 --- /dev/null +++ b/lint/libs/lint_checks/tests/src/com/android/tools/lint/checks/data/res/drawable-mdpi/sample_icon.jpg |