Support downloading font-subset for all platforms (#50240)

This commit is contained in:
Lau Ching Jun 2020-02-06 10:33:02 -08:00 committed by GitHub
parent 247f6a18d0
commit 81525fa1a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 4 deletions

View file

@ -1229,11 +1229,15 @@ class FontSubsetArtifacts extends EngineCachedArtifact {
'linux': <String>['linux-x64', 'linux-x64/$artifactName.zip'],
'windows': <String>['windows-x64', 'windows-x64/$artifactName.zip'],
};
final List<String> binaryDirs = artifacts[globals.platform.operatingSystem];
if (binaryDirs == null) {
throwToolExit('Unsupported operating system: ${globals.platform.operatingSystem}');
if (cache.includeAllPlatforms) {
return artifacts.values.toList();
} else {
final List<String> binaryDirs = artifacts[globals.platform.operatingSystem];
if (binaryDirs == null) {
throwToolExit('Unsupported operating system: ${globals.platform.operatingSystem}');
}
return <List<String>>[binaryDirs];
}
return <List<String>>[binaryDirs];
}
@override

View file

@ -499,6 +499,7 @@ void main() {
testUsingContext('FontSubset artifacts on linux', () {
final MockCache mockCache = MockCache();
final FontSubsetArtifacts artifacts = FontSubsetArtifacts(mockCache);
when(mockCache.includeAllPlatforms).thenReturn(false);
expect(artifacts.getBinaryDirs(), <List<String>>[<String>['linux-x64', 'linux-x64/font-subset.zip']]);
}, overrides: <Type, Generator> {
Platform: () => FakePlatform()..operatingSystem = 'linux',
@ -507,6 +508,7 @@ void main() {
testUsingContext('FontSubset artifacts on windows', () {
final MockCache mockCache = MockCache();
final FontSubsetArtifacts artifacts = FontSubsetArtifacts(mockCache);
when(mockCache.includeAllPlatforms).thenReturn(false);
expect(artifacts.getBinaryDirs(), <List<String>>[<String>['windows-x64', 'windows-x64/font-subset.zip']]);
}, overrides: <Type, Generator> {
Platform: () => FakePlatform()..operatingSystem = 'windows',
@ -515,6 +517,7 @@ void main() {
testUsingContext('FontSubset artifacts on macos', () {
final MockCache mockCache = MockCache();
final FontSubsetArtifacts artifacts = FontSubsetArtifacts(mockCache);
when(mockCache.includeAllPlatforms).thenReturn(false);
expect(artifacts.getBinaryDirs(), <List<String>>[<String>['darwin-x64', 'darwin-x64/font-subset.zip']]);
}, overrides: <Type, Generator> {
Platform: () => FakePlatform()..operatingSystem = 'macos',
@ -523,10 +526,24 @@ void main() {
testUsingContext('FontSubset artifacts on fuchsia', () {
final MockCache mockCache = MockCache();
final FontSubsetArtifacts artifacts = FontSubsetArtifacts(mockCache);
when(mockCache.includeAllPlatforms).thenReturn(false);
expect(() => artifacts.getBinaryDirs(), throwsToolExit(message: 'Unsupported operating system: ${globals.platform.operatingSystem}'));
}, overrides: <Type, Generator> {
Platform: () => FakePlatform()..operatingSystem = 'fuchsia',
});
testUsingContext('FontSubset artifacts for all platforms', () {
final MockCache mockCache = MockCache();
final FontSubsetArtifacts artifacts = FontSubsetArtifacts(mockCache);
when(mockCache.includeAllPlatforms).thenReturn(true);
expect(artifacts.getBinaryDirs(), <List<String>>[
<String>['darwin-x64', 'darwin-x64/font-subset.zip'],
<String>['linux-x64', 'linux-x64/font-subset.zip'],
<String>['windows-x64', 'windows-x64/font-subset.zip'],
]);
}, overrides: <Type, Generator> {
Platform: () => FakePlatform()..operatingSystem = 'fuchsia',
});
}
class FakeCachedArtifact extends EngineCachedArtifact {