Unverified Commit d21ab518 authored by kwkr's avatar kwkr Committed by GitHub

Fix/set mocks defaults (#54756)

parent 6a490ed4
......@@ -42,6 +42,7 @@ void main() {
MockDeviceManager mockDeviceManager;
MockFlutterVersion mockStableFlutterVersion;
MockFlutterVersion mockUnstableFlutterVersion;
MockStdio mockStdio;
setUpAll(() {
Cache.disableLocking();
......@@ -51,6 +52,10 @@ void main() {
mockUnstableFlutterVersion = MockFlutterVersion(isStable: false);
});
setUp((){
mockStdio = MockStdio()..stdout.terminalColumns = 80;
});
testUsingContext('fails when target not found', () async {
final RunCommand command = RunCommand();
applyMocksToCommand(command);
......@@ -145,7 +150,7 @@ void main() {
FileSystem: () => MemoryFileSystem.test(),
ProcessManager: () => FakeProcessManager.any(),
DeviceManager: () => MockDeviceManager(),
Stdio: () => MockStdio(),
Stdio: () => mockStdio,
});
testUsingContext('Walks upward looking for a pubspec.yaml and exits if missing', () async {
......
......@@ -22,7 +22,7 @@ void main() {
setUp(() {
Cache.disableLocking();
mockStdio = MockStdio();
mockStdio = MockStdio()..stdout.terminalColumns = 80;
});
testUsingContext('generates bash initialization script to stdout', () async {
......
......@@ -337,7 +337,7 @@ void main() {
setUp(() {
mockProcessManager = MockProcessManager();
mockStdio = MockStdio();
mockStdio = MockStdio()..stdout.terminalColumns = 80;
});
testUsingContext('test without bot', () async {
......
......@@ -290,8 +290,12 @@ void main() {
environment: anyNamed('environment'),
)).called(1);
expect(testLogger.statusText, contains("Successfully switched to flutter channel 'beta'."));
expect(testLogger.statusText, contains("To ensure that you're on the latest build from this channel, run 'flutter upgrade'"));
expect(testLogger.statusText, containsIgnoringWhitespace(
"Successfully switched to flutter channel 'beta'."));
expect(testLogger.statusText,
containsIgnoringWhitespace(
"To ensure that you're on the latest build "
"from this channel, run 'flutter upgrade'"));
expect(testLogger.errorText, hasLength(0));
}, overrides: <Type, Generator>{
FileSystem: () => MemoryFileSystem(),
......
......@@ -433,8 +433,8 @@ void main() {
);
}, throwsToolExit());
expect(testLogger.statusText, contains("Your app isn't using AndroidX"));
expect(testLogger.statusText, contains(
expect(testLogger.statusText, containsIgnoringWhitespace("Your app isn't using AndroidX"));
expect(testLogger.statusText, containsIgnoringWhitespace(
'To avoid potential build failures, you can quickly migrate your app by '
'following the steps on https://goo.gl/CP92wY'
)
......
......@@ -361,8 +361,8 @@ void main() {
);
}, throwsToolExit());
expect(testLogger.statusText, contains("Your app isn't using AndroidX"));
expect(testLogger.statusText, contains(
expect(testLogger.statusText, containsIgnoringWhitespace("Your app isn't using AndroidX"));
expect(testLogger.statusText, containsIgnoringWhitespace(
'To avoid potential build failures, you can quickly migrate your app by '
'following the steps on https://goo.gl/CP92wY'
)
......@@ -412,13 +412,12 @@ void main() {
);
}, throwsToolExit());
expect(testLogger.statusText.contains("Your app isn't using AndroidX"), isFalse);
expect(testLogger.statusText,
not(containsIgnoringWhitespace("Your app isn't using AndroidX")));
expect(
testLogger.statusText.contains(
testLogger.statusText, not(containsIgnoringWhitespace(
'To avoid potential build failures, you can quickly migrate your app by '
'following the steps on https://goo.gl/CP92wY'
),
isFalse,
'following the steps on https://goo.gl/CP92wY'))
);
verify(mockUsage.sendEvent(
'build',
......@@ -451,6 +450,10 @@ Future<BuildAppBundleCommand> runBuildAppBundleCommand(
return command;
}
Matcher not(Matcher target){
return isNot(target);
}
class MockAndroidSdk extends Mock implements AndroidSdk {}
class MockProcessManager extends Mock implements ProcessManager {}
class MockProcess extends Mock implements Process {}
......
// 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 '../src/common.dart';
void main() {
group('containsIgnoreWhitespace Matcher', () {
group('on item to be contained', () {
test('matches simple case.', () {
expect('Give me any text!', containsIgnoringWhitespace('any text!'));
});
test("shouldn't match when it's only because of removing whitespaces", () {
expect('Give me anytext!', isNot(containsIgnoringWhitespace('any text!')));
});
test('ignores trailing spaces.', () {
expect('Give me any text!', containsIgnoringWhitespace('any text! '));
});
test('ignores leading spaces.', () {
expect('Give me any text!', containsIgnoringWhitespace(' any text!'));
});
test('ignores linebreaks.', () {
expect('Give me any text!', containsIgnoringWhitespace('any\n text!'));
});
test('ignores tabs.', () {
expect('Give me any text!', containsIgnoringWhitespace('any\t text!'));
});
test('is case sensitive.', () {
expect('Give me Any text!', isNot(containsIgnoringWhitespace('any text!')));
});
});
group('on value to match against', () {
test('ignores trailing spaces.', () {
expect('Give me any value to include! ',
containsIgnoringWhitespace('any value to include!'));
});
test('ignores leading spaces.', () {
expect(' Give me any value to include!',
containsIgnoringWhitespace('any value to include!'));
});
test('ignores linebreaks.', () {
expect('Give me \n any \n value \n to \n include!',
containsIgnoringWhitespace('any value to include!'));
});
test('ignores tabs.', () {
expect('\tGive\t me any\t value \t to \t include!',
containsIgnoringWhitespace('any value to include!'));
});
});
});
}
......@@ -145,6 +145,15 @@ Future<void> expectToolExitLater(Future<dynamic> future, Matcher messageMatcher)
}
}
Matcher containsIgnoringWhitespace(String toSearch) {
return predicate(
(String source) {
return collapseWhitespace(source).contains(collapseWhitespace(toSearch));
},
'contains "$toSearch" ignoring whitespace.',
);
}
/// Executes a test body in zone that does not allow context-based injection.
///
/// For classes which have been refactored to excluded context-based injection
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment