fuchsia_pm_test.dart 2.04 KB
Newer Older
1 2 3 4
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

5 6
// @dart = 2.8

7
import 'package:file/memory.dart';
8 9 10
import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/fuchsia/fuchsia_pm.dart';
import 'package:flutter_tools/src/fuchsia/fuchsia_sdk.dart';
11
import 'package:test/fake.dart';
12 13 14

import '../../src/common.dart';
import '../../src/context.dart';
15
import '../../src/fake_process_manager.dart';
16 17 18

void main() {
  group('FuchsiaPM', () {
19
    File pm;
20 21
    FakeProcessManager fakeProcessManager;
    FakeFuchsiaArtifacts fakeFuchsiaArtifacts;
22 23

    setUp(() {
24
      pm = MemoryFileSystem.test().file('pm');
25

26 27
      fakeFuchsiaArtifacts = FakeFuchsiaArtifacts(pm);
      fakeProcessManager = FakeProcessManager.empty();
28 29 30
    });

    testUsingContext('serve - IPv4 address', () async {
31
      fakeProcessManager.addCommand(const FakeCommand(command: <String>[
32 33 34 35 36 37
        'pm',
        'serve',
        '-repo',
        '<repo>',
        '-l',
        '127.0.0.1:43819',
38 39 40 41
      ]));

      await FuchsiaPM().serve('<repo>', '127.0.0.1', 43819);
      expect(fakeProcessManager, hasNoRemainingExpectations);
42
    }, overrides: <Type, Generator>{
43 44
      FuchsiaArtifacts: () => fakeFuchsiaArtifacts,
      ProcessManager: () => fakeProcessManager,
45 46 47
    });

    testUsingContext('serve - IPv6 address', () async {
48
      fakeProcessManager.addCommand(const FakeCommand(command: <String>[
49 50 51 52 53
        'pm',
        'serve',
        '-repo',
        '<repo>',
        '-l',
54
        '[fe80::ec4:7aff:fecc:ea8f%eno2]:43819',
55 56 57 58
      ]));

      await FuchsiaPM().serve('<repo>', 'fe80::ec4:7aff:fecc:ea8f%eno2', 43819);
      expect(fakeProcessManager, hasNoRemainingExpectations);
59
    }, overrides: <Type, Generator>{
60 61
      FuchsiaArtifacts: () => fakeFuchsiaArtifacts,
      ProcessManager: () => fakeProcessManager,
62 63 64 65
    });
  });
}

66 67 68 69 70 71
class FakeFuchsiaArtifacts extends Fake implements FuchsiaArtifacts {
  FakeFuchsiaArtifacts(this.pm);

  @override
  final File pm;
}