blob: 758f4b64a1ee60dd1eb496bfc68e0e4db609aebf [file] [log] [blame]
// Copyright (c) 2014, 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/src/generated/engine.dart';
import 'package:analyzer/src/generated/source_io.dart';
import 'package:analyzer/src/string_source.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(AnalysisOptionsImplTest);
defineReflectiveTests(SourcesChangedEventTest);
});
}
@reflectiveTest
class AnalysisOptionsImplTest {
test_resetToDefaults() {
// Note that this only tests options visible from the interface.
AnalysisOptionsImpl defaultOptions = new AnalysisOptionsImpl();
AnalysisOptionsImpl modifiedOptions = new AnalysisOptionsImpl();
modifiedOptions.dart2jsHint = true;
modifiedOptions.disableCacheFlushing = true;
modifiedOptions.enabledPluginNames = ['somePackage'];
modifiedOptions.enableLazyAssignmentOperators = true;
modifiedOptions.enableTiming = true;
modifiedOptions.errorProcessors = [null];
modifiedOptions.excludePatterns = ['a'];
modifiedOptions.generateImplicitErrors = false;
modifiedOptions.generateSdkErrors = true;
modifiedOptions.hint = false;
modifiedOptions.lint = true;
modifiedOptions.lintRules = [null];
modifiedOptions.patchPaths = {
'dart:core': ['/dart_core.patch.dart']
};
modifiedOptions.preserveComments = false;
modifiedOptions.trackCacheDependencies = false;
modifiedOptions.resetToDefaults();
expect(modifiedOptions.dart2jsHint, defaultOptions.dart2jsHint);
expect(modifiedOptions.disableCacheFlushing,
defaultOptions.disableCacheFlushing);
expect(modifiedOptions.enabledPluginNames, isEmpty);
expect(modifiedOptions.enableLazyAssignmentOperators,
defaultOptions.enableLazyAssignmentOperators);
expect(modifiedOptions.enableTiming, defaultOptions.enableTiming);
expect(modifiedOptions.errorProcessors, defaultOptions.errorProcessors);
expect(modifiedOptions.excludePatterns, defaultOptions.excludePatterns);
expect(modifiedOptions.generateImplicitErrors,
defaultOptions.generateImplicitErrors);
expect(modifiedOptions.generateSdkErrors, defaultOptions.generateSdkErrors);
expect(modifiedOptions.hint, defaultOptions.hint);
expect(modifiedOptions.lint, defaultOptions.lint);
expect(modifiedOptions.lintRules, defaultOptions.lintRules);
expect(modifiedOptions.patchPaths, defaultOptions.patchPaths);
expect(modifiedOptions.preserveComments, defaultOptions.preserveComments);
expect(modifiedOptions.trackCacheDependencies,
defaultOptions.trackCacheDependencies);
}
}
@reflectiveTest
class SourcesChangedEventTest {
void test_added() {
var source = new StringSource('', '/test.dart');
var changeSet = new ChangeSet();
changeSet.addedSource(source);
var event = new SourcesChangedEvent(changeSet);
assertEvent(event, wereSourcesAdded: true);
}
void test_changedContent() {
var source = new StringSource('', '/test.dart');
var changeSet = new ChangeSet();
changeSet.changedContent(source, 'library A;');
var event = new SourcesChangedEvent(changeSet);
assertEvent(event, changedSources: [source]);
}
void test_changedContent2() {
var source = new StringSource('', '/test.dart');
var event = new SourcesChangedEvent.changedContent(source, 'library A;');
assertEvent(event, changedSources: [source]);
}
void test_changedRange() {
var source = new StringSource('', '/test.dart');
var changeSet = new ChangeSet();
changeSet.changedRange(source, 'library A;', 0, 0, 13);
var event = new SourcesChangedEvent(changeSet);
assertEvent(event, changedSources: [source]);
}
void test_changedRange2() {
var source = new StringSource('', '/test.dart');
var event =
new SourcesChangedEvent.changedRange(source, 'library A;', 0, 0, 13);
assertEvent(event, changedSources: [source]);
}
void test_changedSources() {
var source = new StringSource('', '/test.dart');
var changeSet = new ChangeSet();
changeSet.changedSource(source);
var event = new SourcesChangedEvent(changeSet);
assertEvent(event, changedSources: [source]);
}
void test_empty() {
var changeSet = new ChangeSet();
var event = new SourcesChangedEvent(changeSet);
assertEvent(event);
}
void test_removed() {
var source = new StringSource('', '/test.dart');
var changeSet = new ChangeSet();
changeSet.removedSource(source);
var event = new SourcesChangedEvent(changeSet);
assertEvent(event, wereSourcesRemoved: true);
}
static void assertEvent(SourcesChangedEvent event,
{bool wereSourcesAdded: false,
List<Source> changedSources: const <Source>[],
bool wereSourcesRemoved: false}) {
expect(event.wereSourcesAdded, wereSourcesAdded);
expect(event.changedSources, changedSources);
expect(event.wereSourcesRemoved, wereSourcesRemoved);
}
}