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

Unified Diff: pkg/analyzer/test/src/summary/resynthesize_common.dart

Issue 2809523002: Issue 29288. Resynthesize Import/Export/PartElement for every directive. (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/test/src/summary/resynthesize_common.dart
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index abd1c184d3717d76e9539330d74be4342dda7d59..f1f30f29e38a93075f37893c8b720260057274bf 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -57,6 +57,12 @@ abstract class AbstractResynthesizeTest extends AbstractSingleUnitTest {
bool allowMissingFiles = false;
/**
+ * Tests may set this to `false` to indicate that resynthesized elements
+ * should not be compare with elements created using AnalysisContext.
+ */
+ bool shouldCompareLibraryElements = true;
+
+ /**
* Return `true` if resynthesizing should be done is strong mode.
*/
bool get isStrongMode;
@@ -8863,6 +8869,32 @@ Future<dynamic> f;
}
}
+ test_import_invalidUri_metadata() {
+ allowMissingFiles = true;
+ shouldCompareLibraryElements = false;
+ LibraryElementImpl resynthesized = checkLibrary('''
+@foo
+import '';
+''');
+ if (isStrongMode) {
+ checkElementText(
+ resynthesized,
+ r'''
+@
+ foo/*location: null*/
+import '';
+''');
+ } else {
+ checkElementText(
+ resynthesized,
+ r'''
+@
+ foo/*location: null*/
+import '';
+''');
+ }
+ }
+
test_import_multiple_combinators() {
addLibrary('dart:async');
var library =
@@ -10104,6 +10136,7 @@ class C {
test_invalidUri_part_emptyUri() {
allowMissingFiles = true;
+ shouldCompareLibraryElements = false;
var library = checkLibrary(r'''
part '';
class B extends A {}
@@ -10112,21 +10145,30 @@ class B extends A {}
checkElementText(
library,
r'''
+part '';
class B {
}
+--------------------
+unit: null
+
''');
} else {
checkElementText(
library,
r'''
+part '';
class B {
}
+--------------------
+unit: null
+
''');
}
}
test_invalidUris() {
allowMissingFiles = true;
+ shouldCompareLibraryElements = false;
var library = checkLibrary(r'''
import '[invalid uri]';
import '[invalid uri]:foo.dart';
@@ -10148,23 +10190,55 @@ part '[invalid uri]';
checkElementText(
library,
r'''
+import '[invalid uri]';
+import '[invalid uri]:foo.dart';
import 'a1.dart';
+import '[invalid uri]';
+import '[invalid uri]:foo.dart';
+export '[invalid uri]';
+export '[invalid uri]:foo.dart';
export 'a2.dart';
+export '[invalid uri]';
+export '[invalid uri]:foo.dart';
+part '[invalid uri]';
part 'a3.dart';
+part '[invalid uri]';
+--------------------
+unit: null
+
--------------------
unit: a3.dart
+--------------------
+unit: null
+
''');
} else {
checkElementText(
library,
r'''
+import '[invalid uri]';
+import '[invalid uri]:foo.dart';
import 'a1.dart';
+import '[invalid uri]';
+import '[invalid uri]:foo.dart';
+export '[invalid uri]';
+export '[invalid uri]:foo.dart';
export 'a2.dart';
+export '[invalid uri]';
+export '[invalid uri]:foo.dart';
+part '[invalid uri]';
part 'a3.dart';
+part '[invalid uri]';
+--------------------
+unit: null
+
--------------------
unit: a3.dart
+--------------------
+unit: null
+
''');
}
}
@@ -12661,6 +12735,7 @@ unit: b.dart
test_parts_invalidUri() {
allowMissingFiles = true;
+ shouldCompareLibraryElements = false;
addSource('/foo/bar.dart', 'part of my.lib;');
var library = checkLibrary('library my.lib; part "foo/";');
if (isStrongMode) {
@@ -12668,18 +12743,27 @@ unit: b.dart
library,
r'''
library my.lib;
+part 'foo/';
+--------------------
+unit: null
+
''');
} else {
checkElementText(
library,
r'''
library my.lib;
+part 'foo/';
+--------------------
+unit: null
+
''');
}
}
test_parts_invalidUri_nullStringValue() {
allowMissingFiles = true;
+ shouldCompareLibraryElements = false;
addSource('/foo/bar.dart', 'part of my.lib;');
var library = checkLibrary(r'''
library my.lib;
@@ -12690,12 +12774,20 @@ part "${foo}/bar.dart";
library,
r'''
library my.lib;
+part '';
+--------------------
+unit: null
+
''');
} else {
checkElementText(
library,
r'''
library my.lib;
+part '';
+--------------------
+unit: null
+
''');
}
}

Powered by Google App Engine
This is Rietveld 408576698