TF-1604: Add requiredCapabilities support TeamMailbox for GetEmailMethod
(cherry picked from commit 3922303e63a8e910511361019a54ea13801e3f92)
This commit is contained in:
@@ -21,6 +21,7 @@ import 'package:tmail_ui_user/features/thread/domain/usecases/get_emails_in_mail
|
||||
import '../../../../fixtures/account_fixtures.dart';
|
||||
import '../../../../fixtures/email_fixtures.dart';
|
||||
import '../../../../fixtures/mailbox_fixtures.dart';
|
||||
import '../../../../fixtures/session_fixtures.dart';
|
||||
import 'get_emails_in_mailbox_interactor_test.mocks.dart';
|
||||
|
||||
@GenerateMocks([ThreadRepository])
|
||||
@@ -37,6 +38,7 @@ void main() {
|
||||
|
||||
test('getEmailsInMailboxInteractor should execute to get all email from cache and network', () async {
|
||||
when(threadRepository.getAllEmail(
|
||||
SessionFixtures.aliceSession,
|
||||
AccountFixtures.aliceAccountId,
|
||||
limit: UnsignedInt(20),
|
||||
sort: {}..add(EmailComparator(EmailComparatorProperty.sentAt)..setIsAscending(false)),
|
||||
@@ -65,6 +67,7 @@ void main() {
|
||||
}));
|
||||
|
||||
final streamStates = getEmailsInMailboxInteractor.execute(
|
||||
SessionFixtures.aliceSession,
|
||||
AccountFixtures.aliceAccountId,
|
||||
limit: UnsignedInt(20),
|
||||
sort: {}..add(EmailComparator(EmailComparatorProperty.sentAt)..setIsAscending(false)),
|
||||
|
||||
+3
@@ -19,6 +19,7 @@ import 'package:tmail_ui_user/features/thread/domain/usecases/refresh_changes_em
|
||||
import '../../../../fixtures/account_fixtures.dart';
|
||||
import '../../../../fixtures/email_fixtures.dart';
|
||||
import '../../../../fixtures/mailbox_fixtures.dart';
|
||||
import '../../../../fixtures/session_fixtures.dart';
|
||||
import '../../../../fixtures/state_fixtures.dart';
|
||||
import 'refresh_changes_emails_in_mailbox_interactor_test.mocks.dart';
|
||||
|
||||
@@ -36,6 +37,7 @@ void main() {
|
||||
|
||||
test('refreshChangesEmailsInMailboxInteractor should execute to get changes email from cache and network', () async {
|
||||
when(threadRepository.refreshChanges(
|
||||
SessionFixtures.aliceSession,
|
||||
AccountFixtures.aliceAccountId,
|
||||
StateFixtures.currentEmailState,
|
||||
sort: <EmailComparator>{}..add(EmailComparator(EmailComparatorProperty.sentAt)..setIsAscending(false)),
|
||||
@@ -56,6 +58,7 @@ void main() {
|
||||
}));
|
||||
|
||||
final streamStates = refreshChangesEmailsInMailboxInteractor.execute(
|
||||
SessionFixtures.aliceSession,
|
||||
AccountFixtures.aliceAccountId,
|
||||
StateFixtures.currentEmailState,
|
||||
sort: <EmailComparator>{}..add(EmailComparator(EmailComparatorProperty.sentAt)..setIsAscending(false)),
|
||||
|
||||
Vendored
+102
@@ -0,0 +1,102 @@
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/account/account.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/core_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/default_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/mail_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/mdn_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/submission_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/vacation_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/websocket_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/sort/collation_identifier.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
|
||||
class SessionFixtures {
|
||||
static final aliceSession = Session(
|
||||
{
|
||||
CapabilityIdentifier.jmapSubmission: SubmissionCapability(UnsignedInt(0), {}),
|
||||
CapabilityIdentifier.jmapCore: CoreCapability(
|
||||
UnsignedInt(20971520),
|
||||
UnsignedInt(4),
|
||||
UnsignedInt(10000000),
|
||||
UnsignedInt(4),
|
||||
UnsignedInt(16),
|
||||
UnsignedInt(500),
|
||||
UnsignedInt(500),
|
||||
{CollationIdentifier("i;unicode-casemap")}
|
||||
),
|
||||
CapabilityIdentifier.jmapMail: MailCapability(
|
||||
UnsignedInt(10000000),
|
||||
null,
|
||||
UnsignedInt(200),
|
||||
UnsignedInt(20000000),
|
||||
{"receivedAt", "sentAt", "size", "from", "to", "subject"},
|
||||
true
|
||||
),
|
||||
CapabilityIdentifier.jmapWebSocket: WebSocketCapability(
|
||||
true,
|
||||
Uri.parse('ws://domain.com/jmap/ws')
|
||||
),
|
||||
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:quota')): DefaultCapability(<String, dynamic>{}),
|
||||
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:shares')): DefaultCapability(<String, dynamic>{}),
|
||||
CapabilityIdentifier.jmapVacationResponse: VacationCapability(),
|
||||
CapabilityIdentifier.jmapMdn: MdnCapability(),
|
||||
},
|
||||
{
|
||||
AccountId(Id('29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6')): Account(
|
||||
AccountName('bob@domain.tld'),
|
||||
true,
|
||||
false,
|
||||
{
|
||||
CapabilityIdentifier.jmapSubmission: SubmissionCapability(UnsignedInt(0), {}),
|
||||
CapabilityIdentifier.jmapWebSocket: WebSocketCapability(
|
||||
true,
|
||||
Uri.parse('ws://domain.com/jmap/ws')
|
||||
),
|
||||
CapabilityIdentifier.jmapCore: CoreCapability(
|
||||
UnsignedInt(20971520),
|
||||
UnsignedInt(4),
|
||||
UnsignedInt(10000000),
|
||||
UnsignedInt(4),
|
||||
UnsignedInt(16),
|
||||
UnsignedInt(500),
|
||||
UnsignedInt(500),
|
||||
{CollationIdentifier("i;unicode-casemap")}
|
||||
),
|
||||
CapabilityIdentifier.jmapMail: MailCapability(
|
||||
UnsignedInt(10000000),
|
||||
null,
|
||||
UnsignedInt(200),
|
||||
UnsignedInt(20000000),
|
||||
{"receivedAt", "sentAt", "size", "from", "to", "subject"},
|
||||
true
|
||||
),
|
||||
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:quota')): DefaultCapability(<String, dynamic>{}),
|
||||
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:shares')): DefaultCapability(<String, dynamic>{}),
|
||||
CapabilityIdentifier.jmapVacationResponse: VacationCapability(),
|
||||
CapabilityIdentifier.jmapMdn: MdnCapability()
|
||||
}
|
||||
)
|
||||
},
|
||||
{
|
||||
CapabilityIdentifier.jmapSubmission: AccountId(Id('29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6')),
|
||||
CapabilityIdentifier.jmapWebSocket: AccountId(Id('29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6')),
|
||||
CapabilityIdentifier.jmapCore: AccountId(Id('29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6')),
|
||||
CapabilityIdentifier.jmapMail: AccountId(Id('29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6')),
|
||||
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:quota')): AccountId(Id('29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6')),
|
||||
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:shares')): AccountId(Id('29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6')),
|
||||
CapabilityIdentifier.jmapVacationResponse: AccountId(Id('29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6')),
|
||||
CapabilityIdentifier.jmapMdn: AccountId(Id('29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6')),
|
||||
},
|
||||
UserName('bob@domain.tld'),
|
||||
Uri.parse('http://domain.com/jmap'),
|
||||
Uri.parse('http://domain.com/download/{accountId}/{blobId}/?type={type}&name={name}'),
|
||||
Uri.parse('http://domain.com/upload/{accountId}'),
|
||||
Uri.parse('http://domain.com/eventSource?types={types}&closeAfter={closeafter}&ping={ping}'),
|
||||
State('2c9f1b12-b35a-43e6-9af2-0106fb53a943')
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user