45 lines
1.4 KiB
Dart
45 lines
1.4 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
import 'package:pj_supermarket_cloud/common/index.dart';
|
|
|
|
void main() {
|
|
final ossBase = Constants.ossUrl.replaceFirst(RegExp(r'/+$'), '');
|
|
|
|
test('服务端图片完整地址保持不变', () {
|
|
const source = 'https://cdn.example.com/evidence/face.png';
|
|
|
|
expect(AppNetworkTool.serverImageUrl(source), source);
|
|
});
|
|
|
|
test('文件中心相对地址补齐网关前缀', () {
|
|
const source = '/admin/sys-file/oss/file?fileName=evidence.png';
|
|
|
|
expect(
|
|
AppNetworkTool.serverImageUrl(source),
|
|
'$ossBase/admin/sys-file/oss/file?fileName=evidence.png',
|
|
);
|
|
});
|
|
|
|
test('已经携带 API 部署前缀的相对地址不会重复拼接', () {
|
|
const source = '/api/admin/sys-file/oss/file?fileName=evidence.png';
|
|
|
|
expect(
|
|
AppNetworkTool.serverImageUrl(source),
|
|
'${Uri.parse(Constants.ossUrl).origin}$source',
|
|
);
|
|
});
|
|
|
|
test('纯 OSS 文件名通过标准图片接口访问并正确编码', () {
|
|
const source = 'receipt/voucher 1.png';
|
|
final resolved = Uri.parse(AppNetworkTool.serverImageUrl(source));
|
|
|
|
expect(resolved.origin, Uri.parse(Constants.ossUrl).origin);
|
|
expect(
|
|
resolved.path,
|
|
'${Uri.parse(Constants.ossUrl).path.replaceFirst(RegExp(r'/+$'), '')}'
|
|
'/admin/sys-file/oss/file',
|
|
);
|
|
expect(resolved.queryParameters['fileName'], source);
|
|
});
|
|
}
|