/* * Copyright (c) 2012, 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.engine.sdk; import com.google.dart.engine.source.Source; import junit.framework.TestCase; import java.io.File; public class DirectoryBasedDartSdkTest extends TestCase { public void fail_getDocFileFor() { DirectoryBasedDartSdk sdk = createDartSdk(); File docFile = sdk.getDocFileFor("html"); assertNotNull(docFile); } public void test_creation() { DirectoryBasedDartSdk sdk = createDartSdk(); assertNotNull(sdk); } public void test_fromFile_invalid() { DirectoryBasedDartSdk sdk = createDartSdk(); assertNull(sdk.fromFileUri(new File("/not/in/the/sdk.dart").toURI())); } public void test_fromFile_library() { DirectoryBasedDartSdk sdk = createDartSdk(); Source source = sdk.fromFileUri(new File( new File(sdk.getLibraryDirectory(), "core"), "core.dart").toURI()); assertNotNull(source); assertTrue(source.isInSystemLibrary()); assertEquals("dart:core", source.getUri().toString()); } public void test_fromFile_part() { DirectoryBasedDartSdk sdk = createDartSdk(); Source source = sdk.fromFileUri(new File( new File(sdk.getLibraryDirectory(), "core"), "num.dart").toURI()); assertNotNull(source); assertTrue(source.isInSystemLibrary()); assertEquals("dart:core/num.dart", source.getUri().toString()); } // These tests fail if Dartium is not present - I don't believe we want to test that at this level. // public void test_getDartiumExecutable() throws Exception { // DirectoryBasedDartSdk sdk = createDartSdk(); // File file = sdk.getDartiumExecutable(); // assertNotNull(file); // assertTrue(file.exists()); // } // // public void test_getDartiumWorkingDirectory() { // DirectoryBasedDartSdk sdk = createDartSdk(); // File directory = sdk.getDartiumWorkingDirectory(); // assertNotNull(directory); // assertTrue(directory.exists()); // } public void test_getDart2JsExecutable() { DirectoryBasedDartSdk sdk = createDartSdk(); File executable = sdk.getDart2JsExecutable(); assertNotNull(executable); assertTrue(executable.exists()); assertTrue(executable.canExecute()); } public void test_getDartFmtExecutable() { DirectoryBasedDartSdk sdk = createDartSdk(); File executable = sdk.getDartFmtExecutable(); assertNotNull(executable); assertTrue(executable.exists()); assertTrue(executable.canExecute()); } public void test_getDirectory() { DirectoryBasedDartSdk sdk = createDartSdk(); File directory = sdk.getDirectory(); assertNotNull(directory); assertTrue(directory.exists()); } public void test_getDocDirectory() { DirectoryBasedDartSdk sdk = createDartSdk(); File directory = sdk.getDocDirectory(); assertNotNull(directory); } public void test_getLibraryDirectory() { DirectoryBasedDartSdk sdk = createDartSdk(); File directory = sdk.getLibraryDirectory(); assertNotNull(directory); assertTrue(directory.exists()); } public void test_getPubExecutable() { DirectoryBasedDartSdk sdk = createDartSdk(); File executable = sdk.getPubExecutable(); assertNotNull(executable); assertTrue(executable.exists()); assertTrue(executable.canExecute()); } public void test_getSdkVersion() { DirectoryBasedDartSdk sdk = createDartSdk(); String version = sdk.getSdkVersion(); assertNotNull(version); assertTrue(version.length() > 0); } public void test_getVmExecutable() { DirectoryBasedDartSdk sdk = createDartSdk(); File executable = sdk.getVmExecutable(); assertNotNull(executable); assertTrue(executable.exists()); assertTrue(executable.canExecute()); } private DirectoryBasedDartSdk createDartSdk() { File sdkDirectory = DirectoryBasedDartSdk.getDefaultSdkDirectory(); assertNotNull( "No SDK configured; set the property 'com.google.dart.sdk' on the command line", sdkDirectory); return new DirectoryBasedDartSdk(sdkDirectory); } }