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

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

Issue 2665213003: Encode URIs stored in unlinked summaries to make them Uri.parse() safe. (Closed)
Patch Set: Created 3 years, 11 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/summary_common.dart
diff --git a/pkg/analyzer/test/src/summary/summary_common.dart b/pkg/analyzer/test/src/summary/summary_common.dart
index b8336556d85781ad099ea2cf18728040ff67a830..04c4596a15ebc2e934f038aae95887178bd414df 100644
--- a/pkg/analyzer/test/src/summary/summary_common.dart
+++ b/pkg/analyzer/test/src/summary/summary_common.dart
@@ -6481,6 +6481,16 @@ class B extends A {}
expect(unlinkedExports[0].configurations, isEmpty);
}
+ test_export_uri_invalid() {
+ allowMissingFiles = true;
+ String uri = '[invalid uri]';
+ String libraryText = 'export "$uri";';
+ serializeLibraryText(libraryText);
+ UnlinkedPublicNamespace publicNamespace = unlinkedUnits[0].publicNamespace;
+ expect(publicNamespace.exports, hasLength(1));
+ expect(publicNamespace.exports[0].uri, Uri.encodeFull(uri));
+ }
+
test_export_uri_nullStringValue() {
String libraryText = r'''
export "${'a'}.dart";
@@ -8404,6 +8414,16 @@ class D extends p.C {} // Prevent "unused import" warning
expect(unlinkedUnits[0].imports[0].uri, 'dart:async');
}
+ test_import_uri_invalid() {
+ allowMissingFiles = true;
+ String uri = '[invalid uri]';
+ String libraryText = 'import "$uri";';
+ serializeLibraryText(libraryText);
+ // Second import is the implicit import of dart:core
+ expect(unlinkedUnits[0].imports, hasLength(2));
+ expect(unlinkedUnits[0].imports[0].uri, Uri.encodeFull(uri));
+ }
+
test_import_uri_nullStringValue() {
String libraryText = r'''
import "${'a'}.dart";
@@ -9602,6 +9622,16 @@ part "${'a'}.dart"; // <-part
expect(unlinkedUnits[1].isPartOf, isTrue);
}
+ test_part_uri_invalid() {
+ allowMissingFiles = true;
+ String uri = '[invalid uri]';
+ String libraryText = 'part "$uri";';
+ serializeLibraryText(libraryText);
+ UnlinkedPublicNamespace publicNamespace = unlinkedUnits[0].publicNamespace;
+ expect(publicNamespace.parts, hasLength(1));
+ expect(publicNamespace.parts[0], Uri.encodeFull(uri));
+ }
+
test_parts_defining_compilation_unit() {
serializeLibraryText('');
expect(linked.units, hasLength(1));

Powered by Google App Engine
This is Rietveld 408576698