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

Unified Diff: tests/compiler/dart2js/mirrors_test.dart

Issue 11726005: Dartdoc comments retrieved as metadata through dart2js mirrors. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments. Created 7 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
« no previous file with comments | « tests/compiler/dart2js/mirrors_helper.dart ('k') | tests/compiler/dart2js/strip_comment_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/compiler/dart2js/mirrors_test.dart
diff --git a/tests/compiler/dart2js/mirrors_test.dart b/tests/compiler/dart2js/mirrors_test.dart
index 1819193fb9ea61ca85ac0f8b8ba69b7259e157c2..9d2e8d7a51c20015d5fd1e9b09cc4d3b0abea842 100644
--- a/tests/compiler/dart2js/mirrors_test.dart
+++ b/tests/compiler/dart2js/mirrors_test.dart
@@ -38,7 +38,8 @@ main() {
var dirPath = scriptPath.directoryPath;
var libPath = dirPath.join(new Path.fromNative('../../../sdk/'));
var inputPath = dirPath.join(new Path.fromNative('mirrors_helper.dart'));
- var compilation = new Compilation.library([inputPath], libPath);
+ var compilation = new Compilation.library([inputPath], libPath, null,
+ <String>['--preserve-comments']);
Expect.isNotNull(compilation, "No compilation created");
var mirrors = compilation.mirrors;
@@ -169,99 +170,158 @@ void testFoo(MirrorSystem system, LibraryMirror helperLibrary,
// Metadata tests
//////////////////////////////////////////////////////////////////////////////
- var metadata = fooClass.metadata;
- Expect.isNotNull(metadata);
- Expect.equals(10, metadata.length);
-
- // @Metadata // This is intentionally the type literal.
- var metadata0 = metadata[0];
- Expect.isTrue(metadata0 is InstanceMirror);
- Expect.isFalse(metadata0.hasReflectee);
- Expect.throws(() => metadata0.reflectee, (_) => true);
- Expect.isTrue(metadata0 is TypeInstanceMirror);
- var metadataType = metadata0.representedType;
+ var metadataList = fooClass.metadata;
+ Expect.isNotNull(metadataList);
+ Expect.equals(16, metadataList.length);
+ var metadataListIndex = 0;
+ var metadata;
+
+ var dartMirrorsLibrary = system.libraries['dart.mirrors'];
+ Expect.isNotNull(dartMirrorsLibrary);
+ var commentType = dartMirrorsLibrary.classes['Comment'];
+ Expect.isNotNull(commentType);
+
+ // /// Singleline doc comment.
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.isTrue(metadata is CommentInstanceMirror);
+ Expect.equals(commentType.originalDeclaration, metadata.type);
+ Expect.isTrue(metadata.isDocComment);
+ Expect.stringEquals(
+ "/// Singleline doc comment.", metadata.text);
+ Expect.stringEquals(
+ "Singleline doc comment.", metadata.trimmedText);
+
+ // @Metadata
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.isTrue(metadata is TypeInstanceMirror);
+ var metadataType = metadata.representedType;
Expect.isNotNull(metadataType);
Expect.stringEquals('Metadata', metadataType.simpleName);
+ // // This is intentionally the type literal.
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.isTrue(metadata is CommentInstanceMirror);
+ Expect.equals(commentType.originalDeclaration, metadata.type);
+ Expect.isFalse(metadata.isDocComment);
+ Expect.stringEquals(
+ "// This is intentionally the type literal.", metadata.text);
+ Expect.stringEquals(
+ "This is intentionally the type literal.", metadata.trimmedText);
+
+ // Singleline comment 1.
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.isTrue(metadata is CommentInstanceMirror);
+ Expect.equals(commentType.originalDeclaration, metadata.type);
+ Expect.isFalse(metadata.isDocComment);
+ Expect.stringEquals(
+ "// Singleline comment 1.", metadata.text);
+ Expect.stringEquals(
+ "Singleline comment 1.", metadata.trimmedText);
+
+ // Singleline comment 2.
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.isTrue(metadata is CommentInstanceMirror);
+ Expect.equals(commentType.originalDeclaration, metadata.type);
+ Expect.isFalse(metadata.isDocComment);
+ Expect.stringEquals(
+ "// Singleline comment 2.", metadata.text);
+ Expect.stringEquals(
+ "Singleline comment 2.", metadata.trimmedText);
+
// @Metadata(null)
- var metadata1 = metadata[1];
- Expect.isTrue(metadata1 is InstanceMirror);
- Expect.isFalse(metadata1.hasReflectee);
- Expect.throws(() => metadata1.reflectee, (_) => true);
- Expect.equals(metadataType.originalDeclaration, metadata1.type);
- metadata1.getField('data').then((InstanceMirror data) {
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.equals(metadataType.originalDeclaration, metadata.type);
+ metadata.getField('data').then((InstanceMirror data) {
Expect.isNotNull(data);
Expect.isTrue(data.hasReflectee);
Expect.isNull(data.reflectee);
});
// @Metadata(true)
- var metadata2 = metadata[2];
- Expect.isTrue(metadata2 is InstanceMirror);
- Expect.isFalse(metadata2.hasReflectee);
- Expect.throws(() => metadata2.reflectee, (_) => true);
- Expect.equals(metadataType.originalDeclaration, metadata2.type);
- metadata2.getField('data').then((InstanceMirror data) {
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.equals(metadataType.originalDeclaration, metadata.type);
+ metadata.getField('data').then((InstanceMirror data) {
Expect.isNotNull(data);
Expect.isTrue(data.hasReflectee);
Expect.isTrue(data.reflectee);
});
// @Metadata(false)
- var metadata3 = metadata[3];
- Expect.isTrue(metadata3 is InstanceMirror);
- Expect.isFalse(metadata3.hasReflectee);
- Expect.throws(() => metadata3.reflectee, (_) => true);
- Expect.equals(metadataType.originalDeclaration, metadata3.type);
- metadata3.getField('data').then((InstanceMirror data) {
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.equals(metadataType.originalDeclaration, metadata.type);
+ metadata.getField('data').then((InstanceMirror data) {
Expect.isNotNull(data);
Expect.isTrue(data.hasReflectee);
Expect.isFalse(data.reflectee);
});
// @Metadata(0)
- var metadata4 = metadata[4];
- Expect.isTrue(metadata4 is InstanceMirror);
- Expect.isFalse(metadata4.hasReflectee);
- Expect.throws(() => metadata4.reflectee, (_) => true);
- Expect.equals(metadataType.originalDeclaration, metadata4.type);
- metadata4.getField('data').then((InstanceMirror data) {
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.equals(metadataType.originalDeclaration, metadata.type);
+ metadata.getField('data').then((InstanceMirror data) {
Expect.isNotNull(data);
Expect.isTrue(data.hasReflectee);
Expect.equals(0, data.reflectee);
});
// @Metadata(1.5)
- var metadata5 = metadata[5];
- Expect.isTrue(metadata5 is InstanceMirror);
- Expect.isFalse(metadata5.hasReflectee);
- Expect.throws(() => metadata5.reflectee, (_) => true);
- Expect.equals(metadataType.originalDeclaration, metadata5.type);
- metadata5.getField('data').then((InstanceMirror data) {
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.equals(metadataType.originalDeclaration, metadata.type);
+ metadata.getField('data').then((InstanceMirror data) {
Expect.isNotNull(data);
Expect.isTrue(data.hasReflectee);
Expect.equals(1.5, data.reflectee);
});
// @Metadata("Foo")
- var metadata6 = metadata[6];
- Expect.isTrue(metadata6 is InstanceMirror);
- Expect.isFalse(metadata6.hasReflectee);
- Expect.throws(() => metadata6.reflectee, (_) => true);
- Expect.equals(metadataType.originalDeclaration, metadata6.type);
- metadata6.getField('data').then((InstanceMirror data) {
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.equals(metadataType.originalDeclaration, metadata.type);
+ metadata.getField('data').then((InstanceMirror data) {
Expect.isNotNull(data);
Expect.isTrue(data.hasReflectee);
Expect.stringEquals("Foo", data.reflectee);
});
// @Metadata(const ["Foo"])
- var metadata7 = metadata[7];
- Expect.isTrue(metadata7 is InstanceMirror);
- Expect.isFalse(metadata7.hasReflectee);
- Expect.throws(() => metadata7.reflectee, (_) => true);
- Expect.equals(metadataType.originalDeclaration, metadata7.type);
- metadata7.getField('data').then((InstanceMirror data) {
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.equals(metadataType.originalDeclaration, metadata.type);
+ metadata.getField('data').then((InstanceMirror data) {
Expect.isTrue(data is ListInstanceMirror);
Expect.isFalse(data.hasReflectee);
Expect.throws(() => data.reflectee, (_) => true);
@@ -274,13 +334,13 @@ void testFoo(MirrorSystem system, LibraryMirror helperLibrary,
});
});
- // @Metadata(const {'foo':"Foo"})
- var metadata8 = metadata[8];
- Expect.isTrue(metadata8 is InstanceMirror);
- Expect.isFalse(metadata8.hasReflectee);
- Expect.throws(() => metadata8.reflectee, (_) => true);
- Expect.equals(metadataType.originalDeclaration, metadata8.type);
- metadata8.getField('data').then((InstanceMirror data) {
+ // @Metadata(/* Inline comment */ const {'foo':"Foo"})
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.equals(metadataType.originalDeclaration, metadata.type);
+ metadata.getField('data').then((InstanceMirror data) {
Expect.isTrue(data is MapInstanceMirror);
Expect.isFalse(data.hasReflectee);
Expect.throws(() => data.reflectee, (_) => true);
@@ -298,28 +358,57 @@ void testFoo(MirrorSystem system, LibraryMirror helperLibrary,
});
// @metadata
- var metadata9 = metadata[9];
- Expect.isTrue(metadata9 is InstanceMirror);
- Expect.isFalse(metadata9.hasReflectee);
- Expect.throws(() => metadata9.reflectee, (_) => true);
- Expect.equals(metadataType.originalDeclaration, metadata9.type);
- metadata9.getField('data').then((InstanceMirror data) {
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.equals(metadataType.originalDeclaration, metadata.type);
+ metadata.getField('data').then((InstanceMirror data) {
Expect.isNotNull(data);
Expect.isTrue(data.hasReflectee);
Expect.isNull(data.reflectee);
});
+ // /** Multiline doc comment. */
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.isTrue(metadata is CommentInstanceMirror);
+ Expect.equals(commentType.originalDeclaration, metadata.type);
+ Expect.isTrue(metadata.isDocComment);
+ Expect.stringEquals(
+ "/** Multiline doc comment. */", metadata.text);
+ Expect.stringEquals(
+ "Multiline doc comment. ", metadata.trimmedText);
+
+ // /* Multiline comment. */
+ metadata = metadataList[metadataListIndex++];
+ Expect.isTrue(metadata is InstanceMirror);
+ Expect.isFalse(metadata.hasReflectee);
+ Expect.throws(() => metadata.reflectee, (_) => true);
+ Expect.isTrue(metadata is CommentInstanceMirror);
+ Expect.equals(commentType.originalDeclaration, metadata.type);
+ Expect.isFalse(metadata.isDocComment);
+ Expect.stringEquals(
+ "/* Multiline comment. */", metadata.text);
+ Expect.stringEquals(
+ "Multiline comment. ", metadata.trimmedText);
+
+ Expect.equals(metadataList.length, metadataListIndex);
+
//////////////////////////////////////////////////////////////////////////////
// Location test
//////////////////////////////////////////////////////////////////////////////
var fooClassLocation = fooClass.location;
Expect.isNotNull(fooClassLocation);
- // Expect the location to start with the first metadata.
- Expect.equals(348, fooClassLocation.offset, "Unexpected offset");
+ // Expect the location to start with the first metadata, not including the
+ // leading comment.
+ Expect.equals(376, fooClassLocation.offset, "Unexpected offset");
// Expect the location to end with the class body.
- Expect.equals(227, fooClassLocation.length, "Unexpected length");
- Expect.equals(17, fooClassLocation.line, "Unexpected line");
+ Expect.equals(332, fooClassLocation.length, "Unexpected length");
+ Expect.equals(18, fooClassLocation.line, "Unexpected line");
Expect.equals(1, fooClassLocation.column, "Unexpected column");
}
« no previous file with comments | « tests/compiler/dart2js/mirrors_helper.dart ('k') | tests/compiler/dart2js/strip_comment_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698