From 9b1ba86d693ea7635bcc7e7b7bdf6856a3de219c Mon Sep 17 00:00:00 2001 From: Janice Collins Date: Mon, 11 Feb 2019 11:30:42 -0800 Subject: [PATCH 1/2] Make experiment_options_test resilient against upstream parameter changes --- test/experiment_options_test.dart | 62 +++++++++++++++---------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/test/experiment_options_test.dart b/test/experiment_options_test.dart index 6772bfdbce..6df767b6f5 100644 --- a/test/experiment_options_test.dart +++ b/test/experiment_options_test.dart @@ -7,21 +7,16 @@ library dartdoc.experiment_options_test; import 'dart:io'; +import 'package:analyzer/src/dart/analysis/experiments.dart'; import 'package:dartdoc/src/dartdoc_options.dart'; import 'package:dartdoc/src/experiment_options.dart'; -import 'package:path/path.dart' as pathLib; import 'package:test/test.dart'; -class DartdocExperimentOptionContextTester extends DartdocOptionContext { - DartdocExperimentOptionContextTester( - DartdocOptionSet optionSet, FileSystemEntity entity) - : super(optionSet, entity); -} - void main() { DartdocOptionSet experimentOptions; - Directory tempDir; - File optionsFile; + Directory emptyTempDir; + ExperimentalFeature defaultOnNotExpired, defaultOffNotExpired; + ExperimentalFeature defaultOnExpired, defaultOffExpired; setUp(() async { experimentOptions = await DartdocOptionSet.fromOptionGenerators( @@ -29,40 +24,45 @@ void main() { }); setUpAll(() { - tempDir = Directory.systemTemp.createTempSync('experiment_options_test'); - optionsFile = new File(pathLib.join(tempDir.path, 'dartdoc_options.yaml')) - ..createSync(); - optionsFile.writeAsStringSync(''' -dartdoc: - enable-experiment: - - constant-update-2018 - - fake-experiment - - no-fake-experiment-on -'''); + emptyTempDir = Directory.systemTemp.createTempSync('experiment_options_test_empty'); + // We don't test our functionality at all unless ExperimentStatus has at least + // one of these. TODO(jcollins-g): make analyzer+dartdoc connection + // more amenable to testing. + defaultOnNotExpired = ExperimentStatus.knownFeatures.values.firstWhere((f) => f.isEnabledByDefault && !f.isExpired, orElse: () => null); + defaultOffNotExpired = ExperimentStatus.knownFeatures.values.firstWhere((f) => !f.isEnabledByDefault && !f.isExpired, orElse: () => null); + assert(defaultOnNotExpired != null || defaultOffNotExpired != null, 'No experimental options that are not expired found'); + + // The "bogus" entries should always exist. + defaultOnExpired = ExperimentStatus.knownFeatures.values.firstWhere((f) => f.isEnabledByDefault && f.isExpired); + defaultOffExpired = ExperimentStatus.knownFeatures.values.firstWhere((f) => !f.isEnabledByDefault && f.isExpired); }); tearDownAll(() { - tempDir.deleteSync(recursive: true); + emptyTempDir.deleteSync(recursive: true); }); group('Experimental options test', () { test('Defaults work for all options', () { experimentOptions.parseArguments([]); - DartdocExperimentOptionContextTester tester = - new DartdocExperimentOptionContextTester( - experimentOptions, Directory.current); - expect(tester.experimentStatus.constant_update_2018, isFalse); - expect(tester.experimentStatus.set_literals, isFalse); + DartdocOptionContext tester = + new DartdocOptionContext( + experimentOptions, emptyTempDir); + if (defaultOnNotExpired != null) expect(tester.experimentStatus.isEnabled(defaultOnNotExpired), isTrue); + if (defaultOffNotExpired != null) expect(tester.experimentStatus.isEnabled(defaultOffNotExpired), isFalse); + expect(tester.experimentStatus.isEnabled(defaultOnExpired), isTrue); + expect(tester.experimentStatus.isEnabled(defaultOffExpired), isFalse); }); test('Overriding defaults works via args', () { + // Set all arguments to non-default values. experimentOptions.parseArguments( - ['--enable-experiment', 'constant-update-2018,set-literals']); - DartdocExperimentOptionContextTester tester = - new DartdocExperimentOptionContextTester( - experimentOptions, Directory.current); - expect(tester.experimentStatus.constant_update_2018, isTrue); - expect(tester.experimentStatus.set_literals, isTrue); + ['--enable-experiment', '${defaultOffNotExpired?.disableString},${defaultOnNotExpired?.disableString},${defaultOnExpired.disableString},${defaultOffExpired.enableString}']); + DartdocOptionContext tester = + new DartdocOptionContext(experimentOptions, emptyTempDir); + if (defaultOnNotExpired != null) expect(tester.experimentStatus.isEnabled(defaultOnNotExpired), isFalse); + if (defaultOffNotExpired != null) expect(tester.experimentStatus.isEnabled(defaultOffNotExpired), isFalse); + expect(tester.experimentStatus.isEnabled(defaultOnExpired), isTrue); + expect(tester.experimentStatus.isEnabled(defaultOffExpired), isFalse); }); }); } From 8183a296808c8b8d79fa5a9fcb20f72996415a0f Mon Sep 17 00:00:00 2001 From: Janice Collins Date: Mon, 11 Feb 2019 11:30:53 -0800 Subject: [PATCH 2/2] dartfmt --- test/experiment_options_test.dart | 43 +++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/test/experiment_options_test.dart b/test/experiment_options_test.dart index 6df767b6f5..d091f0422d 100644 --- a/test/experiment_options_test.dart +++ b/test/experiment_options_test.dart @@ -24,17 +24,25 @@ void main() { }); setUpAll(() { - emptyTempDir = Directory.systemTemp.createTempSync('experiment_options_test_empty'); + emptyTempDir = + Directory.systemTemp.createTempSync('experiment_options_test_empty'); // We don't test our functionality at all unless ExperimentStatus has at least // one of these. TODO(jcollins-g): make analyzer+dartdoc connection // more amenable to testing. - defaultOnNotExpired = ExperimentStatus.knownFeatures.values.firstWhere((f) => f.isEnabledByDefault && !f.isExpired, orElse: () => null); - defaultOffNotExpired = ExperimentStatus.knownFeatures.values.firstWhere((f) => !f.isEnabledByDefault && !f.isExpired, orElse: () => null); - assert(defaultOnNotExpired != null || defaultOffNotExpired != null, 'No experimental options that are not expired found'); + defaultOnNotExpired = ExperimentStatus.knownFeatures.values.firstWhere( + (f) => f.isEnabledByDefault && !f.isExpired, + orElse: () => null); + defaultOffNotExpired = ExperimentStatus.knownFeatures.values.firstWhere( + (f) => !f.isEnabledByDefault && !f.isExpired, + orElse: () => null); + assert(defaultOnNotExpired != null || defaultOffNotExpired != null, + 'No experimental options that are not expired found'); // The "bogus" entries should always exist. - defaultOnExpired = ExperimentStatus.knownFeatures.values.firstWhere((f) => f.isEnabledByDefault && f.isExpired); - defaultOffExpired = ExperimentStatus.knownFeatures.values.firstWhere((f) => !f.isEnabledByDefault && f.isExpired); + defaultOnExpired = ExperimentStatus.knownFeatures.values + .firstWhere((f) => f.isEnabledByDefault && f.isExpired); + defaultOffExpired = ExperimentStatus.knownFeatures.values + .firstWhere((f) => !f.isEnabledByDefault && f.isExpired); }); tearDownAll(() { @@ -45,22 +53,29 @@ void main() { test('Defaults work for all options', () { experimentOptions.parseArguments([]); DartdocOptionContext tester = - new DartdocOptionContext( - experimentOptions, emptyTempDir); - if (defaultOnNotExpired != null) expect(tester.experimentStatus.isEnabled(defaultOnNotExpired), isTrue); - if (defaultOffNotExpired != null) expect(tester.experimentStatus.isEnabled(defaultOffNotExpired), isFalse); + new DartdocOptionContext(experimentOptions, emptyTempDir); + if (defaultOnNotExpired != null) + expect(tester.experimentStatus.isEnabled(defaultOnNotExpired), isTrue); + if (defaultOffNotExpired != null) + expect( + tester.experimentStatus.isEnabled(defaultOffNotExpired), isFalse); expect(tester.experimentStatus.isEnabled(defaultOnExpired), isTrue); expect(tester.experimentStatus.isEnabled(defaultOffExpired), isFalse); }); test('Overriding defaults works via args', () { // Set all arguments to non-default values. - experimentOptions.parseArguments( - ['--enable-experiment', '${defaultOffNotExpired?.disableString},${defaultOnNotExpired?.disableString},${defaultOnExpired.disableString},${defaultOffExpired.enableString}']); + experimentOptions.parseArguments([ + '--enable-experiment', + '${defaultOffNotExpired?.disableString},${defaultOnNotExpired?.disableString},${defaultOnExpired.disableString},${defaultOffExpired.enableString}' + ]); DartdocOptionContext tester = new DartdocOptionContext(experimentOptions, emptyTempDir); - if (defaultOnNotExpired != null) expect(tester.experimentStatus.isEnabled(defaultOnNotExpired), isFalse); - if (defaultOffNotExpired != null) expect(tester.experimentStatus.isEnabled(defaultOffNotExpired), isFalse); + if (defaultOnNotExpired != null) + expect(tester.experimentStatus.isEnabled(defaultOnNotExpired), isFalse); + if (defaultOffNotExpired != null) + expect( + tester.experimentStatus.isEnabled(defaultOffNotExpired), isFalse); expect(tester.experimentStatus.isEnabled(defaultOnExpired), isTrue); expect(tester.experimentStatus.isEnabled(defaultOffExpired), isFalse); });