// 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:dev_tools/roll_dev.dart'; import './common.dart'; void main() { group('parseFullTag', () { test('returns match on valid version input', () { final List validTags = [ '1.2.3-1.2.pre-3-gabc123', '10.2.30-12.22.pre-45-gabc123', '1.18.0-0.0.pre-0-gf0adb240a', '2.0.0-1.99.pre-45-gf0adb240a', '12.34.56-78.90.pre-12-g9db2703a2', '0.0.1-0.0.pre-1-g07601eb95ff82f01e870566586340ed2e87b9cbb', '958.80.144-6.224.pre-7803-g06e90', ]; for (final String validTag in validTags) { final Match match = parseFullTag(validTag); expect(match, isNotNull, reason: 'Expected $validTag to be parsed'); } }); test('returns null on invalid version input', () { final List invalidTags = [ '1.2.3-dev.1.2-3-gabc123', '1.2.3-1.2-3-gabc123', 'v1.2.3', '2.0.0', 'v1.2.3-1.2.pre-3-gabc123', '10.0.1-0.0.pre-gf0adb240a', '10.0.1-0.0.pre-3-gggggggggg', '1.2.3-1.2.pre-3-abc123', '1.2.3-1.2.pre-3-gabc123_', ]; for (final String invalidTag in invalidTags) { final Match match = parseFullTag(invalidTag); expect(match, null, reason: 'Expected $invalidTag to not be parsed'); } }); }); group('getVersionFromParts', () { test('returns correct string from valid parts', () { List parts = [1, 2, 3, 4, 5]; expect(getVersionFromParts(parts), '1.2.3-4.5.pre'); parts = [11, 2, 33, 1, 0]; expect(getVersionFromParts(parts), '11.2.33-1.0.pre'); }); }); }