mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-01-22 16:56:19 +01:00
248 lines
5.7 KiB
Dart
248 lines
5.7 KiB
Dart
|
import 'package:np_api/np_api.dart';
|
||
|
import 'package:test/test.dart';
|
||
|
|
||
|
void main() {
|
||
|
group("NcAlbumParser", () {
|
||
|
test("no album", _noAlbum);
|
||
|
test("empty", _empty);
|
||
|
test("basic", _basic);
|
||
|
test("collaborative", _collaborative);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
Future<void> _noAlbum() async {
|
||
|
const xml = """
|
||
|
<?xml version="1.0"?>
|
||
|
<d:multistatus xmlns:d="DAV:"
|
||
|
xmlns:s="http://sabredav.org/ns"
|
||
|
xmlns:oc="http://owncloud.org/ns"
|
||
|
xmlns:nc="http://nextcloud.org/ns">
|
||
|
<d:response>
|
||
|
<d:href>/remote.php/dav/photos/admin/albums/</d:href>
|
||
|
<d:propstat>
|
||
|
<d:prop>
|
||
|
<nc:last-photo/>
|
||
|
<nc:nbItems/>
|
||
|
<nc:location/>
|
||
|
<nc:dateRange/>
|
||
|
<nc:collaborators/>
|
||
|
</d:prop>
|
||
|
<d:status>HTTP/1.1 404 Not Found</d:status>
|
||
|
</d:propstat>
|
||
|
</d:response>
|
||
|
</d:multistatus>
|
||
|
""";
|
||
|
final results = await NcAlbumParser().parse(xml);
|
||
|
expect(
|
||
|
results,
|
||
|
[
|
||
|
const NcAlbum(
|
||
|
href: "/remote.php/dav/photos/admin/albums/",
|
||
|
lastPhoto: null,
|
||
|
nbItems: null,
|
||
|
location: null,
|
||
|
dateRange: null,
|
||
|
collaborators: [],
|
||
|
),
|
||
|
],
|
||
|
);
|
||
|
}
|
||
|
|
||
|
Future<void> _empty() async {
|
||
|
const xml = """
|
||
|
<?xml version="1.0"?>
|
||
|
<d:multistatus xmlns:d="DAV:"
|
||
|
xmlns:s="http://sabredav.org/ns"
|
||
|
xmlns:oc="http://owncloud.org/ns"
|
||
|
xmlns:nc="http://nextcloud.org/ns">
|
||
|
<d:response>
|
||
|
<d:href>/remote.php/dav/photos/admin/albums/</d:href>
|
||
|
<d:propstat>
|
||
|
<d:prop>
|
||
|
<nc:last-photo/>
|
||
|
<nc:nbItems/>
|
||
|
<nc:location/>
|
||
|
<nc:dateRange/>
|
||
|
<nc:collaborators/>
|
||
|
</d:prop>
|
||
|
<d:status>HTTP/1.1 404 Not Found</d:status>
|
||
|
</d:propstat>
|
||
|
</d:response>
|
||
|
<d:response>
|
||
|
<d:href>/remote.php/dav/photos/admin/albums/test/</d:href>
|
||
|
<d:propstat>
|
||
|
<d:prop>
|
||
|
<nc:last-photo>-1</nc:last-photo>
|
||
|
<nc:nbItems>0</nc:nbItems>
|
||
|
<nc:location></nc:location>
|
||
|
<nc:dateRange>{"start":null,"end":null}</nc:dateRange>
|
||
|
<nc:collaborators/>
|
||
|
</d:prop>
|
||
|
<d:status>HTTP/1.1 200 OK</d:status>
|
||
|
</d:propstat>
|
||
|
</d:response>
|
||
|
</d:multistatus>
|
||
|
""";
|
||
|
final results = await NcAlbumParser().parse(xml);
|
||
|
expect(
|
||
|
results,
|
||
|
[
|
||
|
const NcAlbum(
|
||
|
href: "/remote.php/dav/photos/admin/albums/",
|
||
|
lastPhoto: null,
|
||
|
nbItems: null,
|
||
|
location: null,
|
||
|
dateRange: null,
|
||
|
collaborators: [],
|
||
|
),
|
||
|
const NcAlbum(
|
||
|
href: "/remote.php/dav/photos/admin/albums/test/",
|
||
|
lastPhoto: -1,
|
||
|
nbItems: 0,
|
||
|
location: null,
|
||
|
dateRange: <String, dynamic>{
|
||
|
"start": null,
|
||
|
"end": null,
|
||
|
},
|
||
|
collaborators: [],
|
||
|
),
|
||
|
],
|
||
|
);
|
||
|
}
|
||
|
|
||
|
Future<void> _basic() async {
|
||
|
const xml = """
|
||
|
<?xml version="1.0"?>
|
||
|
<d:multistatus xmlns:d="DAV:"
|
||
|
xmlns:s="http://sabredav.org/ns"
|
||
|
xmlns:oc="http://owncloud.org/ns"
|
||
|
xmlns:nc="http://nextcloud.org/ns">
|
||
|
<d:response>
|
||
|
<d:href>/remote.php/dav/photos/admin/albums/</d:href>
|
||
|
<d:propstat>
|
||
|
<d:prop>
|
||
|
<nc:last-photo/>
|
||
|
<nc:nbItems/>
|
||
|
<nc:location/>
|
||
|
<nc:dateRange/>
|
||
|
<nc:collaborators/>
|
||
|
</d:prop>
|
||
|
<d:status>HTTP/1.1 404 Not Found</d:status>
|
||
|
</d:propstat>
|
||
|
</d:response>
|
||
|
<d:response>
|
||
|
<d:href>/remote.php/dav/photos/admin/albums/test/</d:href>
|
||
|
<d:propstat>
|
||
|
<d:prop>
|
||
|
<nc:last-photo>1</nc:last-photo>
|
||
|
<nc:nbItems>1</nc:nbItems>
|
||
|
<nc:location></nc:location>
|
||
|
<nc:dateRange>{"start":1577934245,"end":1580702706}</nc:dateRange>
|
||
|
<nc:collaborators/>
|
||
|
</d:prop>
|
||
|
<d:status>HTTP/1.1 200 OK</d:status>
|
||
|
</d:propstat>
|
||
|
</d:response>
|
||
|
</d:multistatus>
|
||
|
""";
|
||
|
final results = await NcAlbumParser().parse(xml);
|
||
|
expect(
|
||
|
results,
|
||
|
[
|
||
|
const NcAlbum(
|
||
|
href: "/remote.php/dav/photos/admin/albums/",
|
||
|
lastPhoto: null,
|
||
|
nbItems: null,
|
||
|
location: null,
|
||
|
dateRange: null,
|
||
|
collaborators: [],
|
||
|
),
|
||
|
const NcAlbum(
|
||
|
href: "/remote.php/dav/photos/admin/albums/test/",
|
||
|
lastPhoto: 1,
|
||
|
nbItems: 1,
|
||
|
location: null,
|
||
|
dateRange: <String, dynamic>{
|
||
|
"start": 1577934245,
|
||
|
"end": 1580702706,
|
||
|
},
|
||
|
collaborators: [],
|
||
|
),
|
||
|
],
|
||
|
);
|
||
|
}
|
||
|
|
||
|
Future<void> _collaborative() async {
|
||
|
const xml = """
|
||
|
<?xml version="1.0"?>
|
||
|
<d:multistatus xmlns:d="DAV:"
|
||
|
xmlns:s="http://sabredav.org/ns"
|
||
|
xmlns:oc="http://owncloud.org/ns"
|
||
|
xmlns:nc="http://nextcloud.org/ns">
|
||
|
<d:response>
|
||
|
<d:href>/remote.php/dav/photos/admin/albums/</d:href>
|
||
|
<d:propstat>
|
||
|
<d:prop>
|
||
|
<nc:last-photo/>
|
||
|
<nc:nbItems/>
|
||
|
<nc:location/>
|
||
|
<nc:dateRange/>
|
||
|
<nc:collaborators/>
|
||
|
</d:prop>
|
||
|
<d:status>HTTP/1.1 404 Not Found</d:status>
|
||
|
</d:propstat>
|
||
|
</d:response>
|
||
|
<d:response>
|
||
|
<d:href>/remote.php/dav/photos/admin/albums/test/</d:href>
|
||
|
<d:propstat>
|
||
|
<d:prop>
|
||
|
<nc:last-photo>1</nc:last-photo>
|
||
|
<nc:nbItems>1</nc:nbItems>
|
||
|
<nc:location></nc:location>
|
||
|
<nc:dateRange>{"start":1577934245,"end":1580702706}</nc:dateRange>
|
||
|
<nc:collaborators>
|
||
|
<nc:collaborator>
|
||
|
<id>user2</id>
|
||
|
<label>User2</label>
|
||
|
<type>0</type>
|
||
|
</nc:collaborator>
|
||
|
</nc:collaborators>
|
||
|
</d:prop>
|
||
|
<d:status>HTTP/1.1 200 OK</d:status>
|
||
|
</d:propstat>
|
||
|
</d:response>
|
||
|
</d:multistatus>
|
||
|
""";
|
||
|
final results = await NcAlbumParser().parse(xml);
|
||
|
expect(
|
||
|
results,
|
||
|
[
|
||
|
const NcAlbum(
|
||
|
href: "/remote.php/dav/photos/admin/albums/",
|
||
|
lastPhoto: null,
|
||
|
nbItems: null,
|
||
|
location: null,
|
||
|
dateRange: null,
|
||
|
collaborators: [],
|
||
|
),
|
||
|
const NcAlbum(
|
||
|
href: "/remote.php/dav/photos/admin/albums/test/",
|
||
|
lastPhoto: 1,
|
||
|
nbItems: 1,
|
||
|
location: null,
|
||
|
dateRange: <String, dynamic>{
|
||
|
"start": 1577934245,
|
||
|
"end": 1580702706,
|
||
|
},
|
||
|
collaborators: [
|
||
|
NcAlbumCollaborator(
|
||
|
id: "user2",
|
||
|
label: "User2",
|
||
|
type: 0,
|
||
|
),
|
||
|
],
|
||
|
),
|
||
|
],
|
||
|
);
|
||
|
}
|