| // 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. |
| |
| import 'package:flutter_tools/src/base/logger.dart'; |
| import 'package:flutter_tools/src/base/platform.dart'; |
| import 'package:flutter_tools/src/base/process.dart'; |
| import 'package:flutter_tools/src/git.dart'; |
| |
| import '../src/common.dart'; |
| import '../src/fake_process_manager.dart'; |
| |
| void main() { |
| late BufferLogger logger; |
| late Git git; |
| late FakeProcessManager processManager; |
| |
| setUp(() { |
| logger = BufferLogger.test(); |
| processManager = FakeProcessManager.empty(); |
| }); |
| |
| // Regression test for https://github.com/flutter/flutter/issues/74165. |
| group('on Windows', () { |
| const expectedCygwinEnvVars = {'MSYS': 'noglob', 'CYGWIN': 'noglob'}; |
| |
| setUp(() { |
| git = Git( |
| currentPlatform: FakePlatform(operatingSystem: 'windows'), |
| runProcessWith: ProcessUtils(processManager: processManager, logger: logger), |
| ); |
| }); |
| |
| test('git.runSync passes ENV=noglob if environment is omitted', () { |
| processManager.addCommand( |
| const FakeCommand(command: ['git', 'foo', 'bar'], environment: expectedCygwinEnvVars), |
| ); |
| git.runSync(['foo', 'bar']); |
| }); |
| |
| test('git.runSync passes ENV=noglob if environment is present', () { |
| processManager.addCommand( |
| const FakeCommand( |
| command: ['git', 'foo', 'bar'], |
| environment: {...expectedCygwinEnvVars, 'baz': 'BAZ'}, |
| ), |
| ); |
| git.runSync(['foo', 'bar'], environment: {'baz': 'BAZ'}); |
| }); |
| |
| test('git.run passes ENV=noglob if environment is omitted', () async { |
| processManager.addCommand( |
| const FakeCommand(command: ['git', 'foo', 'bar'], environment: expectedCygwinEnvVars), |
| ); |
| await git.run(['foo', 'bar']); |
| }); |
| |
| test('git.run passes ENV=noglob if environment is present', () async { |
| processManager.addCommand( |
| const FakeCommand( |
| command: ['git', 'foo', 'bar'], |
| environment: {...expectedCygwinEnvVars, 'baz': 'BAZ'}, |
| ), |
| ); |
| await git.run(['foo', 'bar'], environment: {'baz': 'BAZ'}); |
| }); |
| |
| test('git.stream passes ENV=noglob if environment is omitted', () async { |
| processManager.addCommand( |
| const FakeCommand(command: ['git', 'foo', 'bar'], environment: expectedCygwinEnvVars), |
| ); |
| await git.stream(['foo', 'bar']); |
| }); |
| |
| test('git.stream passes ENV=noglob if environment is present', () async { |
| processManager.addCommand( |
| const FakeCommand( |
| command: ['git', 'foo', 'bar'], |
| environment: {...expectedCygwinEnvVars, 'baz': 'BAZ'}, |
| ), |
| ); |
| await git.stream(['foo', 'bar'], environment: {'baz': 'BAZ'}); |
| }); |
| }); |
| } |