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

Side by Side Diff: pkg/analysis_server/test/integration/analysis/update_content_test.dart

Issue 790363006: Upgrade unittest to be able to use isNotEmpty. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years 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 | Annotate | Revision Log
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.integration.analysis.update.content; 5 library test.integration.analysis.update.content;
6 6
7 import 'package:analysis_server/src/protocol.dart'; 7 import 'package:analysis_server/src/protocol.dart';
8 import 'package:unittest/unittest.dart'; 8 import 'package:unittest/unittest.dart';
9 9
10 import '../../reflective_tests.dart'; 10 import '../../reflective_tests.dart';
11 import '../integration_tests.dart'; 11 import '../integration_tests.dart';
12 12
13 main() { 13 main() {
14 runReflectiveTests(Test); 14 runReflectiveTests(Test);
15 } 15 }
16 16
17 @ReflectiveTestCase() 17 @ReflectiveTestCase()
18 class Test extends AbstractAnalysisServerIntegrationTest { 18 class Test extends AbstractAnalysisServerIntegrationTest {
19 test_updateContent() { 19 test_updateContent() {
20 String pathname = sourcePath('test.dart'); 20 String pathname = sourcePath('test.dart');
21 String goodText = r''' 21 String goodText = r'''
22 main() { 22 main() {
23 print("Hello, world!"); 23 print("Hello, world!");
24 }'''; 24 }''';
25 String badText = goodText.replaceAll(';', ''); 25 String badText = goodText.replaceAll(';', '');
26 writeFile(pathname, badText); 26 writeFile(pathname, badText);
27 standardAnalysisSetup(); 27 standardAnalysisSetup();
28 return analysisFinished.then((_) { 28 return analysisFinished.then((_) {
29 // The contents on disk (badText) are missing a semicolon. 29 // The contents on disk (badText) are missing a semicolon.
30 expect(currentAnalysisErrors[pathname], isNot(isEmpty)); 30 expect(currentAnalysisErrors[pathname], isNotEmpty);
31 }).then((_) => sendAnalysisUpdateContent({ 31 }).then((_) => sendAnalysisUpdateContent({
32 pathname: new AddContentOverlay(goodText) 32 pathname: new AddContentOverlay(goodText)
33 })).then((result) => analysisFinished).then((_) { 33 })).then((result) => analysisFinished).then((_) {
34 // There should be no errors now because the contents on disk have been 34 // There should be no errors now because the contents on disk have been
35 // overriden with goodText. 35 // overriden with goodText.
36 expect(currentAnalysisErrors[pathname], isEmpty); 36 expect(currentAnalysisErrors[pathname], isEmpty);
37 return sendAnalysisUpdateContent({ 37 return sendAnalysisUpdateContent({
38 pathname: new ChangeContentOverlay( 38 pathname: new ChangeContentOverlay(
39 [new SourceEdit(goodText.indexOf(';'), 1, '')]) 39 [new SourceEdit(goodText.indexOf(';'), 1, '')])
40 }); 40 });
41 }).then((result) => analysisFinished).then((_) { 41 }).then((result) => analysisFinished).then((_) {
42 // There should be errors now because we've removed the semicolon. 42 // There should be errors now because we've removed the semicolon.
43 expect(currentAnalysisErrors[pathname], isNot(isEmpty)); 43 expect(currentAnalysisErrors[pathname], isNotEmpty);
44 return sendAnalysisUpdateContent({ 44 return sendAnalysisUpdateContent({
45 pathname: new ChangeContentOverlay( 45 pathname: new ChangeContentOverlay(
46 [new SourceEdit(goodText.indexOf(';'), 0, ';')]) 46 [new SourceEdit(goodText.indexOf(';'), 0, ';')])
47 }); 47 });
48 }).then((result) => analysisFinished).then((_) { 48 }).then((result) => analysisFinished).then((_) {
49 // There should be no errors now because we've added the semicolon back. 49 // There should be no errors now because we've added the semicolon back.
50 expect(currentAnalysisErrors[pathname], isEmpty); 50 expect(currentAnalysisErrors[pathname], isEmpty);
51 return sendAnalysisUpdateContent({ 51 return sendAnalysisUpdateContent({
52 pathname: new RemoveContentOverlay() 52 pathname: new RemoveContentOverlay()
53 }); 53 });
54 }).then((result) => analysisFinished).then((_) { 54 }).then((result) => analysisFinished).then((_) {
55 // Now there should be errors again, because the contents on disk are no 55 // Now there should be errors again, because the contents on disk are no
56 // longer overridden. 56 // longer overridden.
57 expect(currentAnalysisErrors[pathname], isNot(isEmpty)); 57 expect(currentAnalysisErrors[pathname], isNotEmpty);
58 }); 58 });
59 } 59 }
60 } 60 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698