Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion packages/file_selector/file_selector_web/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
## NEXT
## 0.9.5

* Adds support for mimeType on XFile.
* Updates minimum supported SDK version to Flutter 3.35/Dart 3.9.

## 0.9.4+2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,16 @@ void main() {
});

group('getFiles', () {
final mockFile1 = File(<JSAny>['123456'.toJS].toJS, 'file1.txt');
final mockFile2 = File(<JSAny>[].toJS, 'file2.txt');
final mockFile1 = File(
<JSAny>['123456'.toJS].toJS,
'file1.txt',
FilePropertyBag(type: 'text/plain'),
);
final mockFile2 = File(
<JSAny>[].toJS,
'file2.txt',
FilePropertyBag(type: 'text/plain'),
);

testWidgets('works', (_) async {
final Future<List<XFile>> futureFiles = domHelper.getFiles(
Expand All @@ -61,11 +69,13 @@ void main() {
expect(files.length, 2);

expect(files[0].name, 'file1.txt');
expect(files[0].mimeType, 'text/plain');
expect(await files[0].length(), 6);
expect(await files[0].readAsString(), '123456');
expect(await files[0].lastModified(), isNotNull);

expect(files[1].name, 'file2.txt');
expect(files[1].mimeType, 'text/plain');
expect(await files[1].length(), 0);
expect(await files[1].readAsString(), '');
expect(await files[1].lastModified(), isNotNull);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@ void main() {

group('openFile', () {
testWidgets('works', (WidgetTester _) async {
final XFile mockFile = createXFile('1001', 'identity.png');
final XFile mockFile = createXFile(
'1001',
'identity.png',
mimeType: 'image/png',
);

final mockDomHelper = MockDomHelper(
files: <XFile>[mockFile],
Expand All @@ -39,6 +43,7 @@ void main() {

expect(file, isNotNull);
expect(file!.name, mockFile.name);
expect(file.mimeType, 'image/png');
expect(await file.length(), 4);
expect(await file.readAsString(), '1001');
expect(await file.lastModified(), isNotNull);
Expand Down Expand Up @@ -137,7 +142,16 @@ class MockDomHelper implements DomHelper {
}
}

XFile createXFile(String content, String name) {
XFile createXFile(
String content,
String name, {
String mimeType = 'text/plain',
}) {
final data = Uint8List.fromList(content.codeUnits);
return XFile.fromData(data, name: name, lastModified: DateTime.now());
return XFile.fromData(
data,
name: name,
lastModified: DateTime.now(),
mimeType: mimeType,
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ class DomHelper {
}

XFile _convertFileToXFile(File file) => XFile(
mimeType: file.type,
URL.createObjectURL(file),
name: file.name,
length: file.size,
Expand Down
2 changes: 1 addition & 1 deletion packages/file_selector/file_selector_web/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: file_selector_web
description: Web platform implementation of file_selector
repository: https://github.com/flutter/packages/tree/main/packages/file_selector/file_selector_web
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+file_selector%22
version: 0.9.4+2
version: 0.9.5

environment:
sdk: ^3.9.0
Expand Down