blob: 9374c065ec05ab2a1bddf36ee0a4074e9f5dcb41 [file] [log] [blame]
// 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.
library dartdoc_search_test;
// TODO(rnystrom): Use "package:" URL (#4968).
import '../../../../../pkg/expect/lib/expect.dart';
import '../lib/src/dartdoc/nav.dart';
import '../lib/src/client/search.dart';
const String URL = 'dummy-url';
testTopLevelVsMembers() {
var search = new SearchText('timer');
var match = obtainMatch(search, 'timer');
// Matching a top-level field 'timer';
var topLevelResult = new Result(match, FIELD, URL);
// Matching a member field 'timer' in 'Foo';
var memberResult = new Result(match, FIELD, URL, type: 'Foo');
Expect.equals(-1, resultComparator(topLevelResult, memberResult),
"Top level fields should be preferred to member fields");
}
testTopLevelFullVsPrefix() {
var search = new SearchText('cancel');
var fullMatch = obtainMatch(search, 'cancel');
var prefixMatch = obtainMatch(search, 'cancelable');
// Matching a top-level method 'cancel';
var fullResult = new Result(fullMatch, METHOD, URL);
// Matching a top-level method 'cancelable';
var prefixResult = new Result(prefixMatch, METHOD, URL);
Expect.equals(-1, resultComparator(fullResult, prefixResult),
"Full matches should be preferred to prefix matches");
}
testMemberFullVsPrefix() {
var search = new SearchText('cancel');
var fullMatch = obtainMatch(search, 'cancel');
var prefixMatch = obtainMatch(search, 'cancelable');
// Matching a member method 'cancel' in 'Isolate';
var fullResult = new Result(fullMatch, METHOD, URL, type: 'Isolate');
// Matching a member field 'cancelable' in 'Event';
var prefixResult = new Result(prefixMatch, FIELD, URL, type: 'Event');
Expect.equals(-1, resultComparator(fullResult, prefixResult),
"Full matches should be preferred to prefix matches");
}
void main() {
testTopLevelVsMembers();
testTopLevelFullVsPrefix();
testMemberFullVsPrefix();
}