fuchsia_pm_test.dart 2.09 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
        '-c',
        '2',
40 41 42 43
      ]));

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

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

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

70 71 72 73 74 75
class FakeFuchsiaArtifacts extends Fake implements FuchsiaArtifacts {
  FakeFuchsiaArtifacts(this.pm);

  @override
  final File pm;
}