blob: 8e3fa1f86b397963965aaa1ffba3187aab49eb2b [file] [log] [blame]
/*
* Copyright (c) 2013, 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.resolver;
import com.google.dart.engine.error.CompileTimeErrorCode;
import com.google.dart.engine.error.PubSuggestionCode;
import com.google.dart.engine.source.Source;
public class PubSuggestionCodeTest extends ResolverTestCase {
public void test_import_package() throws Exception {
Source source = addSource(createSource(//
"import 'package:somepackage/other.dart';"));
resolve(source);
assertErrors(source, CompileTimeErrorCode.URI_DOES_NOT_EXIST);
}
public void test_import_packageWithDotDot() throws Exception {
Source source = addSource(createSource(//
"import 'package:somepackage/../other.dart';"));
resolve(source);
assertErrors(
source,
CompileTimeErrorCode.URI_DOES_NOT_EXIST,
PubSuggestionCode.PACKAGE_IMPORT_CONTAINS_DOT_DOT);
}
public void test_import_packageWithLeadingDotDot() throws Exception {
Source source = addSource(createSource(//
"import 'package:../other.dart';"));
resolve(source);
assertErrors(
source,
CompileTimeErrorCode.URI_DOES_NOT_EXIST,
PubSuggestionCode.PACKAGE_IMPORT_CONTAINS_DOT_DOT);
}
public void test_import_referenceIntoLibDirectory() throws Exception {
cacheSource("/myproj/pubspec.yaml", "");
cacheSource("/myproj/lib/other.dart", "");
Source source = addNamedSource("/myproj/web/test.dart", createSource(//
"import '../lib/other.dart';"));
resolve(source);
assertErrors(source, PubSuggestionCode.FILE_IMPORT_OUTSIDE_LIB_REFERENCES_FILE_INSIDE);
}
public void test_import_referenceIntoLibDirectory_no_pubspec() throws Exception {
cacheSource("/myproj/lib/other.dart", "");
Source source = addNamedSource("/myproj/web/test.dart", createSource(//
"import '../lib/other.dart';"));
resolve(source);
assertNoErrors(source);
}
public void test_import_referenceOutOfLibDirectory() throws Exception {
cacheSource("/myproj/pubspec.yaml", "");
cacheSource("/myproj/web/other.dart", "");
Source source = addNamedSource("/myproj/lib/test.dart", createSource(//
"import '../web/other.dart';"));
resolve(source);
assertErrors(source, PubSuggestionCode.FILE_IMPORT_INSIDE_LIB_REFERENCES_FILE_OUTSIDE);
}
public void test_import_referenceOutOfLibDirectory_no_pubspec() throws Exception {
cacheSource("/myproj/web/other.dart", "");
Source source = addNamedSource("/myproj/lib/test.dart", createSource(//
"import '../web/other.dart';"));
resolve(source);
assertNoErrors(source);
}
public void test_import_valid_inside_lib1() throws Exception {
cacheSource("/myproj/pubspec.yaml", "");
cacheSource("/myproj/lib/other.dart", "");
Source source = addNamedSource("/myproj/lib/test.dart", createSource(//
"import 'other.dart';"));
resolve(source);
assertNoErrors(source);
}
public void test_import_valid_inside_lib2() throws Exception {
cacheSource("/myproj/pubspec.yaml", "");
cacheSource("/myproj/lib/bar/other.dart", "");
Source source = addNamedSource("/myproj/lib/foo/test.dart", createSource(//
"import '../bar/other.dart';"));
resolve(source);
assertNoErrors(source);
}
public void test_import_valid_outside_lib() throws Exception {
cacheSource("/myproj/pubspec.yaml", "");
cacheSource("/myproj/web/other.dart", "");
Source source = addNamedSource("/myproj/lib2/test.dart", createSource(//
"import '../web/other.dart';"));
resolve(source);
assertNoErrors(source);
}
}