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

Unified Diff: utils/dartdoc/test/dartdoc_tests.dart

Issue 9150011: Add some tests for dartdoc name reference resolution. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 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
« utils/dartdoc/dartdoc.dart ('K') | « utils/dartdoc/files.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/dartdoc/test/dartdoc_tests.dart
diff --git a/utils/dartdoc/test/dartdoc_tests.dart b/utils/dartdoc/test/dartdoc_tests.dart
index 2a4103c04272fd23b1af8f96979bda620c543e2b..46d98f5b4826fc4d0c702aa255f91f8b1174e7e5 100644
--- a/utils/dartdoc/test/dartdoc_tests.dart
+++ b/utils/dartdoc/test/dartdoc_tests.dart
@@ -6,11 +6,18 @@
#library('dartdoc_tests');
#import('../dartdoc.dart');
+#import('../markdown.dart', prefix: 'md');
// TODO(rnystrom): Better path to unittest.
#import('../../../client/testing/unittest/unittest_node.dart');
+#import('../../../frog/lang.dart');
+#import('../../../frog/file_system_node.dart');
main() {
+ var files = new NodeFileSystem();
+ parseOptions('../../frog', [], files);
+ initializeWorld(files);
+
group('countOccurrences', () {
test('empty text returns 0', () {
expect(countOccurrences('', 'needle')).equals(0);
@@ -109,4 +116,65 @@ main() {
'../../other/file.html');
});
});
+
+ group('name reference', () {
+ var doc = new Dartdoc();
+ doc.document('test/dummy.dart');
+ var dummy = world.libraries['test/dummy.dart'];
+ var klass = dummy.findTypeByName('Class');
+ var method = klass.getMember('method');
+
+ String render(md.Node node) => md.renderToHtml([node]);
+
+ test('to a parameter of the current method', () {
+ expect(render(doc.resolveNameReference('param', currentMember: method))).
+ equals('<span class="param">param</span>');
+ });
+
+ test('to a member of the current type', () {
+ expect(render(doc.resolveNameReference('method', currentType: klass))).
+ equals('<a href="../../dummy/Class.html#method" class="crossref">' +
+ 'method</a>');
+ });
+
+ test('to a property with only a getter links to the getter', () {
+ expect(render(doc.resolveNameReference('getterOnly',
+ currentType: klass))).
+ equals('<a href="../../dummy/Class.html#get:getterOnly" ' +
+ 'class="crossref">getterOnly</a>');
+ });
+
+ test('to a property with only a setter links to the setter', () {
+ expect(render(doc.resolveNameReference('setterOnly',
+ currentType: klass))).
+ equals('<a href="../../dummy/Class.html#set:setterOnly" ' +
+ 'class="crossref">setterOnly</a>');
+ });
+
+ test('to a property with a getter and setter links to the getter', () {
+ expect(render(doc.resolveNameReference('getterAndSetter',
+ currentType: klass))).
+ equals('<a href="../../dummy/Class.html#get:getterAndSetter" ' +
+ 'class="crossref">getterAndSetter</a>');
+ });
+
+ test('to a type in the current library', () {
+ expect(render(doc.resolveNameReference('Class', currentLibrary: dummy))).
+ equals('<a href="../../dummy/Class.html" class="crossref">Class</a>');
+ });
+
+ test('to a top-level member in the current library', () {
+ expect(render(doc.resolveNameReference('topLevelMethod',
+ currentLibrary: dummy))).
+ equals('<a href="../../dummy.html#topLevelMethod" class="crossref">' +
+ 'topLevelMethod</a>');
+ });
+
+ test('to an unknown name', () {
+ expect(render(doc.resolveNameReference('unknownName',
+ currentLibrary: dummy, currentType: klass,
+ currentMember: method))).
+ equals('<code>unknownName</code>');
+ });
+ });
}
« utils/dartdoc/dartdoc.dart ('K') | « utils/dartdoc/files.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698