Chromium Code Reviews| Index: utils/dartdoc/test/dartdoc_tests.dart |
| diff --git a/utils/dartdoc/test/dartdoc_tests.dart b/utils/dartdoc/test/dartdoc_tests.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c6f7a9e33a8fce44d15607ed6e979a5f2ed6fbf3 |
| --- /dev/null |
| +++ b/utils/dartdoc/test/dartdoc_tests.dart |
| @@ -0,0 +1,93 @@ |
| +// Copyright (c) 2011, 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. |
| + |
| +/// Unit tests for dartdoc. |
| +#library('dartdoc_tests'); |
| + |
| +#import('../dartdoc.dart'); |
| + |
| +// TODO(rnystrom): Better path to unittest. |
|
pquitslund
2011/12/01 23:29:54
Hear, hear!
|
| +#import('../../../client/testing/unittest/unittest_node.dart'); |
| + |
| +main() { |
| + group('countOccurrences', () { |
| + test('empty haystack returns 0', () { |
| + expect(countOccurrences('', 'needle')).equals(0); |
| + }); |
| + |
| + test('one occurrence', () { |
| + expect(countOccurrences('bananarama', 'nara')).equals(1); |
| + }); |
| + |
| + test('multiple occurrences', () { |
| + expect(countOccurrences('bananarama', 'a')).equals(5); |
| + }); |
| + |
| + test('overlapping ones needles do not count', () { |
| + expect(countOccurrences('bananarama', 'ana')).equals(1); |
| + }); |
| + }); |
| + |
| + group('repeat', () { |
| + test('zero times returns an empty string', () { |
| + expect(repeat('ba', 0)).equals(''); |
| + }); |
| + |
| + test('one time returns the string', () { |
| + expect(repeat('ba', 1)).equals('ba'); |
| + }); |
| + |
| + test('multiple times', () { |
| + expect(repeat('ba', 3)).equals('bababa'); |
| + }); |
| + |
| + test('multiple times with a separator', () { |
| + expect(repeat('ba', 3, separator: ' ')).equals('ba ba ba'); |
| + }); |
| + }); |
| + |
| + group('relativePath', () { |
| + test('from root to root', () { |
| + startFile('root.html'); |
| + expect(relativePath('other.html')).equals('other.html'); |
| + }); |
| + |
| + test('from root to directory', () { |
| + startFile('root.html'); |
| + expect(relativePath('dir/file.html')).equals('dir/file.html'); |
| + }); |
| + |
| + test('from root to nested', () { |
| + startFile('root.html'); |
| + expect(relativePath('dir/sub/file.html')).equals('dir/sub/file.html'); |
| + }); |
| + |
| + test('from directory to root', () { |
| + startFile('dir/file.html'); |
| + expect(relativePath('root.html')).equals('../root.html'); |
| + }); |
| + |
| + test('from nested to root', () { |
| + startFile('dir/sub/file.html'); |
| + expect(relativePath('root.html')).equals('../../root.html'); |
| + }); |
| + |
| + test('from dir to dir with different path', () { |
| + startFile('dir/file.html'); |
| + expect(relativePath('other/file.html')).equals('../other/file.html'); |
| + }); |
| + |
| + test('from nested to nested with different path', () { |
| + startFile('dir/sub/file.html'); |
| + expect(relativePath('other/sub/file.html')).equals( |
| + '../../other/sub/file.html'); |
| + }); |
| + |
| + test('from nested to directory with different path', () { |
| + startFile('dir/sub/file.html'); |
| + expect(relativePath('other/file.html')).equals( |
| + '../../other/file.html'); |
| + }); |
| + }); |
| +} |