| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012, the Dart project authors. | 2 * Copyright (c) 2012, the Dart project authors. |
| 3 * | 3 * |
| 4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u
se this file except | 4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u
se this file except |
| 5 * in compliance with the License. You may obtain a copy of the License at | 5 * in compliance with the License. You may obtain a copy of the License at |
| 6 * | 6 * |
| 7 * http://www.eclipse.org/legal/epl-v10.html | 7 * http://www.eclipse.org/legal/epl-v10.html |
| 8 * | 8 * |
| 9 * Unless required by applicable law or agreed to in writing, software distribut
ed under the License | 9 * Unless required by applicable law or agreed to in writing, software distribut
ed under the License |
| 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K
IND, either express | 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K
IND, either express |
| 11 * or implied. See the License for the specific language governing permissions a
nd limitations under | 11 * or implied. See the License for the specific language governing permissions a
nd limitations under |
| 12 * the License. | 12 * the License. |
| 13 */ | 13 */ |
| 14 package com.google.dart.engine.internal.context; | 14 package com.google.dart.engine.internal.context; |
| 15 | 15 |
| 16 import com.google.dart.engine.EngineTestCase; | 16 import com.google.dart.engine.EngineTestCase; |
| 17 import com.google.dart.engine.ast.CompilationUnit; | 17 import com.google.dart.engine.ast.CompilationUnit; |
| 18 import com.google.dart.engine.ast.ImportDirective; |
| 18 import com.google.dart.engine.ast.SimpleIdentifier; | 19 import com.google.dart.engine.ast.SimpleIdentifier; |
| 19 import com.google.dart.engine.ast.TopLevelVariableDeclaration; | 20 import com.google.dart.engine.ast.TopLevelVariableDeclaration; |
| 20 import com.google.dart.engine.context.AnalysisContextFactory; | 21 import com.google.dart.engine.context.AnalysisContextFactory; |
| 21 import com.google.dart.engine.context.AnalysisException; | 22 import com.google.dart.engine.context.AnalysisException; |
| 22 import com.google.dart.engine.context.AnalysisOptions; | 23 import com.google.dart.engine.context.AnalysisOptions; |
| 23 import com.google.dart.engine.context.ChangeNotice; | 24 import com.google.dart.engine.context.ChangeNotice; |
| 24 import com.google.dart.engine.context.ChangeSet; | 25 import com.google.dart.engine.context.ChangeSet; |
| 25 import com.google.dart.engine.element.ClassElement; | 26 import com.google.dart.engine.element.ClassElement; |
| 26 import com.google.dart.engine.element.CompilationUnitElement; | 27 import com.google.dart.engine.element.CompilationUnitElement; |
| 27 import com.google.dart.engine.element.Element; | 28 import com.google.dart.engine.element.Element; |
| 28 import com.google.dart.engine.element.ElementLocation; | 29 import com.google.dart.engine.element.ElementLocation; |
| 29 import com.google.dart.engine.element.HtmlElement; | 30 import com.google.dart.engine.element.HtmlElement; |
| 30 import com.google.dart.engine.element.LibraryElement; | 31 import com.google.dart.engine.element.LibraryElement; |
| 31 import com.google.dart.engine.element.PropertyAccessorElement; | 32 import com.google.dart.engine.element.PropertyAccessorElement; |
| 32 import com.google.dart.engine.error.AnalysisError; | 33 import com.google.dart.engine.error.AnalysisError; |
| 34 import com.google.dart.engine.html.ast.HtmlScriptTagNode; |
| 33 import com.google.dart.engine.html.ast.HtmlUnit; | 35 import com.google.dart.engine.html.ast.HtmlUnit; |
| 36 import com.google.dart.engine.html.ast.XmlTagNode; |
| 34 import com.google.dart.engine.internal.cache.DartEntry; | 37 import com.google.dart.engine.internal.cache.DartEntry; |
| 35 import com.google.dart.engine.internal.scope.Namespace; | 38 import com.google.dart.engine.internal.scope.Namespace; |
| 36 import com.google.dart.engine.internal.task.ResolveDartLibraryTask; | 39 import com.google.dart.engine.internal.task.ResolveDartLibraryTask; |
| 37 import com.google.dart.engine.sdk.DirectoryBasedDartSdk; | 40 import com.google.dart.engine.sdk.DirectoryBasedDartSdk; |
| 38 import com.google.dart.engine.source.DartUriResolver; | 41 import com.google.dart.engine.source.DartUriResolver; |
| 39 import com.google.dart.engine.source.FileBasedSource; | 42 import com.google.dart.engine.source.FileBasedSource; |
| 40 import com.google.dart.engine.source.FileUriResolver; | 43 import com.google.dart.engine.source.FileUriResolver; |
| 41 import com.google.dart.engine.source.Source; | 44 import com.google.dart.engine.source.Source; |
| 42 import com.google.dart.engine.source.SourceContainer; | 45 import com.google.dart.engine.source.SourceContainer; |
| 43 import com.google.dart.engine.source.SourceFactory; | 46 import com.google.dart.engine.source.SourceFactory; |
| (...skipping 818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 862 // Expected result | 865 // Expected result |
| 863 } | 866 } |
| 864 } | 867 } |
| 865 | 868 |
| 866 public void test_parseHtmlUnit_noErrors() throws Exception { | 869 public void test_parseHtmlUnit_noErrors() throws Exception { |
| 867 Source source = addSource("/lib.html", "<html></html>"); | 870 Source source = addSource("/lib.html", "<html></html>"); |
| 868 HtmlUnit unit = context.parseHtmlUnit(source); | 871 HtmlUnit unit = context.parseHtmlUnit(source); |
| 869 assertNotNull(unit); | 872 assertNotNull(unit); |
| 870 } | 873 } |
| 871 | 874 |
| 875 public void test_parseHtmlUnit_resolveDirectives() throws Exception { |
| 876 Source libSource = addSource("/lib.dart", createSource(// |
| 877 "library lib;", |
| 878 "class ClassA {}")); |
| 879 Source source = addSource("/lib.html", createSource(// |
| 880 "<html>", |
| 881 "<head>", |
| 882 " <script type='application/dart'>", |
| 883 " import 'lib.dart';", |
| 884 " ClassA v = null;", |
| 885 " </script>", |
| 886 "</head>", |
| 887 "<body>", |
| 888 "</body>", |
| 889 "</html>")); |
| 890 HtmlUnit unit = context.parseHtmlUnit(source); |
| 891 // import directive should be resolved |
| 892 XmlTagNode htmlNode = unit.getTagNodes().get(0); |
| 893 XmlTagNode headNode = htmlNode.getTagNodes().get(0); |
| 894 HtmlScriptTagNode scriptNode = (HtmlScriptTagNode) headNode.getTagNodes().ge
t(0); |
| 895 CompilationUnit script = scriptNode.getScript(); |
| 896 ImportDirective importNode = (ImportDirective) script.getDirectives().get(0)
; |
| 897 assertNotNull(importNode.getUriContent()); |
| 898 assertEquals(libSource, importNode.getSource()); |
| 899 } |
| 900 |
| 872 public void test_performAnalysisTask_changeLibraryContents() throws Exception
{ | 901 public void test_performAnalysisTask_changeLibraryContents() throws Exception
{ |
| 873 Source libSource = addSource("/test.dart", "library lib; part 'test-part.dar
t';"); | 902 Source libSource = addSource("/test.dart", "library lib; part 'test-part.dar
t';"); |
| 874 Source partSource = addSource("/test-part.dart", "part of lib;"); | 903 Source partSource = addSource("/test-part.dart", "part of lib;"); |
| 875 analyzeAll_assertFinished(); | 904 analyzeAll_assertFinished(); |
| 876 assertNotNull("library resolved 1", context.getResolvedCompilationUnit(libSo
urce, libSource)); | 905 assertNotNull("library resolved 1", context.getResolvedCompilationUnit(libSo
urce, libSource)); |
| 877 assertNotNull("part resolved 1", context.getResolvedCompilationUnit(partSour
ce, libSource)); | 906 assertNotNull("part resolved 1", context.getResolvedCompilationUnit(partSour
ce, libSource)); |
| 878 // update and analyze #1 | 907 // update and analyze #1 |
| 879 context.setContents(libSource, "library lib;"); | 908 context.setContents(libSource, "library lib;"); |
| 880 assertNull("library changed 2", context.getResolvedCompilationUnit(libSource
, libSource)); | 909 assertNull("library changed 2", context.getResolvedCompilationUnit(libSource
, libSource)); |
| 881 assertNull("part changed 2", context.getResolvedCompilationUnit(partSource,
libSource)); | 910 assertNull("part changed 2", context.getResolvedCompilationUnit(partSource,
libSource)); |
| (...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1299 return (Source[]) field.get(context2); | 1328 return (Source[]) field.get(context2); |
| 1300 } | 1329 } |
| 1301 | 1330 |
| 1302 private void setIncrementalAnalysisCache(AnalysisContextImpl context2, | 1331 private void setIncrementalAnalysisCache(AnalysisContextImpl context2, |
| 1303 IncrementalAnalysisCache incrementalCache) throws Exception { | 1332 IncrementalAnalysisCache incrementalCache) throws Exception { |
| 1304 Field field = AnalysisContextImpl.class.getDeclaredField("incrementalAnalysi
sCache"); | 1333 Field field = AnalysisContextImpl.class.getDeclaredField("incrementalAnalysi
sCache"); |
| 1305 field.setAccessible(true); | 1334 field.setAccessible(true); |
| 1306 field.set(context2, incrementalCache); | 1335 field.set(context2, incrementalCache); |
| 1307 } | 1336 } |
| 1308 } | 1337 } |
| OLD | NEW |