mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-10-19 22:17:29 +02:00
44 lines
1.9 KiB
Dart
44 lines
1.9 KiB
Dart
import 'dart:async';
|
|
import 'dart:io';
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:dart_smb2/dart_smb2.dart';
|
|
import 'package:spotiflac_android/services/network_storage_error.dart';
|
|
|
|
void main() {
|
|
test('network diagnostics separate transport, login and share failures', () {
|
|
final cases = <Object, NetworkStorageError>{
|
|
const SocketException('private host'): NetworkStorageError.unreachable,
|
|
TimeoutException('private host'): NetworkStorageError.timeout,
|
|
const Smb2Exception('STATUS_LOGON_FAILURE'):
|
|
NetworkStorageError.authentication,
|
|
const Smb2Exception('private share', 13, Smb2ErrorType.accessDenied):
|
|
NetworkStorageError.permission,
|
|
const Smb2Exception('STATUS_BAD_NETWORK_NAME'):
|
|
NetworkStorageError.missingShare,
|
|
const Smb2Exception('Server does not support SMB2'):
|
|
NetworkStorageError.incompatible,
|
|
const Smb2Exception('private host', 0, Smb2ErrorType.connection):
|
|
NetworkStorageError.unreachable,
|
|
const Smb2Exception('private host', 60, Smb2ErrorType.timeout):
|
|
NetworkStorageError.timeout,
|
|
const FormatException('private URL'): NetworkStorageError.invalidAddress,
|
|
const HttpException('Server returned 401'):
|
|
NetworkStorageError.authentication,
|
|
const HttpException('Server returned 403'):
|
|
NetworkStorageError.permission,
|
|
StateError('unknown'): NetworkStorageError.unknown,
|
|
const Smb2Exception(
|
|
'Worker failed to start: Connect failed: socket connect failed',
|
|
): NetworkStorageError.unreachable,
|
|
const Smb2Exception('Worker failed to start: Timeout expired'):
|
|
NetworkStorageError.timeout,
|
|
const Smb2Exception('SMB2_STATUS_PASSWORD_EXPIRED'):
|
|
NetworkStorageError.authentication,
|
|
};
|
|
for (final entry in cases.entries) {
|
|
expect(classifyNetworkStorageError(entry.key), entry.value);
|
|
}
|
|
});
|
|
}
|