Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: pkg/analysis_server/test/channel/web_socket_channel_test.dart

Issue 725143004: Format and sort analyzer and analysis_server packages. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.channel.web_socket; 5 library test.channel.web_socket;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/channel/web_socket_channel.dart'; 9 import 'package:analysis_server/src/channel/web_socket_channel.dart';
10 import 'package:analysis_server/src/protocol.dart'; 10 import 'package:analysis_server/src/protocol.dart';
11 import 'package:unittest/unittest.dart'; 11 import 'package:unittest/unittest.dart';
12 12
13 import '../mocks.dart'; 13 import '../mocks.dart';
14 14
15 main() { 15 main() {
16 group('WebSocketChannel', () { 16 group('WebSocketChannel', () {
17 setUp(WebSocketChannelTest.setUp); 17 setUp(WebSocketChannelTest.setUp);
18 test('close', WebSocketChannelTest.close); 18 test('close', WebSocketChannelTest.close);
19 test('invalidJsonToClient', WebSocketChannelTest.invalidJsonToClient); 19 test('invalidJsonToClient', WebSocketChannelTest.invalidJsonToClient);
20 test('invalidJsonToServer', WebSocketChannelTest.invalidJsonToServer); 20 test('invalidJsonToServer', WebSocketChannelTest.invalidJsonToServer);
21 test('notification', WebSocketChannelTest.notification); 21 test('notification', WebSocketChannelTest.notification);
22 test('notificationAndResponse', WebSocketChannelTest.notificationAndResponse ); 22 test(
23 'notificationAndResponse',
24 WebSocketChannelTest.notificationAndResponse);
23 test('request', WebSocketChannelTest.request); 25 test('request', WebSocketChannelTest.request);
24 test('requestResponse', WebSocketChannelTest.requestResponse); 26 test('requestResponse', WebSocketChannelTest.requestResponse);
25 test('response', WebSocketChannelTest.response); 27 test('response', WebSocketChannelTest.response);
26 }); 28 });
27 } 29 }
28 30
29 class WebSocketChannelTest { 31 class WebSocketChannelTest {
30 static MockSocket socket; 32 static MockSocket socket;
31 static WebSocketClientChannel client; 33 static WebSocketClientChannel client;
32 static WebSocketServerChannel server; 34 static WebSocketServerChannel server;
33 35
34 static List requestsReceived; 36 static List requestsReceived;
35 static List responsesReceived; 37 static List responsesReceived;
36 static List notificationsReceived; 38 static List notificationsReceived;
37 39
38 static Future close() { 40 static Future close() {
39 var timeout = new Duration(seconds: 1); 41 var timeout = new Duration(seconds: 1);
40 var future = client.responseStream.drain().timeout(timeout); 42 var future = client.responseStream.drain().timeout(timeout);
41 client.close(); 43 client.close();
42 return future; 44 return future;
43 } 45 }
44 46
45 static void expectMsgCount({requestCount: 0, 47 static void expectMsgCount({requestCount: 0, responseCount: 0,
46 responseCount: 0, 48 notificationCount: 0}) {
47 notificationCount: 0}) {
48 expect(requestsReceived, hasLength(requestCount)); 49 expect(requestsReceived, hasLength(requestCount));
49 expect(responsesReceived, hasLength(responseCount)); 50 expect(responsesReceived, hasLength(responseCount));
50 expect(notificationsReceived, hasLength(notificationCount)); 51 expect(notificationsReceived, hasLength(notificationCount));
51 } 52 }
52 53
53 static Future invalidJsonToClient() { 54 static Future invalidJsonToClient() {
54 var result = client.responseStream 55 var result = client.responseStream.first.timeout(
55 .first 56 new Duration(seconds: 1)).then((Response response) {
56 .timeout(new Duration(seconds: 1)) 57 expect(response.id, equals('myId'));
57 .then((Response response) { 58 expectMsgCount(responseCount: 1);
58 expect(response.id, equals('myId')); 59 });
59 expectMsgCount(responseCount: 1);
60 });
61 socket.twin.add('{"foo":"bar"}'); 60 socket.twin.add('{"foo":"bar"}');
62 server.sendResponse(new Response('myId')); 61 server.sendResponse(new Response('myId'));
63 return result; 62 return result;
64 } 63 }
65 64
66 static Future invalidJsonToServer() { 65 static Future invalidJsonToServer() {
67 var result = client.responseStream 66 var result = client.responseStream.first.timeout(
68 .first 67 new Duration(seconds: 1)).then((Response response) {
69 .timeout(new Duration(seconds: 1)) 68 expect(response.id, equals(''));
70 .then((Response response) { 69 expect(response.error, isNotNull);
71 expect(response.id, equals('')); 70 expectMsgCount(responseCount: 1);
72 expect(response.error, isNotNull); 71 });
73 expectMsgCount(responseCount: 1);
74 });
75 socket.add('"blat"'); 72 socket.add('"blat"');
76 return result; 73 return result;
77 } 74 }
78 75
79 static Future notification() { 76 static Future notification() {
80 var result = client.notificationStream 77 var result = client.notificationStream.first.timeout(
81 .first 78 new Duration(seconds: 1)).then((Notification notification) {
82 .timeout(new Duration(seconds: 1)) 79 expect(notification.event, equals('myEvent'));
83 .then((Notification notification) { 80 expectMsgCount(notificationCount: 1);
84 expect(notification.event, equals('myEvent')); 81 expect(notificationsReceived.first, equals(notification));
85 expectMsgCount(notificationCount: 1); 82 });
86 expect(notificationsReceived.first, equals(notification));
87 });
88 server.sendNotification(new Notification('myEvent')); 83 server.sendNotification(new Notification('myEvent'));
89 return result; 84 return result;
90 } 85 }
91 86
92 static Future notificationAndResponse() { 87 static Future notificationAndResponse() {
93 var result = Future 88 var result = Future.wait(
94 .wait([ 89 [
95 client.notificationStream.first, 90 client.notificationStream.first,
96 client.responseStream.first]) 91 client.responseStream.first]).timeout(
97 .timeout(new Duration(seconds: 1)) 92 new Duration(
98 .then((_) => expectMsgCount(responseCount: 1, notificationCount: 1)); 93 seconds: 1)).then(
94 (_) => expectMsgCount(responseCount: 1, notificationCoun t: 1));
99 server 95 server
100 ..sendNotification(new Notification('myEvent')) 96 ..sendNotification(new Notification('myEvent'))
101 ..sendResponse(new Response('myId')); 97 ..sendResponse(new Response('myId'));
102 return result; 98 return result;
103 } 99 }
104 100
105 static void request() { 101 static void request() {
106 client.sendRequest(new Request('myId', 'myMth')); 102 client.sendRequest(new Request('myId', 'myMth'));
107 server.listen((Request request) { 103 server.listen((Request request) {
108 expect(request.id, equals('myId')); 104 expect(request.id, equals('myId'));
109 expect(request.method, equals('myMth')); 105 expect(request.method, equals('myMth'));
110 expectMsgCount(requestCount: 1); 106 expectMsgCount(requestCount: 1);
111 }); 107 });
112 } 108 }
113 109
114 static Future requestResponse() { 110 static Future requestResponse() {
115 // Simulate server sending a response by echoing the request. 111 // Simulate server sending a response by echoing the request.
116 server.listen((Request request) => 112 server.listen(
117 server.sendResponse(new Response(request.id))); 113 (Request request) => server.sendResponse(new Response(request.id)));
118 return client.sendRequest(new Request('myId', 'myMth')) 114 return client.sendRequest(
119 .timeout(new Duration(seconds: 1)) 115 new Request(
120 .then((Response response) { 116 'myId',
121 expect(response.id, equals('myId')); 117 'myMth')).timeout(new Duration(seconds: 1)).then((Response response) {
122 expectMsgCount(requestCount: 1, responseCount: 1); 118 expect(response.id, equals('myId'));
119 expectMsgCount(requestCount: 1, responseCount: 1);
123 120
124 expect(requestsReceived.first is Request, isTrue); 121 expect(requestsReceived.first is Request, isTrue);
125 Request request = requestsReceived.first; 122 Request request = requestsReceived.first;
126 expect(request.id, equals('myId')); 123 expect(request.id, equals('myId'));
127 expect(request.method, equals('myMth')); 124 expect(request.method, equals('myMth'));
128 expect(responsesReceived.first, equals(response)); 125 expect(responsesReceived.first, equals(response));
129 }); 126 });
130 } 127 }
131 128
132 static Future response() { 129 static Future response() {
133 server.sendResponse(new Response('myId')); 130 server.sendResponse(new Response('myId'));
134 return client.responseStream 131 return client.responseStream.first.timeout(
135 .first 132 new Duration(seconds: 1)).then((Response response) {
136 .timeout(new Duration(seconds: 1)) 133 expect(response.id, equals('myId'));
137 .then((Response response) { 134 expectMsgCount(responseCount: 1);
138 expect(response.id, equals('myId')); 135 });
139 expectMsgCount(responseCount: 1);
140 });
141 } 136 }
142 137
143 static void setUp() { 138 static void setUp() {
144 socket = new MockSocket.pair(); 139 socket = new MockSocket.pair();
145 client = new WebSocketClientChannel(socket); 140 client = new WebSocketClientChannel(socket);
146 server = new WebSocketServerChannel(socket.twin); 141 server = new WebSocketServerChannel(socket.twin);
147 142
148 requestsReceived = []; 143 requestsReceived = [];
149 responsesReceived = []; 144 responsesReceived = [];
150 notificationsReceived = []; 145 notificationsReceived = [];
151 146
152 // Allow multiple listeners on server side for testing. 147 // Allow multiple listeners on server side for testing.
153 socket.twin.allowMultipleListeners(); 148 socket.twin.allowMultipleListeners();
154 149
155 server.listen(requestsReceived.add); 150 server.listen(requestsReceived.add);
156 client.responseStream.listen(responsesReceived.add); 151 client.responseStream.listen(responsesReceived.add);
157 client.notificationStream.listen(notificationsReceived.add); 152 client.notificationStream.listen(notificationsReceived.add);
158 } 153 }
159 } 154 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/channel/test_all.dart ('k') | pkg/analysis_server/test/context_manager_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698