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: sdk/lib/_internal/pub/test/pub_uploader_test.dart

Issue 16351003: Move pub over to using the pub.dartlang.org API v2. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 7 years, 6 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:io'; 7 import 'dart:io';
8 import 'dart:json' as json; 8 import 'dart:json' as json;
9 9
10 import 'package:scheduled_test/scheduled_process.dart'; 10 import 'package:scheduled_test/scheduled_process.dart';
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 schedulePub(args: ['uploader', 'foo', 'email'], 51 schedulePub(args: ['uploader', 'foo', 'email'],
52 output: USAGE_STRING, exitCode: 64); 52 output: USAGE_STRING, exitCode: 64);
53 }); 53 });
54 }); 54 });
55 55
56 integration('adds an uploader', () { 56 integration('adds an uploader', () {
57 var server = new ScheduledServer(); 57 var server = new ScheduledServer();
58 d.credentialsFile(server, 'access token').create(); 58 d.credentialsFile(server, 'access token').create();
59 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); 59 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']);
60 60
61 server.handle('POST', '/packages/pkg/uploaders.json', (request) { 61 server.handle('POST', '/api/packages/pkg/uploaders', (request) {
62 expect(new ByteStream(request).toBytes().then((bodyBytes) { 62 expect(new ByteStream(request).toBytes().then((bodyBytes) {
63 expect(new String.fromCharCodes(bodyBytes), equals('email=email')); 63 expect(new String.fromCharCodes(bodyBytes), equals('email=email'));
64 64
65 request.response.headers.contentType = 65 request.response.headers.contentType =
66 new ContentType("application", "json"); 66 new ContentType("application", "json");
67 request.response.write(json.stringify({ 67 request.response.write(json.stringify({
68 'success': {'message': 'Good job!'} 68 'success': {'message': 'Good job!'}
69 })); 69 }));
70 request.response.close(); 70 request.response.close();
71 }), completes); 71 }), completes);
72 }); 72 });
73 73
74 expect(pub.nextLine(), completion(equals('Good job!'))); 74 expect(pub.nextLine(), completion(equals('Good job!')));
75 pub.shouldExit(0); 75 pub.shouldExit(0);
76 }); 76 });
77 77
78 integration('removes an uploader', () { 78 integration('removes an uploader', () {
79 var server = new ScheduledServer(); 79 var server = new ScheduledServer();
80 d.credentialsFile(server, 'access token').create(); 80 d.credentialsFile(server, 'access token').create();
81 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); 81 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']);
82 82
83 server.handle('DELETE', '/packages/pkg/uploaders/email.json', (request) { 83 server.handle('DELETE', '/api/packages/pkg/uploaders/email', (request) {
84 request.response.headers.contentType = 84 request.response.headers.contentType =
85 new ContentType("application", "json"); 85 new ContentType("application", "json");
86 request.response.write(json.stringify({ 86 request.response.write(json.stringify({
87 'success': {'message': 'Good job!'} 87 'success': {'message': 'Good job!'}
88 })); 88 }));
89 request.response.close(); 89 request.response.close();
90 }); 90 });
91 91
92 expect(pub.nextLine(), completion(equals('Good job!'))); 92 expect(pub.nextLine(), completion(equals('Good job!')));
93 pub.shouldExit(0); 93 pub.shouldExit(0);
94 }); 94 });
95 95
96 integration('defaults to the current package', () { 96 integration('defaults to the current package', () {
97 d.validPackage.create(); 97 d.validPackage.create();
98 98
99 var server = new ScheduledServer(); 99 var server = new ScheduledServer();
100 d.credentialsFile(server, 'access token').create(); 100 d.credentialsFile(server, 'access token').create();
101 var pub = startPubUploader(server, ['add', 'email']); 101 var pub = startPubUploader(server, ['add', 'email']);
102 102
103 server.handle('POST', '/packages/test_pkg/uploaders.json', (request) { 103 server.handle('POST', '/api/packages/test_pkg/uploaders', (request) {
104 request.response.headers.contentType = 104 request.response.headers.contentType =
105 new ContentType("application", "json"); 105 new ContentType("application", "json");
106 request.response.write(json.stringify({ 106 request.response.write(json.stringify({
107 'success': {'message': 'Good job!'} 107 'success': {'message': 'Good job!'}
108 })); 108 }));
109 request.response.close(); 109 request.response.close();
110 }); 110 });
111 111
112 expect(pub.nextLine(), completion(equals('Good job!'))); 112 expect(pub.nextLine(), completion(equals('Good job!')));
113 pub.shouldExit(0); 113 pub.shouldExit(0);
114 }); 114 });
115 115
116 integration('add provides an error', () { 116 integration('add provides an error', () {
117 var server = new ScheduledServer(); 117 var server = new ScheduledServer();
118 d.credentialsFile(server, 'access token').create(); 118 d.credentialsFile(server, 'access token').create();
119 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); 119 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']);
120 120
121 server.handle('POST', '/packages/pkg/uploaders.json', (request) { 121 server.handle('POST', '/api/packages/pkg/uploaders', (request) {
122 request.response.statusCode = 400; 122 request.response.statusCode = 400;
123 request.response.headers.contentType = 123 request.response.headers.contentType =
124 new ContentType("application", "json"); 124 new ContentType("application", "json");
125 request.response.write(json.stringify({ 125 request.response.write(json.stringify({
126 'error': {'message': 'Bad job!'} 126 'error': {'message': 'Bad job!'}
127 })); 127 }));
128 request.response.close(); 128 request.response.close();
129 }); 129 });
130 130
131 expect(pub.nextErrLine(), completion(equals('Bad job!'))); 131 expect(pub.nextErrLine(), completion(equals('Bad job!')));
132 pub.shouldExit(1); 132 pub.shouldExit(1);
133 }); 133 });
134 134
135 integration('remove provides an error', () { 135 integration('remove provides an error', () {
136 var server = new ScheduledServer(); 136 var server = new ScheduledServer();
137 d.credentialsFile(server, 'access token').create(); 137 d.credentialsFile(server, 'access token').create();
138 var pub = startPubUploader(server, 138 var pub = startPubUploader(server,
139 ['--package', 'pkg', 'remove', 'e/mail']); 139 ['--package', 'pkg', 'remove', 'e/mail']);
140 140
141 server.handle('DELETE', '/packages/pkg/uploaders/e%2Fmail.json', (request) { 141 server.handle('DELETE', '/api/packages/pkg/uploaders/e%2Fmail', (request) {
142 request.response.statusCode = 400; 142 request.response.statusCode = 400;
143 request.response.headers.contentType = 143 request.response.headers.contentType =
144 new ContentType("application", "json"); 144 new ContentType("application", "json");
145 request.response.write(json.stringify({ 145 request.response.write(json.stringify({
146 'error': {'message': 'Bad job!'} 146 'error': {'message': 'Bad job!'}
147 })); 147 }));
148 request.response.close(); 148 request.response.close();
149 }); 149 });
150 150
151 expect(pub.nextErrLine(), completion(equals('Bad job!'))); 151 expect(pub.nextErrLine(), completion(equals('Bad job!')));
152 pub.shouldExit(1); 152 pub.shouldExit(1);
153 }); 153 });
154 154
155 integration('add provides invalid JSON', () { 155 integration('add provides invalid JSON', () {
156 var server = new ScheduledServer(); 156 var server = new ScheduledServer();
157 d.credentialsFile(server, 'access token').create(); 157 d.credentialsFile(server, 'access token').create();
158 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); 158 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']);
159 159
160 server.handle('POST', '/packages/pkg/uploaders.json', (request) { 160 server.handle('POST', '/api/packages/pkg/uploaders', (request) {
161 request.response.write("{not json"); 161 request.response.write("{not json");
162 request.response.close(); 162 request.response.close();
163 }); 163 });
164 164
165 expect(pub.nextErrLine(), completion(equals('Invalid server response:'))); 165 expect(pub.nextErrLine(), completion(equals('Invalid server response:')));
166 expect(pub.nextErrLine(), completion(equals('{not json'))); 166 expect(pub.nextErrLine(), completion(equals('{not json')));
167 pub.shouldExit(1); 167 pub.shouldExit(1);
168 }); 168 });
169 169
170 integration('remove provides invalid JSON', () { 170 integration('remove provides invalid JSON', () {
171 var server = new ScheduledServer(); 171 var server = new ScheduledServer();
172 d.credentialsFile(server, 'access token').create(); 172 d.credentialsFile(server, 'access token').create();
173 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); 173 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']);
174 174
175 server.handle('DELETE', '/packages/pkg/uploaders/email.json', (request) { 175 server.handle('DELETE', '/api/packages/pkg/uploaders/email', (request) {
176 request.response.write("{not json"); 176 request.response.write("{not json");
177 request.response.close(); 177 request.response.close();
178 }); 178 });
179 179
180 expect(pub.nextErrLine(), completion(equals('Invalid server response:'))); 180 expect(pub.nextErrLine(), completion(equals('Invalid server response:')));
181 expect(pub.nextErrLine(), completion(equals('{not json'))); 181 expect(pub.nextErrLine(), completion(equals('{not json')));
182 pub.shouldExit(1); 182 pub.shouldExit(1);
183 }); 183 });
184 } 184 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698