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

Side by Side Diff: sdk/lib/_internal/pub/test/pub_uploader_test.dart

Issue 23596007: Remove usage of dart:json. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebase. Created 7 years, 3 months 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 pub_uploader_test; 5 library pub_uploader_test;
6 6
7 import 'dart:convert';
7 import 'dart:io'; 8 import 'dart:io';
8 import 'dart:json' as json;
9 9
10 import 'package:scheduled_test/scheduled_process.dart'; 10 import 'package:scheduled_test/scheduled_process.dart';
11 import 'package:scheduled_test/scheduled_server.dart'; 11 import 'package:scheduled_test/scheduled_server.dart';
12 import 'package:scheduled_test/scheduled_test.dart'; 12 import 'package:scheduled_test/scheduled_test.dart';
13 13
14 import '../lib/src/io.dart'; 14 import '../lib/src/io.dart';
15 import '../lib/src/utils.dart'; 15 import '../lib/src/utils.dart';
16 import 'descriptor.dart' as d; 16 import 'descriptor.dart' as d;
17 import 'test_pub.dart'; 17 import 'test_pub.dart';
18 18
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 var server = new ScheduledServer(); 58 var server = new ScheduledServer();
59 d.credentialsFile(server, 'access token').create(); 59 d.credentialsFile(server, 'access token').create();
60 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); 60 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']);
61 61
62 server.handle('POST', '/api/packages/pkg/uploaders', (request) { 62 server.handle('POST', '/api/packages/pkg/uploaders', (request) {
63 expect(new ByteStream(request).toBytes().then((bodyBytes) { 63 expect(new ByteStream(request).toBytes().then((bodyBytes) {
64 expect(new String.fromCharCodes(bodyBytes), equals('email=email')); 64 expect(new String.fromCharCodes(bodyBytes), equals('email=email'));
65 65
66 request.response.headers.contentType = 66 request.response.headers.contentType =
67 new ContentType("application", "json"); 67 new ContentType("application", "json");
68 request.response.write(json.stringify({ 68 request.response.write(JSON.encode({
69 'success': {'message': 'Good job!'} 69 'success': {'message': 'Good job!'}
70 })); 70 }));
71 request.response.close(); 71 request.response.close();
72 }), completes); 72 }), completes);
73 }); 73 });
74 74
75 expect(pub.nextLine(), completion(equals('Good job!'))); 75 expect(pub.nextLine(), completion(equals('Good job!')));
76 pub.shouldExit(0); 76 pub.shouldExit(0);
77 }); 77 });
78 78
79 integration('removes an uploader', () { 79 integration('removes an uploader', () {
80 var server = new ScheduledServer(); 80 var server = new ScheduledServer();
81 d.credentialsFile(server, 'access token').create(); 81 d.credentialsFile(server, 'access token').create();
82 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); 82 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']);
83 83
84 server.handle('DELETE', '/api/packages/pkg/uploaders/email', (request) { 84 server.handle('DELETE', '/api/packages/pkg/uploaders/email', (request) {
85 request.response.headers.contentType = 85 request.response.headers.contentType =
86 new ContentType("application", "json"); 86 new ContentType("application", "json");
87 request.response.write(json.stringify({ 87 request.response.write(JSON.encode({
88 'success': {'message': 'Good job!'} 88 'success': {'message': 'Good job!'}
89 })); 89 }));
90 request.response.close(); 90 request.response.close();
91 }); 91 });
92 92
93 expect(pub.nextLine(), completion(equals('Good job!'))); 93 expect(pub.nextLine(), completion(equals('Good job!')));
94 pub.shouldExit(0); 94 pub.shouldExit(0);
95 }); 95 });
96 96
97 integration('defaults to the current package', () { 97 integration('defaults to the current package', () {
98 d.validPackage.create(); 98 d.validPackage.create();
99 99
100 var server = new ScheduledServer(); 100 var server = new ScheduledServer();
101 d.credentialsFile(server, 'access token').create(); 101 d.credentialsFile(server, 'access token').create();
102 var pub = startPubUploader(server, ['add', 'email']); 102 var pub = startPubUploader(server, ['add', 'email']);
103 103
104 server.handle('POST', '/api/packages/test_pkg/uploaders', (request) { 104 server.handle('POST', '/api/packages/test_pkg/uploaders', (request) {
105 request.response.headers.contentType = 105 request.response.headers.contentType =
106 new ContentType("application", "json"); 106 new ContentType("application", "json");
107 request.response.write(json.stringify({ 107 request.response.write(JSON.encode({
108 'success': {'message': 'Good job!'} 108 'success': {'message': 'Good job!'}
109 })); 109 }));
110 request.response.close(); 110 request.response.close();
111 }); 111 });
112 112
113 expect(pub.nextLine(), completion(equals('Good job!'))); 113 expect(pub.nextLine(), completion(equals('Good job!')));
114 pub.shouldExit(0); 114 pub.shouldExit(0);
115 }); 115 });
116 116
117 integration('add provides an error', () { 117 integration('add provides an error', () {
118 var server = new ScheduledServer(); 118 var server = new ScheduledServer();
119 d.credentialsFile(server, 'access token').create(); 119 d.credentialsFile(server, 'access token').create();
120 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); 120 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']);
121 121
122 server.handle('POST', '/api/packages/pkg/uploaders', (request) { 122 server.handle('POST', '/api/packages/pkg/uploaders', (request) {
123 request.response.statusCode = 400; 123 request.response.statusCode = 400;
124 request.response.headers.contentType = 124 request.response.headers.contentType =
125 new ContentType("application", "json"); 125 new ContentType("application", "json");
126 request.response.write(json.stringify({ 126 request.response.write(JSON.encode({
127 'error': {'message': 'Bad job!'} 127 'error': {'message': 'Bad job!'}
128 })); 128 }));
129 request.response.close(); 129 request.response.close();
130 }); 130 });
131 131
132 expect(pub.nextErrLine(), completion(equals('Bad job!'))); 132 expect(pub.nextErrLine(), completion(equals('Bad job!')));
133 pub.shouldExit(1); 133 pub.shouldExit(1);
134 }); 134 });
135 135
136 integration('remove provides an error', () { 136 integration('remove provides an error', () {
137 var server = new ScheduledServer(); 137 var server = new ScheduledServer();
138 d.credentialsFile(server, 'access token').create(); 138 d.credentialsFile(server, 'access token').create();
139 var pub = startPubUploader(server, 139 var pub = startPubUploader(server,
140 ['--package', 'pkg', 'remove', 'e/mail']); 140 ['--package', 'pkg', 'remove', 'e/mail']);
141 141
142 server.handle('DELETE', '/api/packages/pkg/uploaders/e%2Fmail', (request) { 142 server.handle('DELETE', '/api/packages/pkg/uploaders/e%2Fmail', (request) {
143 request.response.statusCode = 400; 143 request.response.statusCode = 400;
144 request.response.headers.contentType = 144 request.response.headers.contentType =
145 new ContentType("application", "json"); 145 new ContentType("application", "json");
146 request.response.write(json.stringify({ 146 request.response.write(JSON.encode({
147 'error': {'message': 'Bad job!'} 147 'error': {'message': 'Bad job!'}
148 })); 148 }));
149 request.response.close(); 149 request.response.close();
150 }); 150 });
151 151
152 expect(pub.nextErrLine(), completion(equals('Bad job!'))); 152 expect(pub.nextErrLine(), completion(equals('Bad job!')));
153 pub.shouldExit(1); 153 pub.shouldExit(1);
154 }); 154 });
155 155
156 integration('add provides invalid JSON', () { 156 integration('add provides invalid JSON', () {
(...skipping 19 matching lines...) Expand all
176 server.handle('DELETE', '/api/packages/pkg/uploaders/email', (request) { 176 server.handle('DELETE', '/api/packages/pkg/uploaders/email', (request) {
177 request.response.write("{not json"); 177 request.response.write("{not json");
178 request.response.close(); 178 request.response.close();
179 }); 179 });
180 180
181 expect(pub.nextErrLine(), completion(equals('Invalid server response:'))); 181 expect(pub.nextErrLine(), completion(equals('Invalid server response:')));
182 expect(pub.nextErrLine(), completion(equals('{not json'))); 182 expect(pub.nextErrLine(), completion(equals('{not json')));
183 pub.shouldExit(1); 183 pub.shouldExit(1);
184 }); 184 });
185 } 185 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698