/* * 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; } }