// 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 changedSources: const [], bool wereSourcesRemoved: false}) { expect(event.wereSourcesAdded, wereSourcesAdded); expect(event.changedSources, changedSources); expect(event.wereSourcesRemoved, wereSourcesRemoved); } }