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

Side by Side Diff: pkg/docgen/test/generate_json_test.dart

Issue 183333003: Adding 'preview' to typedef (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 import 'dart:convert'; 1 import 'dart:convert';
2 import 'dart:io'; 2 import 'dart:io';
3 3
4 import 'package:path/path.dart' as p; 4 import 'package:path/path.dart' as p;
5 import 'package:scheduled_test/descriptor.dart' as d; 5 import 'package:scheduled_test/descriptor.dart' as d;
6 import 'package:scheduled_test/scheduled_test.dart'; 6 import 'package:scheduled_test/scheduled_test.dart';
7 import 'package:unittest/matcher.dart';
7 8
8 import 'util.dart'; 9 import 'util.dart';
9 import '../lib/docgen.dart' as dg; 10 import '../lib/docgen.dart' as dg;
10 11
11 void main() { 12 void main() {
12 13
13 setUp(() { 14 setUp(() {
14 var tempDir; 15 var tempDir;
15 schedule(() { 16 schedule(() {
16 return Directory.systemTemp 17 return Directory.systemTemp
(...skipping 25 matching lines...) Expand all
42 d.matcherFile('testLib-bar.json', _isJsonMap), 43 d.matcherFile('testLib-bar.json', _isJsonMap),
43 d.matcherFile('testLib.A.json', _isJsonMap), 44 d.matcherFile('testLib.A.json', _isJsonMap),
44 d.matcherFile('testLib.B.json', _isJsonMap), 45 d.matcherFile('testLib.B.json', _isJsonMap),
45 d.matcherFile('testLib.C.json', _isJsonMap), 46 d.matcherFile('testLib.C.json', _isJsonMap),
46 d.matcherFile('testLib.json', _isJsonMap), 47 d.matcherFile('testLib.json', _isJsonMap),
47 d.matcherFile('testLib2-foo.B.json', _isJsonMap), 48 d.matcherFile('testLib2-foo.B.json', _isJsonMap),
48 d.matcherFile('testLib2-foo.json', _isJsonMap) 49 d.matcherFile('testLib2-foo.json', _isJsonMap)
49 ]).validate(); 50 ]).validate();
50 51
51 }); 52 });
53
54 test('typedef gen', () {
55 schedule(() {
56 var codeDir = getMultiLibraryCodePath();
57 expect(FileSystemEntity.isDirectorySync(codeDir), isTrue);
58 return dg.docgen(['$codeDir/'], out: p.join(d.defaultRoot, 'docs'));
59 });
60
61 schedule(() {
62 var dartCoreJson = new File(p.join(d.defaultRoot, 'docs', 'testLib-bar.jso n'))
63 .readAsStringSync();
64
65 var dartCore = JSON.decode(dartCoreJson) as Map<String, dynamic>;
66
67 var classes = dartCore['classes'] as Map<String, dynamic>;
68
69 expect(classes, hasLength(3));
70
71 expect(classes['class'], isList);
72 expect(classes['error'], isList);
73
74 var typeDefs = classes['typedef'] as Map<String, dynamic>;
75 var comparator = typeDefs['AnATransformer'] as Map<String, dynamic>;
76
77 var expectedPreview = '<p>A trivial use of <code>A</code> to eliminate '
78 'import warnings.</p>';
79
80 expect(comparator['preview'], expectedPreview);
81
82 var expectedComment = expectedPreview +
83 '\n<p>And to test typedef preview.</p>';
84
85 expect(comparator['comment'], expectedComment);
86 });
87 });
52 } 88 }
53 89
54 final Matcher _hasSortedLines = predicate((String input) { 90 final Matcher _hasSortedLines = predicate((String input) {
55 var lines = new LineSplitter().convert(input); 91 var lines = new LineSplitter().convert(input);
56 92
57 var sortedLines = new List.from(lines)..sort(); 93 var sortedLines = new List.from(lines)..sort();
58 94
59 var orderedMatcher = orderedEquals(sortedLines); 95 var orderedMatcher = orderedEquals(sortedLines);
60 return orderedMatcher.matches(lines, {}); 96 return orderedMatcher.matches(lines, {});
61 }, 'String has sorted lines'); 97 }, 'String has sorted lines');
62 98
63 final Matcher _isJsonMap = predicate((input) { 99 final Matcher _isJsonMap = predicate((input) {
64 try { 100 try {
65 return JSON.decode(input) is Map; 101 return JSON.decode(input) is Map;
66 } catch (e) { 102 } catch (e) {
67 return false; 103 return false;
68 } 104 }
69 }, 'Output is JSON encoded Map'); 105 }, 'Output is JSON encoded Map');
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698