| // 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 'dart:io' hide Platform; | |
| import 'package:mockito/mockito.dart'; | |
| import '../test.dart'; | |
| import 'common.dart'; | |
| class MockFile extends Mock implements File {} | |
| void main() { | |
| MockFile file; | |
| setUp(() { | |
| file = MockFile(); | |
| when(file.existsSync()).thenReturn(true); | |
| }); | |
| group('verifyVersion()', () { | |
| test('passes for valid version strings', () async { | |
| const List<String> valid_versions = <String>[ | |
| '1.2.3', | |
| '12.34.56', | |
| '1.2.3.pre.1', | |
| '1.2.3-4.5.pre', | |
| '1.2.3-5.0.pre.12', | |
| ]; | |
| for (final String version in valid_versions) { | |
| when(file.readAsString()).thenAnswer((Invocation invocation) => Future<String>.value(version)); | |
| expect( | |
| await verifyVersion(file), | |
| isNull, | |
| reason: '$version is valid but verifyVersionFile said it was bad', | |
| ); | |
| } | |
| }); | |
| test('fails for invalid version strings', () async { | |
| const List<String> invalid_versions = <String>[ | |
| '1.2.3.4', | |
| '1.2.3.', | |
| '1.2.pre.1', | |
| '1.2.3-pre.1', | |
| '1.2.3-pre.1+hotfix.1', | |
| ' 1.2.3', | |
| '1.2.3-hotfix.1', | |
| ]; | |
| for (final String version in invalid_versions) { | |
| when(file.readAsString()).thenAnswer((Invocation invocation) => Future<String>.value(version)); | |
| expect( | |
| await verifyVersion(file), | |
| 'The version logic generated an invalid version string: "$version".', | |
| reason: '$version is invalid but verifyVersionFile said it was fine', | |
| ); | |
| } | |
| }); | |
| }); | |
| } |