mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-09-16 14:55:27 +02:00
80 lines
2.3 KiB
Dart
80 lines
2.3 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:spotiflac_android/constants/music_services.dart';
|
|
import 'package:spotiflac_android/utils/provider_resource_ids.dart';
|
|
|
|
void main() {
|
|
group('legacyProviderIdFromResourceId', () {
|
|
test('maps known legacy prefixes to their provider id', () {
|
|
expect(
|
|
legacyProviderIdFromResourceId('deezer:123'),
|
|
MusicServices.deezer,
|
|
);
|
|
expect(legacyProviderIdFromResourceId('qobuz:123'), MusicServices.qobuz);
|
|
expect(legacyProviderIdFromResourceId('tidal:123'), MusicServices.tidal);
|
|
expect(
|
|
legacyProviderIdFromResourceId('spotify:123'),
|
|
MusicServices.spotify,
|
|
);
|
|
});
|
|
|
|
test('returns null for an id with no known prefix', () {
|
|
expect(legacyProviderIdFromResourceId('37i9dQZF1DXcBWIGoYBM5M'), isNull);
|
|
expect(legacyProviderIdFromResourceId(''), isNull);
|
|
});
|
|
});
|
|
|
|
group('stripPrefixedResourceId', () {
|
|
test('strips a leading provider prefix', () {
|
|
expect(stripPrefixedResourceId('deezer:123'), '123');
|
|
});
|
|
|
|
test('leaves an id without a prefix unchanged', () {
|
|
expect(
|
|
stripPrefixedResourceId('37i9dQZF1DXcBWIGoYBM5M'),
|
|
'37i9dQZF1DXcBWIGoYBM5M',
|
|
);
|
|
});
|
|
|
|
test('leaves a bare colon or trailing colon unchanged', () {
|
|
expect(stripPrefixedResourceId(':123'), ':123');
|
|
expect(stripPrefixedResourceId('deezer:'), 'deezer:');
|
|
});
|
|
});
|
|
|
|
group('resolvePreferredMetadataProviderId', () {
|
|
test('prefers a known provider id over guessing from the resource id', () {
|
|
expect(
|
|
resolvePreferredMetadataProviderId(
|
|
'sample-provider',
|
|
'37i9dQZF1DXcBWIGoYBM5M',
|
|
),
|
|
'sample-provider',
|
|
);
|
|
});
|
|
|
|
test('falls back to the legacy prefix guess when nothing is known', () {
|
|
expect(
|
|
resolvePreferredMetadataProviderId(null, 'deezer:123'),
|
|
MusicServices.deezer,
|
|
);
|
|
});
|
|
|
|
test('treats a blank known provider id as unknown', () {
|
|
expect(
|
|
resolvePreferredMetadataProviderId(' ', 'deezer:123'),
|
|
MusicServices.deezer,
|
|
);
|
|
});
|
|
|
|
test(
|
|
'returns null for an unprefixed id with no known provider (the #368 case)',
|
|
() {
|
|
expect(
|
|
resolvePreferredMetadataProviderId(null, '37i9dQZF1DXcBWIGoYBM5M'),
|
|
isNull,
|
|
);
|
|
},
|
|
);
|
|
});
|
|
}
|