blob: 6385f9da35d5571b4879fd652b83f2f0c47de8fe [file] [log] [blame]
/*
* Copyright (c) 2011, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.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.eclipse.org/legal/epl-v10.html
*
* 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.google.dart.tools.core;
import com.google.dart.tools.core.internal.model.DartIgnoreManager;
import com.google.dart.tools.core.mock.MockFile;
import com.google.dart.tools.core.mock.MockProject;
import com.google.dart.tools.core.test.util.TestProject;
import static com.google.dart.tools.core.DartCore.PUBSPEC_FILE_NAME;
import static com.google.dart.tools.core.DartCore.PUBSPEC_LOCK_FILE_NAME;
import junit.framework.TestCase;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import java.lang.reflect.Method;
import java.util.ArrayList;
public class DartCoreTest_New extends TestCase {
public void test_DartCore_getDartLikeExtensions() {
String[] extensions = DartCore.getDartLikeExtensions();
assertNotNull(extensions);
assertEquals(1, extensions.length);
assertEquals("dart", extensions[0]);
}
public void test_DartCore_isAnalyzed_false() throws Exception {
ArrayList<String> patterns = getExclusionPatterns();
ArrayList<String> savedPatterns = new ArrayList<String>(patterns);
try {
final String pattern = "/this/does/not";
patterns.clear();
patterns.add(pattern);
IFile file = new MockFile(new MockProject()) {
@Override
public IPath getLocation() {
return new Path(pattern + "/exist");
}
};
assertFalse(DartCore.isAnalyzed(file));
assertTrue(DartIgnoreManager.getInstance().isIgnored(file.getLocation().toPortableString()));
} finally {
patterns.clear();
patterns.addAll(savedPatterns);
}
}
public void test_DartCore_isAnalyzed_true() {
IFile file = new MockFile(new MockProject()) {
@Override
public IPath getLocation() {
return new Path("/this/does/not/exist");
}
};
assertTrue(DartCore.isAnalyzed(file));
assertFalse(DartIgnoreManager.getInstance().isIgnored(file.getLocation().toPortableString()));
}
public void test_DartCore_isCSSLikeFileName() {
assertTrue(DartCore.isCssLikeFileName("name.css"));
assertTrue(DartCore.isCssLikeFileName("name.CSS"));
assertTrue(DartCore.isCssLikeFileName("name.cSS"));
assertFalse(DartCore.isCssLikeFileName("name.cs"));
assertFalse(DartCore.isCssLikeFileName("namecss"));
}
public void test_DartCore_isDartGeneratedFile() {
assertTrue(DartCore.isDartGeneratedFile("name.js"));
assertTrue(DartCore.isDartGeneratedFile("name.JS"));
assertTrue(DartCore.isDartGeneratedFile("name.jS"));
assertFalse(DartCore.isDartGeneratedFile("name.j"));
assertFalse(DartCore.isDartGeneratedFile("namejs"));
}
public void test_DartCore_isDartLikeFileName() {
assertTrue(DartCore.isDartLikeFileName("name.dart"));
assertTrue(DartCore.isDartLikeFileName("name.DART"));
assertTrue(DartCore.isDartLikeFileName("name.dART"));
assertFalse(DartCore.isDartLikeFileName("name.dar"));
assertFalse(DartCore.isDartLikeFileName("namedart"));
}
public void test_DartCore_isHTMLLikeFileName() {
assertTrue(DartCore.isHtmlLikeFileName("name.html"));
assertTrue(DartCore.isHtmlLikeFileName("name.HTML"));
assertTrue(DartCore.isHtmlLikeFileName("name.hTML"));
assertFalse(DartCore.isHtmlLikeFileName("name.ht"));
assertFalse(DartCore.isHtmlLikeFileName("namehtml"));
// again for "htm"
assertTrue(DartCore.isHtmlLikeFileName("name.htm"));
assertTrue(DartCore.isHtmlLikeFileName("name.HTM"));
assertTrue(DartCore.isHtmlLikeFileName("name.hTM"));
assertFalse(DartCore.isHtmlLikeFileName("namehtm"));
}
public void test_DartCore_isJSLikeFileName() {
assertTrue(DartCore.isJSLikeFileName("name.js"));
assertTrue(DartCore.isJSLikeFileName("name.JS"));
assertTrue(DartCore.isJSLikeFileName("name.jS"));
assertFalse(DartCore.isJSLikeFileName("name.j"));
assertFalse(DartCore.isJSLikeFileName("namejs"));
}
public void test_DartCore_isTXTLikeFileName() {
assertTrue(DartCore.isTxtLikeFileName("name.txt"));
assertTrue(DartCore.isTxtLikeFileName("name.TXT"));
assertTrue(DartCore.isTxtLikeFileName("name.tXt"));
assertFalse(DartCore.isTxtLikeFileName("name.tx"));
assertFalse(DartCore.isTxtLikeFileName("nametxt"));
}
public void test_isInBuildDirectory() throws Exception {
TestProject project = getTestProject();
project.setFileContent("build/file.dart", "library myLib;");
IResource file = project.getFile("build/file.dart");
assertTrue(DartCore.isInBuildDirectory(file));
project.setFileContent("lib/build/file.dart", "library myLib;");
file = project.getFile("lib/build/file.dart");
assertFalse(DartCore.isInBuildDirectory(file));
}
@SuppressWarnings("unchecked")
private ArrayList<String> getExclusionPatterns() throws Exception {
Method method = DartIgnoreManager.class.getDeclaredMethod("getExclusionPatterns");
method.setAccessible(true);
return (ArrayList<String>) method.invoke(DartIgnoreManager.getInstance());
}
private TestProject getTestProject() throws Exception {
TestProject testProject = new TestProject();
if (testProject.getProject().exists()) {
testProject.setFileContent(PUBSPEC_FILE_NAME, "name: myapp");
testProject.createFolder(DartCore.BUILD_DIRECTORY_NAME);
testProject.createFolder("lib/build");
testProject.setFileContent(PUBSPEC_LOCK_FILE_NAME, "packages:");
}
return testProject;
}
}