From bb732b4655301b88e38fccf07bafde6748fdbe70 Mon Sep 17 00:00:00 2001 From: Chris Bracken Date: Mon, 26 Jun 2017 14:34:44 -0700 Subject: [PATCH] Add tests for xcodeVersionSatisfactory (#10981) And fix a typo in a test description. --- packages/flutter_tools/test/ios/mac_test.dart | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/packages/flutter_tools/test/ios/mac_test.dart b/packages/flutter_tools/test/ios/mac_test.dart index c23b70813d0..01d891ef3f8 100644 --- a/packages/flutter_tools/test/ios/mac_test.dart +++ b/packages/flutter_tools/test/ios/mac_test.dart @@ -148,7 +148,7 @@ void main() { ProcessManager: () => mockProcessManager, }); - testUsingContext('xcodeMajorVersion is null when version has unexpected format', () { + testUsingContext('xcodeMinorVersion is null when version has unexpected format', () { when(mockProcessManager.runSync(['/usr/bin/xcodebuild', '-version'])) .thenReturn(new ProcessResult(1, 0, 'Xcode Ultra5000\nBuild version 8E3004b', '')); expect(xcode.xcodeMinorVersion, isNull); @@ -156,6 +156,38 @@ void main() { ProcessManager: () => mockProcessManager, }); + testUsingContext('xcodeVersionSatisfactory is false when version is less than minimum', () { + when(mockProcessManager.runSync(['/usr/bin/xcodebuild', '-version'])) + .thenReturn(new ProcessResult(1, 0, 'Xcode 7.0.1\nBuild version 7A1001', '')); + expect(xcode.xcodeVersionSatisfactory, isFalse); + }, overrides: { + ProcessManager: () => mockProcessManager, + }); + + testUsingContext('xcodeVersionSatisfactory is false when version in unknown format', () { + when(mockProcessManager.runSync(['/usr/bin/xcodebuild', '-version'])) + .thenReturn(new ProcessResult(1, 0, 'Xcode SuperHD\nBuild version 7A1001', '')); + expect(xcode.xcodeVersionSatisfactory, isFalse); + }, overrides: { + ProcessManager: () => mockProcessManager, + }); + + testUsingContext('xcodeVersionSatisfactory is true when version meets minimum', () { + when(mockProcessManager.runSync(['/usr/bin/xcodebuild', '-version'])) + .thenReturn(new ProcessResult(1, 0, 'Xcode 8.3.3\nBuild version 8E3004b', '')); + expect(xcode.xcodeVersionSatisfactory, isTrue); + }, overrides: { + ProcessManager: () => mockProcessManager, + }); + + testUsingContext('xcodeVersionSatisfactory is true when version exceeds minimum', () { + when(mockProcessManager.runSync(['/usr/bin/xcodebuild', '-version'])) + .thenReturn(new ProcessResult(1, 0, 'Xcode 9.0\nBuild version 9M137d', '')); + expect(xcode.xcodeVersionSatisfactory, isTrue); + }, overrides: { + ProcessManager: () => mockProcessManager, + }); + testUsingContext('eulaSigned is false when clang is not installed', () { when(mockProcessManager.runSync(['/usr/bin/xcrun', 'clang'])) .thenThrow(const ProcessException('/usr/bin/xcrun', const ['clang']));