@@ -33,6 +33,7 @@ void main() {
33
33
'downloaded and exits with code 1' , () async {
34
34
final FakeFlutterVersion flutterVersion = FakeFlutterVersion (
35
35
frameworkVersion: '1.0.0' ,
36
+ channel: 'beta' ,
36
37
);
37
38
final MemoryFileSystem fileSystem = MemoryFileSystem .test ();
38
39
final Artifacts artifacts = Artifacts .test ();
@@ -60,7 +61,7 @@ void main() {
60
61
61
62
expect (await flutterValidator.validate (), _matchDoctorValidation (
62
63
validationType: ValidationType .partial,
63
- statusInfo: 'Channel unknown , 1.0.0, on Linux, locale en_US.UTF-8' ,
64
+ statusInfo: 'Channel beta , 1.0.0, on Linux, locale en_US.UTF-8' ,
64
65
messages: containsAll (const < ValidationMessage > [
65
66
ValidationMessage .error (
66
67
'Downloaded executables cannot execute on host.\n '
@@ -76,6 +77,7 @@ void main() {
76
77
testWithoutContext ('FlutterValidator does not run gen_snapshot binary check if it is not already downloaded' , () async {
77
78
final FakeFlutterVersion flutterVersion = FakeFlutterVersion (
78
79
frameworkVersion: '1.0.0' ,
80
+ channel: 'beta' ,
79
81
);
80
82
final FlutterValidator flutterValidator = FlutterValidator (
81
83
platform: FakePlatform (
@@ -97,7 +99,7 @@ void main() {
97
99
// fail if the gen_snapshot binary is not present.
98
100
expect (await flutterValidator.validate (), _matchDoctorValidation (
99
101
validationType: ValidationType .installed,
100
- statusInfo: 'Channel unknown , 1.0.0, on Windows, locale en_US.UTF-8' ,
102
+ statusInfo: 'Channel beta , 1.0.0, on Windows, locale en_US.UTF-8' ,
101
103
messages: anything,
102
104
));
103
105
});
@@ -117,9 +119,9 @@ void main() {
117
119
118
120
expect (await flutterValidator.validate (), _matchDoctorValidation (
119
121
validationType: ValidationType .partial,
120
- statusInfo: 'Channel unknown , 0.0.0, on Windows, locale en_US.UTF-8' ,
122
+ statusInfo: 'Channel beta , 0.0.0, on Windows, locale en_US.UTF-8' ,
121
123
messages: containsAll (const < ValidationMessage > [
122
- ValidationMessage ('Flutter version 0.0.0 at sdk/flutter' ),
124
+ ValidationMessage ('Flutter version 0.0.0 on channel beta at sdk/flutter' ),
123
125
ValidationMessage .error ('version error' ),
124
126
]),
125
127
));
@@ -128,6 +130,7 @@ void main() {
128
130
testWithoutContext ('FlutterValidator shows mirrors on pub and flutter cloud storage' , () async {
129
131
final FakeFlutterVersion flutterVersion = FakeFlutterVersion (
130
132
frameworkVersion: '1.0.0' ,
133
+ channel: 'beta' ,
131
134
);
132
135
final Platform platform = FakePlatform (
133
136
operatingSystem: 'windows' ,
@@ -153,23 +156,26 @@ void main() {
153
156
154
157
expect (await flutterValidator.validate (), _matchDoctorValidation (
155
158
validationType: ValidationType .installed,
156
- statusInfo: 'Channel unknown , 1.0.0, on Windows, locale en_US.UTF-8' ,
159
+ statusInfo: 'Channel beta , 1.0.0, on Windows, locale en_US.UTF-8' ,
157
160
messages: containsAll (const < ValidationMessage > [
158
161
ValidationMessage ('Pub download mirror https://example.com/pub' ),
159
162
ValidationMessage ('Flutter download mirror https://example.com/flutter' ),
160
163
])
161
164
));
162
165
});
163
166
164
- testWithoutContext ('FlutterValidator shows FLUTTER_GIT_URL environment variable when set' , () async {
167
+ testWithoutContext ('FlutterValidator shows FLUTTER_GIT_URL when set and fails if upstream is not the same ' , () async {
165
168
final FlutterValidator flutterValidator = FlutterValidator (
166
169
platform: FakePlatform (
167
170
localeName: 'en_US.UTF-8' ,
168
171
environment: < String , String > {
169
172
'FLUTTER_GIT_URL' : 'https://githubmirror.com/flutter.git' ,
170
173
},
171
174
),
172
- flutterVersion: () => FakeFlutterVersion (frameworkVersion: '1.0.0' ),
175
+ flutterVersion: () => FakeFlutterVersion (
176
+ frameworkVersion: '1.0.0' ,
177
+ channel: 'beta'
178
+ ),
173
179
devToolsVersion: () => '2.8.0' ,
174
180
userMessages: UserMessages (),
175
181
artifacts: Artifacts .test (),
@@ -180,17 +186,69 @@ void main() {
180
186
);
181
187
182
188
expect (await flutterValidator.validate (), _matchDoctorValidation (
183
- validationType: ValidationType .installed,
189
+ validationType: ValidationType .partial,
190
+ statusInfo: 'Channel beta, 1.0.0, on Linux, locale en_US.UTF-8' ,
191
+ messages: containsAll (const < ValidationMessage > [
192
+ ValidationMessage .hint ('Upstream repository https://github.com/flutter/flutter.git is not the same as FLUTTER_GIT_URL' ),
193
+ ValidationMessage ('FLUTTER_GIT_URL = https://githubmirror.com/flutter.git' ),
194
+ ]),
195
+ ));
196
+ });
197
+
198
+ testWithoutContext ('FlutterValidator fails when channel is unknown' , () async {
199
+ final FlutterValidator flutterValidator = FlutterValidator (
200
+ platform: FakePlatform (localeName: 'en_US.UTF-8' ),
201
+ flutterVersion: () => FakeFlutterVersion (
202
+ frameworkVersion: '1.0.0' ,
203
+ // channel is unknown by default
204
+ ),
205
+ devToolsVersion: () => '2.8.0' ,
206
+ userMessages: UserMessages (),
207
+ artifacts: Artifacts .test (),
208
+ fileSystem: MemoryFileSystem .test (),
209
+ processManager: FakeProcessManager .any (),
210
+ operatingSystemUtils: FakeOperatingSystemUtils (name: 'Linux' ),
211
+ flutterRoot: () => 'sdk/flutter' ,
212
+ );
213
+
214
+ expect (await flutterValidator.validate (), _matchDoctorValidation (
215
+ validationType: ValidationType .partial,
184
216
statusInfo: 'Channel unknown, 1.0.0, on Linux, locale en_US.UTF-8' ,
185
- messages: contains (const ValidationMessage ('FLUTTER_GIT_URL = https://githubmirror.com/flutter.git' )),
217
+ messages: contains (const ValidationMessage .hint ('Flutter version 1.0.0 on channel unknown at sdk/flutter' )),
218
+ ));
219
+ });
220
+
221
+ testWithoutContext ('FlutterValidator fails when framework version is unknown' , () async {
222
+ final FlutterValidator flutterValidator = FlutterValidator (
223
+ platform: FakePlatform (localeName: 'en_US.UTF-8' ),
224
+ flutterVersion: () => FakeFlutterVersion (
225
+ frameworkVersion: '0.0.0-unknown' ,
226
+ channel: 'beta' ,
227
+ ),
228
+ devToolsVersion: () => '2.8.0' ,
229
+ userMessages: UserMessages (),
230
+ artifacts: Artifacts .test (),
231
+ fileSystem: MemoryFileSystem .test (),
232
+ processManager: FakeProcessManager .any (),
233
+ operatingSystemUtils: FakeOperatingSystemUtils (name: 'Linux' ),
234
+ flutterRoot: () => 'sdk/flutter' ,
235
+ );
236
+
237
+ expect (await flutterValidator.validate (), _matchDoctorValidation (
238
+ validationType: ValidationType .partial,
239
+ statusInfo: 'Channel beta, 0.0.0-unknown, on Linux, locale en_US.UTF-8' ,
240
+ messages: contains (const ValidationMessage .hint ('Flutter version 0.0.0-unknown on channel beta at sdk/flutter' )),
186
241
));
187
242
});
188
243
189
244
group ('FlutterValidator shows flutter upstream remote' , () {
190
- testWithoutContext ('default url' , () async {
245
+ testWithoutContext ('standard url' , () async {
191
246
final FlutterValidator flutterValidator = FlutterValidator (
192
247
platform: FakePlatform (localeName: 'en_US.UTF-8' ),
193
- flutterVersion: () => FakeFlutterVersion (frameworkVersion: '1.0.0' ),
248
+ flutterVersion: () => FakeFlutterVersion (
249
+ frameworkVersion: '1.0.0' ,
250
+ channel: 'beta'
251
+ ),
194
252
devToolsVersion: () => '2.8.0' ,
195
253
userMessages: UserMessages (),
196
254
artifacts: Artifacts .test (),
@@ -202,16 +260,41 @@ void main() {
202
260
203
261
expect (await flutterValidator.validate (), _matchDoctorValidation (
204
262
validationType: ValidationType .installed,
205
- statusInfo: 'Channel unknown , 1.0.0, on Linux, locale en_US.UTF-8' ,
263
+ statusInfo: 'Channel beta , 1.0.0, on Linux, locale en_US.UTF-8' ,
206
264
messages: contains (const ValidationMessage ('Upstream repository https://github.com/flutter/flutter.git' )),
207
265
));
208
266
});
209
267
210
- testWithoutContext ('unknown url if upstream is null ' , () async {
268
+ testWithoutContext ('non-standard url' , () async {
211
269
final FlutterValidator flutterValidator = FlutterValidator (
212
270
platform: FakePlatform (localeName: 'en_US.UTF-8' ),
213
271
flutterVersion: () => FakeFlutterVersion (
214
272
frameworkVersion: '1.0.0' ,
273
+ channel: 'beta' ,
274
+ repositoryUrl: 'https://githubmirror.com/flutter.git'
275
+ ),
276
+ devToolsVersion: () => '2.8.0' ,
277
+ userMessages: UserMessages (),
278
+ artifacts: Artifacts .test (),
279
+ fileSystem: MemoryFileSystem .test (),
280
+ processManager: FakeProcessManager .any (),
281
+ operatingSystemUtils: FakeOperatingSystemUtils (name: 'Linux' ),
282
+ flutterRoot: () => 'sdk/flutter' ,
283
+ );
284
+
285
+ expect (await flutterValidator.validate (), _matchDoctorValidation (
286
+ validationType: ValidationType .partial,
287
+ statusInfo: 'Channel beta, 1.0.0, on Linux, locale en_US.UTF-8' ,
288
+ messages: contains (const ValidationMessage .hint ('Upstream repository https://githubmirror.com/flutter.git is not a standard remote' )),
289
+ ));
290
+ });
291
+
292
+ testWithoutContext ('as unknown if upstream is null' , () async {
293
+ final FlutterValidator flutterValidator = FlutterValidator (
294
+ platform: FakePlatform (localeName: 'en_US.UTF-8' ),
295
+ flutterVersion: () => FakeFlutterVersion (
296
+ frameworkVersion: '1.0.0' ,
297
+ channel: 'beta' ,
215
298
repositoryUrl: null ,
216
299
),
217
300
devToolsVersion: () => '2.8.0' ,
@@ -224,9 +307,9 @@ void main() {
224
307
);
225
308
226
309
expect (await flutterValidator.validate (), _matchDoctorValidation (
227
- validationType: ValidationType .installed ,
228
- statusInfo: 'Channel unknown , 1.0.0, on Linux, locale en_US.UTF-8' ,
229
- messages: contains (const ValidationMessage ('Upstream repository unknown' )),
310
+ validationType: ValidationType .partial ,
311
+ statusInfo: 'Channel beta , 1.0.0, on Linux, locale en_US.UTF-8' ,
312
+ messages: contains (const ValidationMessage . hint ('Upstream repository unknown' )),
230
313
));
231
314
});
232
315
});
@@ -240,6 +323,9 @@ class FakeOperatingSystemUtils extends Fake implements OperatingSystemUtils {
240
323
}
241
324
242
325
class FakeThrowingFlutterVersion extends FakeFlutterVersion {
326
+ @override
327
+ String get channel => 'beta' ;
328
+
243
329
@override
244
330
String get frameworkCommitDate {
245
331
throw VersionCheckError ('version error' );
0 commit comments