fix(tests): Fix integration tests
This commit is contained in:
parent
85995d51e4
commit
f355f01fc8
@ -5,7 +5,7 @@ import 'package:test/test.dart';
|
|||||||
|
|
||||||
Future<void> _runTest(String domain) async {
|
Future<void> _runTest(String domain) async {
|
||||||
var gotTLSException = false;
|
var gotTLSException = false;
|
||||||
final socket = TCPSocketWrapper(false);
|
final socket = TCPSocketWrapper();
|
||||||
final log = Logger('TestLogger');
|
final log = Logger('TestLogger');
|
||||||
socket.getEventStream().listen((event) {
|
socket.getEventStream().listen((event) {
|
||||||
if (event is XmppSocketTLSFailedEvent) {
|
if (event is XmppSocketTLSFailedEvent) {
|
||||||
@ -15,18 +15,17 @@ Future<void> _runTest(String domain) async {
|
|||||||
});
|
});
|
||||||
|
|
||||||
final connection = XmppConnection(
|
final connection = XmppConnection(
|
||||||
ExponentialBackoffReconnectionPolicy(),
|
TestingReconnectionPolicy(),
|
||||||
|
AlwaysConnectedConnectivityManager(),
|
||||||
socket,
|
socket,
|
||||||
);
|
)..registerFeatureNegotiators([
|
||||||
connection.registerFeatureNegotiators([
|
|
||||||
StartTlsNegotiator(),
|
StartTlsNegotiator(),
|
||||||
]);
|
]);
|
||||||
connection.registerManagers([
|
await connection.registerManagers([
|
||||||
DiscoManager(),
|
DiscoManager([]),
|
||||||
RosterManager(),
|
RosterManager(TestingRosterStateManager('', [])),
|
||||||
PingManager(),
|
|
||||||
MessageManager(),
|
MessageManager(),
|
||||||
PresenceManager('http://moxxmpp.example'),
|
PresenceManager(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
connection.setConnectionSettings(
|
connection.setConnectionSettings(
|
||||||
@ -34,18 +33,22 @@ Future<void> _runTest(String domain) async {
|
|||||||
jid: JID.fromString('testuser@$domain'),
|
jid: JID.fromString('testuser@$domain'),
|
||||||
password: 'abc123',
|
password: 'abc123',
|
||||||
useDirectTLS: true,
|
useDirectTLS: true,
|
||||||
allowPlainAuth: true,
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
final result = await connection.connectAwaitable();
|
final result = await connection.connect(
|
||||||
expect(result.success, false);
|
shouldReconnect: false,
|
||||||
|
waitUntilLogin: true,
|
||||||
|
enableReconnectOnSuccess: false,
|
||||||
|
);
|
||||||
|
expect(result.isType<XmppError>(), false);
|
||||||
expect(gotTLSException, true);
|
expect(gotTLSException, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
Logger.root.level = Level.ALL;
|
Logger.root.level = Level.ALL;
|
||||||
Logger.root.onRecord.listen((record) {
|
Logger.root.onRecord.listen((record) {
|
||||||
|
// ignore: avoid_print
|
||||||
print('${record.level.name}: ${record.time}: ${record.message}');
|
print('${record.level.name}: ${record.time}: ${record.message}');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -6,25 +6,27 @@ import 'package:test/test.dart';
|
|||||||
void main() {
|
void main() {
|
||||||
Logger.root.level = Level.ALL;
|
Logger.root.level = Level.ALL;
|
||||||
Logger.root.onRecord.listen((record) {
|
Logger.root.onRecord.listen((record) {
|
||||||
|
// ignore: avoid_print
|
||||||
print('${record.level.name}: ${record.time}: ${record.message}');
|
print('${record.level.name}: ${record.time}: ${record.message}');
|
||||||
});
|
});
|
||||||
final log = Logger('FailureReconnectionTest');
|
final log = Logger('FailureReconnectionTest');
|
||||||
|
|
||||||
test('Failing an awaited connection with TestingSleepReconnectionPolicy', () async {
|
test(
|
||||||
|
'Failing an awaited connection with TestingSleepReconnectionPolicy',
|
||||||
|
() async {
|
||||||
var errors = 0;
|
var errors = 0;
|
||||||
final connection = XmppConnection(
|
final connection = XmppConnection(
|
||||||
TestingSleepReconnectionPolicy(10),
|
TestingSleepReconnectionPolicy(10),
|
||||||
TCPSocketWrapper(false),
|
AlwaysConnectedConnectivityManager(),
|
||||||
);
|
TCPSocketWrapper(),
|
||||||
connection.registerFeatureNegotiators([
|
)..registerFeatureNegotiators([
|
||||||
StartTlsNegotiator(),
|
StartTlsNegotiator(),
|
||||||
]);
|
]);
|
||||||
connection.registerManagers([
|
await connection.registerManagers([
|
||||||
DiscoManager(),
|
DiscoManager([]),
|
||||||
RosterManager(),
|
RosterManager(TestingRosterStateManager('', [])),
|
||||||
PingManager(),
|
|
||||||
MessageManager(),
|
MessageManager(),
|
||||||
PresenceManager('http://moxxmpp.example'),
|
PresenceManager(),
|
||||||
]);
|
]);
|
||||||
connection.asBroadcastStream().listen((event) {
|
connection.asBroadcastStream().listen((event) {
|
||||||
if (event is ConnectionStateChangedEvent) {
|
if (event is ConnectionStateChangedEvent) {
|
||||||
@ -39,35 +41,41 @@ void main() {
|
|||||||
jid: JID.fromString('testuser@no-sasl.badxmpp.eu'),
|
jid: JID.fromString('testuser@no-sasl.badxmpp.eu'),
|
||||||
password: 'abc123',
|
password: 'abc123',
|
||||||
useDirectTLS: true,
|
useDirectTLS: true,
|
||||||
allowPlainAuth: true,
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
final result = await connection.connectAwaitable();
|
final result = await connection.connect(
|
||||||
|
shouldReconnect: false,
|
||||||
|
waitUntilLogin: true,
|
||||||
|
enableReconnectOnSuccess: false,
|
||||||
|
);
|
||||||
log.info('Connection failed as expected');
|
log.info('Connection failed as expected');
|
||||||
expect(result.success, false);
|
expect(result.isType<XmppError>(), false);
|
||||||
expect(errors, 1);
|
expect(errors, 1);
|
||||||
|
|
||||||
log.info('Waiting 20 seconds for unexpected reconnections');
|
log.info('Waiting 20 seconds for unexpected reconnections');
|
||||||
await Future.delayed(const Duration(seconds: 20));
|
await Future<void>.delayed(const Duration(seconds: 20));
|
||||||
expect(errors, 1);
|
expect(errors, 1);
|
||||||
}, timeout: Timeout.factor(2));
|
},
|
||||||
|
timeout: const Timeout.factor(2),
|
||||||
|
);
|
||||||
|
|
||||||
test('Failing an awaited connection with ExponentialBackoffReconnectionPolicy', () async {
|
test(
|
||||||
|
'Failing an awaited connection with ExponentialBackoffReconnectionPolicy',
|
||||||
|
() async {
|
||||||
var errors = 0;
|
var errors = 0;
|
||||||
final connection = XmppConnection(
|
final connection = XmppConnection(
|
||||||
ExponentialBackoffReconnectionPolicy(1),
|
TestingReconnectionPolicy(),
|
||||||
TCPSocketWrapper(false),
|
AlwaysConnectedConnectivityManager(),
|
||||||
);
|
TCPSocketWrapper(),
|
||||||
connection.registerFeatureNegotiators([
|
)..registerFeatureNegotiators([
|
||||||
StartTlsNegotiator(),
|
StartTlsNegotiator(),
|
||||||
]);
|
]);
|
||||||
connection.registerManagers([
|
await connection.registerManagers([
|
||||||
DiscoManager(),
|
DiscoManager([]),
|
||||||
RosterManager(),
|
RosterManager(TestingRosterStateManager('', [])),
|
||||||
PingManager(),
|
|
||||||
MessageManager(),
|
MessageManager(),
|
||||||
PresenceManager('http://moxxmpp.example'),
|
PresenceManager(),
|
||||||
]);
|
]);
|
||||||
connection.asBroadcastStream().listen((event) {
|
connection.asBroadcastStream().listen((event) {
|
||||||
if (event is ConnectionStateChangedEvent) {
|
if (event is ConnectionStateChangedEvent) {
|
||||||
@ -82,17 +90,22 @@ void main() {
|
|||||||
jid: JID.fromString('testuser@no-sasl.badxmpp.eu'),
|
jid: JID.fromString('testuser@no-sasl.badxmpp.eu'),
|
||||||
password: 'abc123',
|
password: 'abc123',
|
||||||
useDirectTLS: true,
|
useDirectTLS: true,
|
||||||
allowPlainAuth: true,
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
final result = await connection.connectAwaitable();
|
final result = await connection.connect(
|
||||||
|
shouldReconnect: false,
|
||||||
|
waitUntilLogin: true,
|
||||||
|
enableReconnectOnSuccess: false,
|
||||||
|
);
|
||||||
log.info('Connection failed as expected');
|
log.info('Connection failed as expected');
|
||||||
expect(result.success, false);
|
expect(result.isType<XmppError>(), false);
|
||||||
expect(errors, 1);
|
expect(errors, 1);
|
||||||
|
|
||||||
log.info('Waiting 20 seconds for unexpected reconnections');
|
log.info('Waiting 20 seconds for unexpected reconnections');
|
||||||
await Future.delayed(const Duration(seconds: 20));
|
await Future<void>.delayed(const Duration(seconds: 20));
|
||||||
expect(errors, 1);
|
expect(errors, 1);
|
||||||
}, timeout: Timeout.factor(2));
|
},
|
||||||
|
timeout: const Timeout.factor(2),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user