Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library test.services.completion.dart.keyword; | 5 library test.services.completion.dart.keyword; |
| 6 | 6 |
| 7 import 'package:analysis_server/src/protocol.dart'; | 7 import 'package:analysis_server/src/protocol.dart'; |
| 8 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart'; | 8 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart'; |
| 9 import 'package:analysis_server/src/services/completion/keyword_contributor.dart '; | 9 import 'package:analysis_server/src/services/completion/keyword_contributor.dart '; |
| 10 import 'package:analyzer/src/generated/scanner.dart'; | 10 import 'package:analyzer/src/generated/scanner.dart'; |
| (...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 834 } | 834 } |
| 835 | 835 |
| 836 test_import_deferred_as4() { | 836 test_import_deferred_as4() { |
| 837 addTestSource('import "foo" d^'); | 837 addTestSource('import "foo" d^'); |
| 838 expect(computeFast(), isTrue); | 838 expect(computeFast(), isTrue); |
| 839 assertSuggestKeywords([Keyword.AS], | 839 assertSuggestKeywords([Keyword.AS], |
| 840 pseudoKeywords: ['deferred as', 'show', 'hide'], | 840 pseudoKeywords: ['deferred as', 'show', 'hide'], |
| 841 relevance: DART_RELEVANCE_HIGH); | 841 relevance: DART_RELEVANCE_HIGH); |
| 842 } | 842 } |
| 843 | 843 |
| 844 test_import_deferred_as5() { | |
| 845 addTestSource('import "foo" sh^ import "bar"; import "baz";'); | |
| 846 expect(computeFast(), isTrue); | |
| 847 assertSuggestKeywords([Keyword.AS], | |
| 848 pseudoKeywords: ['deferred as', 'show', 'hide'], | |
| 849 relevance: DART_RELEVANCE_HIGH); | |
| 850 } | |
| 851 | |
| 844 test_import_deferred_not() { | 852 test_import_deferred_not() { |
| 845 addTestSource('import "foo" as foo ^;'); | 853 addTestSource('import "foo" as foo ^;'); |
| 846 expect(computeFast(), isTrue); | 854 expect(computeFast(), isTrue); |
| 847 assertSuggestKeywords([], | 855 assertSuggestKeywords([], |
| 848 pseudoKeywords: ['show', 'hide'], relevance: DART_RELEVANCE_HIGH); | 856 pseudoKeywords: ['show', 'hide'], relevance: DART_RELEVANCE_HIGH); |
| 849 } | 857 } |
| 850 | 858 |
| 859 test_import_deferred_partial() { | |
| 860 addTestSource('import "package:foo/foo.dart" def^ as foo;'); | |
| 861 expect(computeFast(), isTrue); | |
| 862 assertSuggestKeywords([Keyword.DEFERRED], relevance: DART_RELEVANCE_HIGH); | |
| 863 expect(request.replacementOffset, 30); | |
| 864 expect(request.replacementLength, 3); | |
| 865 } | |
| 866 | |
| 851 test_import_incomplete() { | 867 test_import_incomplete() { |
| 852 addTestSource('import "^"'); | 868 addTestSource('import "^"'); |
| 853 expect(computeFast(), isTrue); | 869 expect(computeFast(), isTrue); |
| 854 assertNoSuggestions(); | 870 assertNoSuggestions(); |
| 855 assertSuggestKeywords([]); | 871 assertSuggestKeywords([]); |
|
Brian Wilkerson
2015/08/12 13:59:25
I would have expected that 'assertNoSuggestions()'
danrubel
2015/08/15 19:17:16
Yup. That 2nd line is unnecessary. Removed.
| |
| 856 } | 872 } |
| 857 | 873 |
| 874 test_import_partial() { | |
| 875 addTestSource('imp^ import "package:foo/foo.dart"; import "bar.dart";'); | |
| 876 expect(computeFast(), isTrue); | |
| 877 // TODO(danrubel) should not suggest declaration keywords | |
|
Brian Wilkerson
2015/08/12 13:59:25
I'd rather see a test that is correct that is mark
danrubel
2015/08/15 19:17:17
Fair enough. Added.
| |
| 878 assertSuggestKeywords(DIRECTIVE_DECLARATION_AND_LIBRARY_KEYWORDS, | |
| 879 relevance: DART_RELEVANCE_HIGH); | |
| 880 expect(request.replacementOffset, 0); | |
| 881 expect(request.replacementLength, 3); | |
| 882 } | |
| 883 | |
| 884 test_import_partial2() { | |
| 885 addTestSource('^imp import "package:foo/foo.dart";'); | |
| 886 expect(computeFast(), isTrue); | |
| 887 // TODO(danrubel) should not suggest declaration keywords | |
| 888 assertSuggestKeywords(DIRECTIVE_DECLARATION_AND_LIBRARY_KEYWORDS, | |
| 889 relevance: DART_RELEVANCE_HIGH); | |
| 890 expect(request.replacementOffset, 0); | |
| 891 expect(request.replacementLength, 3); | |
| 892 } | |
| 893 | |
| 894 test_import_partial3() { | |
| 895 addTestSource(' ^imp import "package:foo/foo.dart"; import "bar.dart";'); | |
| 896 expect(computeFast(), isTrue); | |
| 897 // TODO(danrubel) should not suggest declaration keywords | |
| 898 assertSuggestKeywords(DIRECTIVE_DECLARATION_AND_LIBRARY_KEYWORDS, | |
| 899 relevance: DART_RELEVANCE_HIGH); | |
| 900 expect(request.replacementOffset, 1); | |
| 901 expect(request.replacementLength, 3); | |
| 902 } | |
| 903 | |
| 904 test_import_partial4() { | |
| 905 addTestSource('^ imp import "package:foo/foo.dart";'); | |
| 906 expect(computeFast(), isTrue); | |
| 907 // TODO(danrubel) should not suggest declaration keywords | |
| 908 assertSuggestKeywords(DIRECTIVE_DECLARATION_AND_LIBRARY_KEYWORDS, | |
| 909 relevance: DART_RELEVANCE_HIGH); | |
| 910 expect(request.replacementOffset, 0); | |
| 911 expect(request.replacementLength, 0); | |
| 912 } | |
| 913 | |
| 914 test_import_partial5() { | |
| 915 addTestSource('library libA; imp^ import "package:foo/foo.dart";'); | |
| 916 expect(computeFast(), isTrue); | |
| 917 // TODO(danrubel) should not suggest declaration keywords | |
| 918 assertSuggestKeywords(DIRECTIVE_AND_DECLARATION_KEYWORDS, | |
| 919 relevance: DART_RELEVANCE_HIGH); | |
| 920 expect(request.replacementOffset, 14); | |
| 921 expect(request.replacementLength, 3); | |
| 922 } | |
| 923 | |
| 924 test_import_partial6() { | |
| 925 addTestSource( | |
| 926 'library bar; import "zoo.dart"; imp^ import "package:foo/foo.dart";'); | |
| 927 expect(computeFast(), isTrue); | |
| 928 // TODO(danrubel) should not suggest declaration keywords | |
| 929 assertSuggestKeywords(DIRECTIVE_AND_DECLARATION_KEYWORDS, | |
| 930 relevance: DART_RELEVANCE_HIGH); | |
| 931 expect(request.replacementOffset, 32); | |
| 932 expect(request.replacementLength, 3); | |
| 933 } | |
| 934 | |
| 858 test_library() { | 935 test_library() { |
| 859 addTestSource('library foo;^'); | 936 addTestSource('library foo;^'); |
| 860 expect(computeFast(), isTrue); | 937 expect(computeFast(), isTrue); |
| 861 assertSuggestKeywords(DIRECTIVE_AND_DECLARATION_KEYWORDS, | 938 assertSuggestKeywords(DIRECTIVE_AND_DECLARATION_KEYWORDS, |
| 862 relevance: DART_RELEVANCE_HIGH); | 939 relevance: DART_RELEVANCE_HIGH); |
| 863 } | 940 } |
| 864 | 941 |
| 865 test_library_declaration() { | 942 test_library_declaration() { |
| 866 addTestSource('library ^'); | 943 addTestSource('library ^'); |
| 867 expect(computeFast(), isTrue); | 944 expect(computeFast(), isTrue); |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1194 (c) => msg.writeln(' $c, ${other.contains(c) ? '' : '<<<<<<<<<<<'}')); | 1271 (c) => msg.writeln(' $c, ${other.contains(c) ? '' : '<<<<<<<<<<<'}')); |
| 1195 } | 1272 } |
| 1196 | 1273 |
| 1197 bool _equalSets(Iterable<String> iter1, Iterable<String> iter2) { | 1274 bool _equalSets(Iterable<String> iter1, Iterable<String> iter2) { |
| 1198 if (iter1.length != iter2.length) return false; | 1275 if (iter1.length != iter2.length) return false; |
| 1199 if (iter1.any((c) => !iter2.contains(c))) return false; | 1276 if (iter1.any((c) => !iter2.contains(c))) return false; |
| 1200 if (iter2.any((c) => !iter1.contains(c))) return false; | 1277 if (iter2.any((c) => !iter1.contains(c))) return false; |
| 1201 return true; | 1278 return true; |
| 1202 } | 1279 } |
| 1203 } | 1280 } |
| OLD | NEW |