| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:pub/src/ascii_tree.dart' as tree; |
| import 'package:test/test.dart'; |
| |
| /// Removes ansi color codes from [s]. |
| String stripColors(String s) { |
| return s.replaceAll(RegExp('\u001b\\[.*?m'), ''); |
| } |
| |
| void main() { |
| group('tree.fromFiles', () { |
| test('no files', () { |
| expect(stripColors(tree.fromFiles([])), equals('')); |
| }); |
| |
| test('up to ten files in one directory are shown', () { |
| var files = [ |
| 'dir/a.dart', |
| 'dir/b.dart', |
| 'dir/c.dart', |
| 'dir/d.dart', |
| 'dir/e.dart', |
| 'dir/f.dart', |
| 'dir/g.dart', |
| 'dir/h.dart', |
| 'dir/i.dart', |
| 'dir/j.dart' |
| ]; |
| expect(stripColors(tree.fromFiles(files)), equals(""" |
| '-- dir |
| |-- a.dart |
| |-- b.dart |
| |-- c.dart |
| |-- d.dart |
| |-- e.dart |
| |-- f.dart |
| |-- g.dart |
| |-- h.dart |
| |-- i.dart |
| '-- j.dart |
| """)); |
| }); |
| |
| test('files are elided if there are more than ten', () { |
| var files = [ |
| 'dir/a.dart', |
| 'dir/b.dart', |
| 'dir/c.dart', |
| 'dir/d.dart', |
| 'dir/e.dart', |
| 'dir/f.dart', |
| 'dir/g.dart', |
| 'dir/h.dart', |
| 'dir/i.dart', |
| 'dir/j.dart', |
| 'dir/k.dart' |
| ]; |
| expect(stripColors(tree.fromFiles(files)), equals(""" |
| '-- dir |
| |-- a.dart |
| |-- b.dart |
| |-- c.dart |
| | (5 more...) |
| |-- i.dart |
| |-- j.dart |
| '-- k.dart |
| """)); |
| }); |
| |
| test('files are not elided at the top level', () { |
| var files = [ |
| 'a.dart', |
| 'b.dart', |
| 'c.dart', |
| 'd.dart', |
| 'e.dart', |
| 'f.dart', |
| 'g.dart', |
| 'h.dart', |
| 'i.dart', |
| 'j.dart', |
| 'k.dart' |
| ]; |
| expect(stripColors(tree.fromFiles(files)), equals(""" |
| |-- a.dart |
| |-- b.dart |
| |-- c.dart |
| |-- d.dart |
| |-- e.dart |
| |-- f.dart |
| |-- g.dart |
| |-- h.dart |
| |-- i.dart |
| |-- j.dart |
| '-- k.dart |
| """)); |
| }); |
| |
| test('a complex example', () { |
| var files = [ |
| 'TODO', |
| 'example/console_example.dart', |
| 'example/main.dart', |
| 'example/web copy/web_example.dart', |
| 'test/absolute_test.dart', |
| 'test/basename_test.dart', |
| 'test/dirname_test.dart', |
| 'test/extension_test.dart', |
| 'test/is_absolute_test.dart', |
| 'test/is_relative_test.dart', |
| 'test/join_test.dart', |
| 'test/normalize_test.dart', |
| 'test/relative_test.dart', |
| 'test/split_test.dart', |
| '.gitignore', |
| 'README.md', |
| 'lib/path.dart', |
| 'pubspec.yaml', |
| 'test/all_test.dart', |
| 'test/path_posix_test.dart', |
| 'test/path_windows_test.dart' |
| ]; |
| |
| expect(stripColors(tree.fromFiles(files)), equals(""" |
| |-- .gitignore |
| |-- README.md |
| |-- TODO |
| |-- example |
| | |-- console_example.dart |
| | |-- main.dart |
| | '-- web copy |
| | '-- web_example.dart |
| |-- lib |
| | '-- path.dart |
| |-- pubspec.yaml |
| '-- test |
| |-- absolute_test.dart |
| |-- all_test.dart |
| |-- basename_test.dart |
| | (7 more...) |
| |-- path_windows_test.dart |
| |-- relative_test.dart |
| '-- split_test.dart |
| """)); |
| }); |
| }); |
| |
| group('treeFromMap', () { |
| test('empty map', () { |
| expect(stripColors(tree.fromMap({})), equals('')); |
| }); |
| |
| test('a complex example', () { |
| var map = { |
| '.gitignore': <String, Map>{}, |
| 'README.md': <String, Map>{}, |
| 'TODO': <String, Map>{}, |
| 'example': { |
| 'console_example.dart': <String, Map>{}, |
| 'main.dart': <String, Map>{}, |
| 'web copy': {'web_example.dart': <String, Map>{}}, |
| }, |
| 'lib': {'path.dart': <String, Map>{}}, |
| 'pubspec.yaml': <String, Map>{}, |
| 'test': { |
| 'absolute_test.dart': <String, Map>{}, |
| 'basename_test.dart': <String, Map>{}, |
| 'dirname_test.dart': <String, Map>{}, |
| 'extension_test.dart': <String, Map>{}, |
| 'is_absolute_test.dart': <String, Map>{}, |
| 'is_relative_test.dart': <String, Map>{}, |
| 'join_test.dart': <String, Map>{}, |
| 'normalize_test.dart': <String, Map>{}, |
| 'relative_test.dart': <String, Map>{}, |
| 'split_test.dart': <String, Map>{} |
| } |
| }; |
| |
| expect(stripColors(tree.fromMap(map)), equals(""" |
| |-- .gitignore |
| |-- README.md |
| |-- TODO |
| |-- example |
| | |-- console_example.dart |
| | |-- main.dart |
| | '-- web copy |
| | '-- web_example.dart |
| |-- lib |
| | '-- path.dart |
| |-- pubspec.yaml |
| '-- test |
| |-- absolute_test.dart |
| |-- basename_test.dart |
| |-- dirname_test.dart |
| |-- extension_test.dart |
| |-- is_absolute_test.dart |
| |-- is_relative_test.dart |
| |-- join_test.dart |
| |-- normalize_test.dart |
| |-- relative_test.dart |
| '-- split_test.dart |
| """)); |
| }); |
| }); |
| |
| test('does not elide children if showAllChildren is true', () { |
| var map = { |
| 'dir': { |
| 'a.dart': <String, Map>{}, |
| 'b.dart': <String, Map>{}, |
| 'c.dart': <String, Map>{}, |
| 'd.dart': <String, Map>{}, |
| 'e.dart': <String, Map>{}, |
| 'f.dart': <String, Map>{}, |
| 'g.dart': <String, Map>{}, |
| 'h.dart': <String, Map>{}, |
| 'i.dart': <String, Map>{}, |
| 'j.dart': <String, Map>{}, |
| 'k.dart': <String, Map>{}, |
| 'l.dart': <String, Map>{}, |
| } |
| }; |
| expect(stripColors(tree.fromMap(map, showAllChildren: true)), equals(""" |
| '-- dir |
| |-- a.dart |
| |-- b.dart |
| |-- c.dart |
| |-- d.dart |
| |-- e.dart |
| |-- f.dart |
| |-- g.dart |
| |-- h.dart |
| |-- i.dart |
| |-- j.dart |
| |-- k.dart |
| '-- l.dart |
| """)); |
| }); |
| } |