blob: 8577738599808f16a65f9fcb9a8ea1fa5c6f05a7 [file] [log] [blame]
// Copyright (c) 2020, 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:analyzer_plugin/protocol/protocol_common.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../../../../client/completion_driver_test.dart';
import 'completion_relevance.dart';
void main() {
defineReflectiveSuite(() {
// defineReflectiveTests(BoolAssignmentTest1);
defineReflectiveTests(BoolAssignmentTest2);
});
}
@reflectiveTest
class BoolAssignmentTest1 extends CompletionRelevanceTest
with BoolAssignmentTestCases {
@override
TestingCompletionProtocol get protocol => TestingCompletionProtocol.version1;
}
@reflectiveTest
class BoolAssignmentTest2 extends CompletionRelevanceTest
with BoolAssignmentTestCases {
@override
TestingCompletionProtocol get protocol => TestingCompletionProtocol.version2;
@FailingTest(reason: r'''
The actual relevances are:
[completion: bool.fromEnvironment][relevance: 591]
[completion: bool.hasEnvironment][relevance: 591]
[completion: b][relevance: 587]
[completion: bool][relevance: 578]
[completion: true][relevance: 574]
[completion: false][relevance: 572]
[completion: identical][relevance: 563]
for (var e in result) {
print('[completion: ${e.completion}][relevance: ${e.relevance}]');
}
''')
@override
Future<void> test_boolLiterals_imported() {
// TODO: implement test_boolLiterals_imported
return super.test_boolLiterals_imported();
}
}
mixin BoolAssignmentTestCases on CompletionRelevanceTest {
Future<void> test_boolLiterals_imported() async {
await addTestFile('''
foo() {
bool b;
b = ^
}
''');
var trueSuggestion = suggestionWith(
completion: 'true', kind: CompletionSuggestionKind.KEYWORD);
var falseSuggestion = suggestionWith(
completion: 'false', kind: CompletionSuggestionKind.KEYWORD);
var boolFromEnvironment = suggestionWith(
completion: 'bool.fromEnvironment',
element: ElementKind.CONSTRUCTOR,
kind: CompletionSuggestionKind.INVOCATION);
assertOrder([trueSuggestion, falseSuggestion, boolFromEnvironment]);
}
Future<void> test_boolLiterals_local() async {
await addTestFile('''
foo() {
bool b;
b = ^
}
''');
var trueSuggestion = suggestionWith(
completion: 'true', kind: CompletionSuggestionKind.KEYWORD);
var falseSuggestion = suggestionWith(
completion: 'false', kind: CompletionSuggestionKind.KEYWORD);
var bLocalVar = suggestionWith(
completion: 'b',
element: ElementKind.LOCAL_VARIABLE,
kind: CompletionSuggestionKind.IDENTIFIER);
assertOrder([bLocalVar, trueSuggestion, falseSuggestion]);
}
}