doctor.dart 2.15 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter_tools/src/doctor.dart';
import 'package:flutter_tools/src/features.dart';
import 'package:flutter_tools/src/linux/linux_doctor.dart';
import 'package:flutter_tools/src/web/web_validator.dart';
import 'package:flutter_tools/src/windows/visual_studio_validator.dart';

import '../src/common.dart';
import '../src/testbed.dart';

void main() {
  Testbed testbed;

  setUp(() {
    testbed = Testbed();
  });

  test('doctor validators includes desktop when features are enabled', () => testbed.run(() {
    expect(DoctorValidatorsProvider.defaultInstance.validators,
Dan Field's avatar
Dan Field committed
23
        contains(isA<LinuxDoctorValidator>()));
24
    expect(DoctorValidatorsProvider.defaultInstance.validators,
Dan Field's avatar
Dan Field committed
25
        contains(isA<VisualStudioValidator>()));
26 27 28 29
  }, overrides: <Type, Generator>{
    FeatureFlags: () => TestFeatureFlags(
      isLinuxEnabled: true,
      isWindowsEnabled: true,
30
    ),
31 32 33 34
  }));

  test('doctor validators does not include desktop when features are enabled', () => testbed.run(() {
    expect(DoctorValidatorsProvider.defaultInstance.validators,
Dan Field's avatar
Dan Field committed
35
        isNot(contains(isA<LinuxDoctorValidator>())));
36
    expect(DoctorValidatorsProvider.defaultInstance.validators,
Dan Field's avatar
Dan Field committed
37
        isNot(contains(isA<VisualStudioValidator>())));
38 39 40 41
  }, overrides: <Type, Generator>{
    FeatureFlags: () => TestFeatureFlags(
      isLinuxEnabled: false,
      isWindowsEnabled: false,
42
    ),
43 44 45 46
  }));

  test('doctor validators includes web when feature is enabled', () => testbed.run(() {
    expect(DoctorValidatorsProvider.defaultInstance.validators,
47
        contains(isA<ChromiumValidator>()));
48 49 50
  }, overrides: <Type, Generator>{
    FeatureFlags: () => TestFeatureFlags(
      isWebEnabled: true,
51
    ),
52 53 54 55
  }));

  test('doctor validators does not include web when feature is disabled', () => testbed.run(() {
    expect(DoctorValidatorsProvider.defaultInstance.validators,
56
        isNot(contains(isA<ChromiumValidator>())));
57 58 59
  }, overrides: <Type, Generator>{
    FeatureFlags: () => TestFeatureFlags(
      isWebEnabled: false,
60
    ),
61 62
  }));
}