Chromium Code Reviews| Index: pkg/mdns/test/lookup_resolver_test.dart |
| diff --git a/pkg/mdns/test/lookup_resolver_test.dart b/pkg/mdns/test/lookup_resolver_test.dart |
| index 7eb98f06452d4b55883c9224b4d06e3001c882a1..56ce4b3eb023024e708cda8c30eebc3e7b9fcb85 100644 |
| --- a/pkg/mdns/test/lookup_resolver_test.dart |
| +++ b/pkg/mdns/test/lookup_resolver_test.dart |
| @@ -5,8 +5,9 @@ |
| import 'dart:io'; |
| import 'package:expect/expect.dart'; |
| -import 'package:mdns/src/packet.dart'; |
| +import 'package:mdns/src/constants.dart' show RRType; |
| import 'package:mdns/src/lookup_resolver.dart'; |
| +import 'package:mdns/src/packet.dart'; |
| main() async { |
| await testTimeout(); |
| @@ -15,55 +16,63 @@ main() async { |
| await testResult3(); |
| } |
| +ResourceRecord ip4Result(String name, InternetAddress address) { |
| + int validUntil = new DateTime.now().millisecondsSinceEpoch + 2000; |
| + return new ResourceRecord(RRType.A, name, address, validUntil); |
| +} |
| + |
| testTimeout() async { |
| var shortTimeout = new Duration(milliseconds: 1); |
| var resolver = new LookupResolver(); |
| - var result = await resolver.addPendingRequest('xxx', shortTimeout); |
| - Expect.isNull(result); |
| + var result = await resolver.addPendingRequest(RRType.A, 'xxx', shortTimeout); |
| + Expect.isTrue(await result.isEmpty); |
|
Søren Gjesse
2015/11/06 12:28:33
Remove await here?
|
| } |
| // One pending request and one response. |
| testResult() async { |
| var noTimeout = new Duration(days: 1); |
| var resolver = new LookupResolver(); |
| - var futureResult = resolver.addPendingRequest('xxx', noTimeout); |
| - var response = new DecodeResult('xxx', new InternetAddress('1.2.3.4')); |
| + var futureResult = resolver.addPendingRequest(RRType.A, 'xxx', noTimeout); |
| + var response = ip4Result('xxx', new InternetAddress('1.2.3.4')); |
| resolver.handleResponse([response]); |
| - var result = await futureResult; |
| - Expect.equals('1.2.3.4', result.address); |
| + var result = await futureResult.first; |
| + Expect.equals('1.2.3.4', result.address.address); |
| + resolver.clearPendingRequests(); |
| } |
| testResult2() async { |
| var noTimeout = new Duration(days: 1); |
| var resolver = new LookupResolver(); |
| - var futureResult1 = resolver.addPendingRequest('xxx', noTimeout); |
| - var futureResult2 = resolver.addPendingRequest('yyy', noTimeout); |
| - var response1 = new DecodeResult('xxx', new InternetAddress('1.2.3.4')); |
| - var response2 = new DecodeResult('yyy', new InternetAddress('2.3.4.5')); |
| + var futureResult1 = resolver.addPendingRequest(RRType.A, 'xxx', noTimeout); |
| + var futureResult2 = resolver.addPendingRequest(RRType.A, 'yyy', noTimeout); |
| + var response1 = ip4Result('xxx', new InternetAddress('1.2.3.4')); |
| + var response2 = ip4Result('yyy', new InternetAddress('2.3.4.5')); |
| resolver.handleResponse([response2, response1]); |
| - var result1 = await futureResult1; |
| - var result2 = await futureResult2; |
| - Expect.equals('1.2.3.4', result1.address); |
| - Expect.equals('2.3.4.5', result2.address); |
| + var result1 = await futureResult1.first; |
| + var result2 = await futureResult2.first; |
| + Expect.equals('1.2.3.4', result1.address.address); |
| + Expect.equals('2.3.4.5', result2.address.address); |
| + resolver.clearPendingRequests(); |
| } |
| testResult3() async { |
| var noTimeout = new Duration(days: 1); |
| var resolver = new LookupResolver(); |
| - var response0 = new DecodeResult('zzz', new InternetAddress('2.3.4.5')); |
| + var response0 = ip4Result('zzz', new InternetAddress('2.3.4.5')); |
| resolver.handleResponse([response0]); |
| - var futureResult1 = resolver.addPendingRequest('xxx', noTimeout); |
| + var futureResult1 = resolver.addPendingRequest(RRType.A, 'xxx', noTimeout); |
| resolver.handleResponse([response0]); |
| - var futureResult2 = resolver.addPendingRequest('yyy', noTimeout); |
| + var futureResult2 = resolver.addPendingRequest(RRType.A, 'yyy', noTimeout); |
| resolver.handleResponse([response0]); |
| - var response1 = new DecodeResult('xxx', new InternetAddress('1.2.3.4')); |
| + var response1 = ip4Result('xxx', new InternetAddress('1.2.3.4')); |
| resolver.handleResponse([response0]); |
| - var response2 = new DecodeResult('yyy', new InternetAddress('2.3.4.5')); |
| + var response2 = ip4Result('yyy', new InternetAddress('2.3.4.5')); |
| resolver.handleResponse([response0]); |
| resolver.handleResponse([response2, response1]); |
| resolver.handleResponse([response0]); |
| - var result1 = await futureResult1; |
| - var result2 = await futureResult2; |
| - Expect.equals('1.2.3.4', result1.address); |
| - Expect.equals('2.3.4.5', result2.address); |
| + var result1 = await futureResult1.first; |
| + var result2 = await futureResult2.first; |
| + Expect.equals('1.2.3.4', result1.address.address); |
| + Expect.equals('2.3.4.5', result2.address.address); |
| + resolver.clearPendingRequests(); |
| } |