/* * Copyright (C) 2011 The Android Open Source Project * * 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 com.android.tools.lint.checks; import com.android.tools.lint.detector.api.Detector; @SuppressWarnings("javadoc") public class SdCardDetectorTest extends AbstractCheckTest { @Override protected Detector getDetector() { return new SdCardDetector(); } public void test() throws Exception { assertEquals( "src/test/pkg/SdCardTest.java:13: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " private static final String SDCARD_TEST_HTML = \"/sdcard/test.html\";\n" + " ~~~~~~~~~~~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:14: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " public static final String SDCARD_ROOT = \"/sdcard\";\n" + " ~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:15: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " public static final String PACKAGES_PATH = \"/sdcard/o/packages/\";\n" + " ~~~~~~~~~~~~~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:16: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " File deviceDir = new File(\"/sdcard/vr\");\n" + " ~~~~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:20: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " android.os.Debug.startMethodTracing(\"/sdcard/launcher\");\n" + " ~~~~~~~~~~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:22: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " if (new File(\"/sdcard\").exists()) {\n" + " ~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:24: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " String FilePath = \"/sdcard/\" + new File(\"test\");\n" + " ~~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:29: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " intent.setDataAndType(Uri.parse(\"file://sdcard/foo.json\"), \"application/bar-json\");\n" + " ~~~~~~~~~~~~~~~~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:30: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " intent.putExtra(\"path-filter\", \"/sdcard(/.+)*\");\n" + " ~~~~~~~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:31: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " intent.putExtra(\"start-dir\", \"/sdcard\");\n" + " ~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:32: Warning: Do not hardcode \"/data/\"; use Context.getFilesDir().getPath() instead [SdCardPath]\n" + " String mypath = \"/data/data/foo\";\n" + " ~~~~~~~~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:33: Warning: Do not hardcode \"/data/\"; use Context.getFilesDir().getPath() instead [SdCardPath]\n" + " String base = \"/data/data/foo.bar/test-profiling\";\n" + " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + "src/test/pkg/SdCardTest.java:34: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " String s = \"file://sdcard/foo\";\n" + " ~~~~~~~~~~~~~~~~~~~\n" + "0 errors, 13 warnings\n", lintProject("src/test/pkg/SdCardTest.java.txt=>src/test/pkg/SdCardTest.java")); } public void testSuppress() throws Exception { assertEquals( // The only reference in the file not covered by an annotation "src/test/pkg/SuppressTest5.java:40: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " String notAnnotated = \"/sdcard/mypath\";\n" + " ~~~~~~~~~~~~~~~~\n" + "0 errors, 1 warnings\n" + "", // File with lots of /sdcard references, but with @SuppressLint warnings // on fields, methods, variable declarations etc lintProject("src/test/pkg/SuppressTest5.java.txt=>src/test/pkg/SuppressTest5.java")); } public void testUtf8Bom() throws Exception { assertEquals( "src/test/pkg/Utf8BomTest.java:4: Warning: Do not hardcode \"/sdcard/\"; use Environment.getExternalStorageDirectory().getPath() instead [SdCardPath]\n" + " String s = \"/sdcard/mydir\";\n" + " ~~~~~~~~~~~~~~~\n" + "0 errors, 1 warnings\n" + "", lintProject("src/test/pkg/Utf8BomTest.java.data=>src/test/pkg/Utf8BomTest.java")); } }