| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| package com.google.dart.compiler; |
| |
| import junit.framework.TestCase; |
| |
| import java.net.URI; |
| |
| public class PackageLibraryManagerTest extends TestCase { |
| /** |
| * For FS based {@link URI} the path is not <code>null</code>, for JAR {@link URI} the scheme |
| * specific part is not <code>null</code>. |
| * |
| * @return the scheme specific path. |
| */ |
| private static String getPath(URI uri) { |
| if (uri.getPath() != null && uri.getPath().length() != 0){ |
| return uri.getPath(); |
| } |
| return uri.getSchemeSpecificPart(); |
| } |
| |
| PackageLibraryManager packageLibraryManager = new PackageLibraryManager(); |
| |
| |
| public void testExpand1() throws Exception { |
| URI shortUri = new URI("dart:core"); |
| URI fullUri = packageLibraryManager.expandRelativeDartUri(shortUri); |
| assertNotNull(fullUri); |
| assertEquals("dart", fullUri.getScheme()); |
| assertEquals("core", fullUri.getHost()); |
| assertTrue(getPath(fullUri).endsWith("/core.dart")); |
| } |
| |
| public void testExpand2() throws Exception { |
| URI shortUri = new URI("dart:doesnotexist"); |
| URI fullUri = packageLibraryManager.expandRelativeDartUri(shortUri); |
| assertNull(fullUri); |
| } |
| |
| public void testTranslate1() throws Exception { |
| URI shortUri = new URI("dart:core"); |
| URI fullUri = packageLibraryManager.expandRelativeDartUri(shortUri); |
| URI translatedURI = packageLibraryManager.resolveDartUri(fullUri); |
| assertNotNull(translatedURI); |
| String scheme = translatedURI.getScheme(); |
| assertTrue(scheme.equals("file")); |
| assertTrue(getPath(translatedURI).endsWith("/core.dart")); |
| } |
| |
| public void testTranslate2() throws Exception { |
| URI fullUri = new URI("dart://doesnotexist/some/file.dart"); |
| URI translatedURI = packageLibraryManager.resolveDartUri(fullUri); |
| assertNotNull(translatedURI); |
| String scheme = translatedURI.getScheme(); |
| assertTrue(scheme.equals("file")); |
| assertTrue(getPath(translatedURI).endsWith("some/file.dart")); |
| } |
| |
| public void testPackageExpand1() throws Exception { |
| URI shortUri = new URI("package:test.dart"); |
| URI fullUri = packageLibraryManager.expandRelativeDartUri(shortUri); |
| assertNotNull(fullUri); |
| assertEquals("package", fullUri.getScheme()); |
| assertEquals("test.dart", fullUri.getHost()); |
| assertTrue(getPath(fullUri).endsWith("/test.dart")); |
| } |
| |
| public void testPackageExpand2() throws Exception { |
| URI shortUri = new URI("package:test.dart"); |
| URI fullUri1 = packageLibraryManager.expandRelativeDartUri(shortUri); |
| URI fullUri2 = packageLibraryManager.expandRelativeDartUri(fullUri1); |
| assertNotNull(fullUri2); |
| assertEquals("package", fullUri2.getScheme()); |
| assertEquals("test.dart", fullUri2.getHost()); |
| assertTrue(getPath(fullUri2).endsWith("/test.dart")); |
| } |
| |
| public void testPackageTranslate1() throws Exception { |
| URI shortUri = new URI("package:test.dart"); |
| URI fullUri = packageLibraryManager.expandRelativeDartUri(shortUri); |
| URI translatedURI = packageLibraryManager.resolveDartUri(fullUri); |
| assertNotNull(translatedURI); |
| String scheme = translatedURI.getScheme(); |
| assertTrue(scheme.equals("file")); |
| assertTrue(getPath(translatedURI).endsWith("/test.dart")); |
| } |
| } |