Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: pkg/analyzer/test/src/context/context_test.dart

Issue 1211993003: Get more tests passing using the new task model (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/analyzer/test/generated/test_support.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.src.context.context_test; 5 library test.src.context.context_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analyzer/src/cancelable_future.dart'; 9 import 'package:analyzer/src/cancelable_future.dart';
10 import 'package:analyzer/src/context/cache.dart'; 10 import 'package:analyzer/src/context/cache.dart';
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 import 'abstract_context.dart'; 47 import 'abstract_context.dart';
48 48
49 main() { 49 main() {
50 groupSep = ' | '; 50 groupSep = ' | ';
51 runReflectiveTests(AnalysisContextImplTest); 51 runReflectiveTests(AnalysisContextImplTest);
52 runReflectiveTests(LimitedInvalidateTest); 52 runReflectiveTests(LimitedInvalidateTest);
53 } 53 }
54 54
55 @reflectiveTest 55 @reflectiveTest
56 class AnalysisContextImplTest extends AbstractContextTest { 56 class AnalysisContextImplTest extends AbstractContextTest {
57 void fail_applyChanges_empty() { 57 void test_applyChanges_empty() {
58 context.applyChanges(new ChangeSet()); 58 context.applyChanges(new ChangeSet());
59 expect(context.performAnalysisTask().changeNotices, isNull); 59 expect(context.performAnalysisTask().changeNotices, isNull);
60 // This test appears to be flaky. If it is named "test_" it fails, if it's
61 // named "fail_" it doesn't fail. I'm guessing that it's dependent on
62 // whether some other test is run.
63 fail('Should have failed');
64 }
65
66 void fail_extractContext() {
67 fail("Implement this");
68 }
69
70 void fail_mergeContext() {
71 fail("Implement this");
72 } 60 }
73 61
74 void fail_parseHtmlUnit_resolveDirectives() { 62 void fail_parseHtmlUnit_resolveDirectives() {
75 Source libSource = addSource("/lib.dart", r''' 63 Source libSource = addSource("/lib.dart", r'''
76 library lib; 64 library lib;
77 class ClassA {}'''); 65 class ClassA {}''');
78 Source source = addSource("/lib.html", r''' 66 Source source = addSource("/lib.html", r'''
79 <!DOCTYPE html> 67 <!DOCTYPE html>
80 <html> 68 <html>
81 <head> 69 <head>
82 <script type='application/dart'> 70 <script type='application/dart'>
83 import 'lib.dart'; 71 import 'lib.dart';
84 ClassA v = null; 72 ClassA v = null;
85 </script> 73 </script>
86 </head> 74 </head>
87 <body> 75 <body>
88 </body> 76 </body>
89 </html>'''); 77 </html>''');
90 // TODO(brianwilkerson) Rewrite this. We need a way to get the AST for the 78 // TODO(brianwilkerson) Rewrite this. We need a way to get the AST for the
91 // script. 79 // script.
80 // Document document = context.parseHtmlDocument(source);
81 // expect(document, isNotNull);
82 // List<DartScript> scripts = context.computeResult(source, DART_SCRIPTS);
83 // expect(scripts, hasLength(1));
84 // CompilationUnit unit = context.computeResult(scripts[0], PARSED_AST);
85 // ImportDirective importNode = unit.directives[0] as ImportDirective;
86 // expect(importNode.uriContent, isNotNull);
87 // expect(importNode.source, libSource);
88
92 ht.HtmlUnit unit = context.parseHtmlUnit(source); 89 ht.HtmlUnit unit = context.parseHtmlUnit(source);
93 expect(unit, isNotNull); 90 expect(unit, isNotNull);
94 // import directive should be resolved 91 // import directive should be resolved
95 ht.XmlTagNode htmlNode = unit.tagNodes[0]; 92 ht.XmlTagNode htmlNode = unit.tagNodes[0];
96 ht.XmlTagNode headNode = htmlNode.tagNodes[0]; 93 ht.XmlTagNode headNode = htmlNode.tagNodes[0];
97 ht.HtmlScriptTagNode scriptNode = headNode.tagNodes[0]; 94 ht.HtmlScriptTagNode scriptNode = headNode.tagNodes[0];
98 CompilationUnit script = scriptNode.script; 95 CompilationUnit script = scriptNode.script;
99 ImportDirective importNode = script.directives[0] as ImportDirective; 96 ImportDirective importNode = script.directives[0] as ImportDirective;
100 expect(importNode.uriContent, isNotNull); 97 expect(importNode.uriContent, isNotNull);
101 expect(importNode.source, libSource); 98 expect(importNode.source, libSource);
102 } 99 }
103 100
104 void fail_performAnalysisTask_getContentException_dart() { 101 void test_performAnalysisTask_getContentException_dart() {
105 Source source = _addSourceWithException('test.dart'); 102 Source source = _addSourceWithException('test.dart');
106 // prepare errors 103 // prepare errors
107 _analyzeAll_assertFinished(); 104 _analyzeAll_assertFinished();
108 List<AnalysisError> errors = context.getErrors(source).errors; 105 List<AnalysisError> errors = context.getErrors(source).errors;
109 // validate errors 106 // validate errors
110 expect(errors, hasLength(1)); 107 expect(errors, hasLength(1));
111 AnalysisError error = errors[0]; 108 AnalysisError error = errors[0];
112 expect(error.source, same(source)); 109 expect(error.source, same(source));
113 expect(error.errorCode, ScannerErrorCode.UNABLE_GET_CONTENT); 110 expect(error.errorCode, ScannerErrorCode.UNABLE_GET_CONTENT);
114 } 111 }
115 112
116 void fail_performAnalysisTask_getContentException_html() { 113 void test_performAnalysisTask_getContentException_html() {
117 Source source = _addSourceWithException('test.html'); 114 Source source = _addSourceWithException('test.html');
118 // prepare errors 115 // prepare errors
119 _analyzeAll_assertFinished(); 116 _analyzeAll_assertFinished();
120 List<AnalysisError> errors = context.getErrors(source).errors; 117 List<AnalysisError> errors = context.getErrors(source).errors;
121 // validate errors 118 // validate errors
122 expect(errors, hasLength(1)); 119 expect(errors, hasLength(1));
123 AnalysisError error = errors[0]; 120 AnalysisError error = errors[0];
124 expect(error.source, same(source)); 121 expect(error.source, same(source));
125 expect(error.errorCode, ScannerErrorCode.UNABLE_GET_CONTENT); 122 expect(error.errorCode, ScannerErrorCode.UNABLE_GET_CONTENT);
126 } 123 }
(...skipping 15 matching lines...) Expand all
142 isTrue, reason: "htmlSource doesn't have errors"); 139 isTrue, reason: "htmlSource doesn't have errors");
143 // remove libB.dart content and analyze 140 // remove libB.dart content and analyze
144 context.setContents(libBSource, null); 141 context.setContents(libBSource, null);
145 _analyzeAll_assertFinished(); 142 _analyzeAll_assertFinished();
146 context.computeErrors(htmlSource); 143 context.computeErrors(htmlSource);
147 AnalysisErrorInfo errors = context.getErrors(htmlSource); 144 AnalysisErrorInfo errors = context.getErrors(htmlSource);
148 expect(_hasAnalysisErrorWithErrorSeverity(errors), isTrue, 145 expect(_hasAnalysisErrorWithErrorSeverity(errors), isTrue,
149 reason: "htmlSource has an error"); 146 reason: "htmlSource has an error");
150 } 147 }
151 148
152 void fail_performAnalysisTask_IOException() { 149 void test_performAnalysisTask_IOException() {
153 TestSource source = _addSourceWithException2("/test.dart", "library test;"); 150 TestSource source = _addSourceWithException2("/test.dart", "library test;");
154 int oldTimestamp = context.getModificationStamp(source);
155 source.generateExceptionOnRead = false; 151 source.generateExceptionOnRead = false;
156 _analyzeAll_assertFinished(); 152 _analyzeAll_assertFinished();
157 expect(source.readCount, 1); 153 expect(source.readCount, 1);
154 _changeSource(source, "");
158 source.generateExceptionOnRead = true; 155 source.generateExceptionOnRead = true;
159 do {
160 _changeSource(source, "");
161 // Ensure that the timestamp differs,
162 // so that analysis engine notices the change
163 } while (oldTimestamp == context.getModificationStamp(source));
164 _analyzeAll_assertFinished(); 156 _analyzeAll_assertFinished();
165 expect(source.readCount, 2); 157 expect(source.readCount, 3);
166 } 158 }
167 159
168 void fail_recordLibraryElements() { 160 void fail_recordLibraryElements() {
169 fail("Implement this"); 161 fail("Implement this");
170 } 162 }
171 163
172 void fail_setAnalysisOptions_reduceAnalysisPriorityOrder() { 164 void fail_setAnalysisOptions_reduceAnalysisPriorityOrder() {
173 AnalysisOptionsImpl options = 165 AnalysisOptionsImpl options =
174 new AnalysisOptionsImpl.from(context.analysisOptions); 166 new AnalysisOptionsImpl.from(context.analysisOptions);
175 List<Source> sources = new List<Source>(); 167 List<Source> sources = new List<Source>();
(...skipping 2037 matching lines...) Expand 10 before | Expand all | Expand 10 after
2213 } 2205 }
2214 } 2206 }
2215 2207
2216 class _AnalysisContextImplTest_test_applyChanges_removeContainer 2208 class _AnalysisContextImplTest_test_applyChanges_removeContainer
2217 implements SourceContainer { 2209 implements SourceContainer {
2218 Source libB; 2210 Source libB;
2219 _AnalysisContextImplTest_test_applyChanges_removeContainer(this.libB); 2211 _AnalysisContextImplTest_test_applyChanges_removeContainer(this.libB);
2220 @override 2212 @override
2221 bool contains(Source source) => source == libB; 2213 bool contains(Source source) => source == libB;
2222 } 2214 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/generated/test_support.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698